一、环境搭建:先来点刺激的!
咱们先来点刺激的!JDK安装是每个Java程序员都要经历的"成人礼"。推荐直接冲官网下载最新的JDK21(别怕新版本!现在企业都用LTS长期支持版了),安装时记得勾选"设置环境变量"选项(超级重要)!
安装完成后,掏出你的命令行工具,输入java -version
,看到版本号的那一刻——恭喜你,你的Java长征路正式启程了!
二、基础语法:从HelloWorld到数据类型
2.1 经典开局
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello 编程世界!");
}
}
这个main方法(程序入口)咱们可得刻进DNA里!注意类名必须和文件名一致,大小写敏感(新人杀手第一名)!
2.2 八大基本类型(必背!)
类型 | 内存 | 取值范围 |
---|---|---|
byte | 1字节 | -128 ~ 127 |
short | 2字节 | -32768 ~ 32767 |
int | 4字节 | -21亿 ~ 21亿 |
long | 8字节 | -9亿亿亿亿 ~ 9亿亿亿亿 |
float | 4字节 | 有效位数6-7位 |
double | 8字节 | 有效位数15位 |
char | 2字节 | Unicode字符 |
boolean | 未定义 | true/false |
2.3 运算符黑科技
- 三元运算符:
条件 ? 表达式1 : 表达式2
(装X利器) - 位运算符:
& | ^ ~ << >> >>>
(处理二进制的神器) - 复合赋值:
a += 5
比a = a + 5
更高效(性能优化小细节)
三、流程控制:程序的大脑
3.1 选择结构
// switch新写法(JDK14+)
String day = "Monday";
switch(day) {
case "Monday" -> System.out.println("搬砖日");
case "Friday" -> System.out.println("狂欢夜");
default -> System.out.println("普通日");
}
3.2 循环结构
// 传统for循环
for(int i=0; i<10; i++) {
System.out.print(i + " ");
}
// 增强for循环
int[] nums = {1,2,3,4,5};
for(int num : nums) {
System.out.print(num + " ");
}
// 带标签的循环(冷门但有用)
outer:
for(int i=0; i<5; i++){
for(int j=0; j<5; j++){
if(j == 3) break outer;
System.out.print(j+" ");
}
}
四、面向对象:Java的灵魂(重点!)
4.1 类与对象
public class Cat {
// 成员变量
String name;
int age;
// 构造方法
public Cat(String name, int age) {
this.name = name; // this是必须的!
this.age = age;
}
// 方法
public void meow() {
System.out.println("喵~");
}
}
// 创建对象
Cat myCat = new Cat("咪咪", 2);
4.2 三大特性
- 封装:用private保护数据,通过getter/setter访问
- 继承:extends关键字(单继承!)
- 多态:父类引用指向子类对象(开发框架的基石)
4.3 接口新玩法
// JDK8之后接口可以写默认方法
interface Animal {
void eat();
default void sleep() {
System.out.println("Zzz...");
}
}
五、常用类库:开发者的瑞士军刀
5.1 String的陷阱
String s1 = "hello";
String s2 = new String("hello");
System.out.println(s1 == s2); // false!字符串比较用equals()
5.2 时间处理(别再Date了!)
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(now.format(formatter));
5.3 集合框架(重点中的重点!)
- List家族:ArrayList(查询快)、LinkedList(增删快)
- Set家族:HashSet(无序)、TreeSet(有序)
- Map家族:HashMap(最常用)、LinkedHashMap(保持插入顺序)
六、异常处理:程序的安全气囊
6.1 异常体系
Throwable
├── Error(系统级错误)
└── Exception
├── RuntimeException(非检查异常)
└── 其他Exception(检查异常)
6.2 try-with-resources(必学!)
try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
七、新特性尝鲜(JDK17+)
7.1 文本块(解放双手!)
String json = """
{
"name": "张三",
"age": 25,
"hobbies": ["编程","游戏"]
}
""";
7.2 switch表达式
String dayType = switch(day) {
case "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" -> "工作日";
case "Saturday", "Sunday" -> "休息日";
default -> throw new IllegalArgumentException("非法输入");
};
八、学习路线建议
- 先掌握基础语法(至少敲完50个demo)
- 深入理解面向对象(手写3个以上完整类)
- 熟悉常用类库(至少完整使用过集合框架)
- 学习开发工具(IDEA用熟!)
- 持续实战(小项目搞起来!)
推荐书单:
- 《Java核心技术 卷Ⅰ》(基础圣经)
- 《Effective Java》(进阶宝典)
- 《Java编程思想》(内功心法)
(PS:看完不等于学会,键盘敲烂才是真!)