1. Java基础语法
1.1 变量和数据类型
int number = 10;
double decimal = 10.5;
char character = 'A';
boolean flag = true;
String text = "Hello, World!";
解析:Java支持多种数据类型,包括基本数据类型(int, double, char, boolean)和引用数据类型(String)。
1.2 运算符
int a = 5, b = 3;
int sum = a + b; // 加法
int difference = a - b; // 减法
int product = a * b; // 乘法
int quotient = a / b; // 除法
int remainder = a % b; // 取模
解析:Java提供丰富的运算符,包括算术运算符、关系运算符和逻辑运算符。
2. 控制流程
2.1 条件语句
int age = 18;
if (age >= 18) {
System.out.println("你已经成年了!");
} else {
System.out.println("你还未成年。");
}
解析:使用if-else语句根据条件执行不同的代码块。
2.2 循环语句
for (int i = 0; i < 5; i++) {
System.out.println("循环次数:" + i);
}
解析:for循环用于重复执行一段代码,直到满足特定条件。
3. 面向对象编程
3.1 类和对象
class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void introduce() {
System.out.println("我叫" + name + ",今年" + age + "岁。");
}
}
Person person = new Person("张三", 25);
person.introduce();
解析:Java使用面向对象编程思想,通过类和对象实现代码复用。
3.2 继承和多态
class Animal {
public void eat() {
System.out.println("动物会吃东西。");
}
}
class Dog extends Animal {
public void bark() {
System.out.println("狗会叫。");
}
}
Animal animal = new Dog();
animal.eat(); // 输出:动物会吃东西。
((Dog) animal).bark(); // 输出:狗会叫。
解析:继承允许创建新的类(子类)并继承现有类(父类)的特性。多态允许使用父类引用指向子类对象。
4. 数组
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
解析:数组是存储相同类型元素的集合,可以通过索引访问元素。
5. 集合框架
5.1 List
List<String> list = new ArrayList<>();
list.add("苹果");
list.add("香蕉");
list.add("橘子");
for (String fruit : list) {
System.out.println(fruit);
}
解析:List是集合框架中的一种接口,用于存储有序的元素集合。
5.2 Set
Set<String> set = new HashSet<>();
set.add("苹果");
set.add("香蕉");
set.add("橘子");
for (String fruit : set) {
System.out.println(fruit);
}
解析:Set是集合框架中的一种接口,用于存储无序且不重复的元素集合。
6. 异常处理
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("除数不能为0!");
}
解析:Java使用try-catch语句处理异常,确保程序在出现错误时不会崩溃。
7. Java SE新特性
7.1 Lambda表达式
List<String> list = Arrays.asList("苹果", "香蕉", "橘子");
list.forEach(fruit -> System.out.println(fruit));
解析:Lambda表达式允许以更简洁的方式编写匿名函数。
7.2 Stream API
List<String> list = Arrays.asList("苹果", "香蕉", "橘子");
list.stream()
.filter(fruit -> fruit.startsWith("苹果"))
.forEach(System.out::println);
解析:Stream API提供了一种声明式方式处理集合中的元素。
8. Java Web开发
8.1 Servlet
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().println("Hello, World!");
}
}
解析:Servlet是Java Web开发的核心技术,用于处理客户端请求。
8.2 Spring框架
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello, World!";
}
}
解析:Spring框架简化了Java Web开发,提供依赖注入、AOP等特性。
9. Java EE新特性
9.1 JPA
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int age;
}
public List<Person> findAll() {
return entityManager.createQuery("SELECT p FROM Person p", Person.class).getResultList();
}
解析:JPA简化了数据库操作,提供ORM(对象关系映射)功能。
9.2 WebSocket
@Controller
public class WebSocketController {
@OnOpen
public void onOpen(Session session) {
// 连接建立成功后的处理
}
@OnMessage
public void onMessage(Session session, String message) {
// 接收客户端消息后的处理
}
}
解析:WebSocket允许服务器和客户端之间进行全双工通信。
10. Java安全
10.1 加密和解密
String originalText = "Hello, World!";
String encryptedText = AESUtil.encrypt(originalText, "key");
String decryptedText = AESUtil.decrypt(encryptedText, "key");
System.out.println("原始文本:" + originalText);
System.out.println("加密文本:" + encryptedText);
System.out.println("解密文本:" + decryptedText);
解析:Java提供多种加密和解密算法,如AES、DES等。
10.2 认证和授权
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic();
}
}
解析:Java提供Spring Security框架,用于实现认证和授权功能。
11. Java性能优化
11.1 JVM调优
public static void main(String[] args) {
System.setProperty("java.maxmemory", "512m");
System.setProperty("java.minmemory", "128m");
System.setProperty("java.maxnewsize", "256m");
System.setProperty("java.newsize", "64m");
// 其他JVM参数...
}
解析:通过设置JVM参数,可以优化Java程序的性能。
11.2 代码优化
public static int sum(int a, int b) {
return a + b;
}
解析:优化代码,减少不必要的计算和内存占用。
12. Java实战项目
12.1 在线商城
功能:商品展示、购物车、订单管理、用户管理等。
技术:Spring Boot、MyBatis、MySQL、Redis等。
12.2 个人博客
功能:文章发布、评论、分类、标签等。
技术:Spring Boot、Thymeleaf、MySQL、Redis等。
12.3 在线教育平台
功能:课程管理、视频播放、直播、问答等。
技术:Spring Boot、MyBatis、MySQL、Redis、WebSocket等。
总结
本文介绍了Java编程入门必备的50个实用代码实例和实战技巧。通过学习这些内容,可以帮助初学者快速掌握Java编程,为后续的Java开发打下坚实基础。在实际开发过程中,还需要不断积累经验,提高编程水平。
