目录
[1.1 变量与数据类型](#1.1 变量与数据类型 "#1.1%20%E5%8F%98%E9%87%8F%E4%B8%8E%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B")
[1.2 流程控制(附经典案例)](#1.2 流程控制(附经典案例) "#1.2%20%E6%B5%81%E7%A8%8B%E6%8E%A7%E5%88%B6%EF%BC%88%E9%99%84%E7%BB%8F%E5%85%B8%E6%A1%88%E4%BE%8B%EF%BC%89")
[2.1 封装的艺术](#2.1 封装的艺术 "#2.1%20%E5%B0%81%E8%A3%85%E7%9A%84%E8%89%BA%E6%9C%AF")
[2.2 继承与多态实战](#2.2 继承与多态实战 "#2.2%20%E7%BB%A7%E6%89%BF%E4%B8%8E%E5%A4%9A%E6%80%81%E5%AE%9E%E6%88%98")
[3.1 常用集合类对比](#3.1 常用集合类对比 "#3.1%20%E5%B8%B8%E7%94%A8%E9%9B%86%E5%90%88%E7%B1%BB%E5%AF%B9%E6%AF%94")
[3.2 遍历方式优化](#3.2 遍历方式优化 "#3.2%20%E9%81%8D%E5%8E%86%E6%96%B9%E5%BC%8F%E4%BC%98%E5%8C%96")
[4.1 异常分类图谱](#4.1 异常分类图谱 "#4.1%20%E5%BC%82%E5%B8%B8%E5%88%86%E7%B1%BB%E5%9B%BE%E8%B0%B1")
[4.2 异常处理规范](#4.2 异常处理规范 "#4.2%20%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86%E8%A7%84%E8%8C%83")
[5.1 Lambda表达式](#5.1 Lambda表达式 "#5.1%20Lambda%E8%A1%A8%E8%BE%BE%E5%BC%8F")
[5.2 Record类(JDK14+)](#5.2 Record类(JDK14+) "#5.2%20Record%E7%B1%BB%EF%BC%88JDK14%2B%EF%BC%89")
[📌 学习资源推荐](#📌 学习资源推荐 "#%F0%9F%93%8C%20%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%BA%90%E6%8E%A8%E8%8D%90")
📢📢📢📣📣📣
哈喽!大家好,我是「Leen」。刚工作几年,想和大家一同进步🤝🤝
一位上进心十足的Java博主!😜😜😜
喜欢尝试一些新鲜的东西,平时比较喜欢研究一些新鲜技术和一些自己没有掌握的技术领域。能用程序解决的坚决不手动解决😜😜😜
目前已涉足Java、Python、数据库(MySQL、pgsql、MongoDB、Oracle...)、Linux、HTML、VUE、PHP、C(了解不多,主要是嵌入式编程方向做了一些)...(还在不断地学习,扩展自己的见识和技术领域中),希望可以和各位大佬们一起进步,共同学习🤝🤝
✨ 如果有对【Java】,或者喜欢看一些【实操笔记】感兴趣的【小可爱】,欢迎关注我
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
今天开始,开了一个新的专栏,【Java成长之路】,后续还会推出【Python成长之路】...敬请期待!
一、基础语法速查表(建议收藏⭐️)
1.1 变量与数据类型
ini
// 八大基本类型(画重点!)
int age = 25; // 4字节
double price = 9.99; // 双精度
char grade = 'A'; // 单引号!
boolean isPass = true; // 只有true/false
// 引用类型(面试常考)
String name = "Java工程师"; // 双引号!
Object obj = new Object(); // 万物皆对象
⚠️ 易错点:
==
vsequals()
的区别(内存地址 vs 内容比较)- 基本类型默认值:int是0,boolean是false
1.2 流程控制(附经典案例)
csharp
// 三元运算符(简洁代码利器)
String result = score > 60 ? "及格" : "不及格";
// switch新特性(JDK12+)
switch (day) {
case MONDAY, FRIDAY -> System.out.println("工作日");
case SATURDAY -> System.out.println("休息日");
default -> throw new IllegalArgumentException();
}
💡 编程技巧:
- 优先使用增强for循环(
for-each
) - 避免多层嵌套(超过3层建议重构)
二、面向对象编程(OOP)三大特性精讲
2.1 封装的艺术
typescript
public class Person {
// 成员变量私有化(封装第一步)
private String name;
// Getter/Setter方法(规范操作入口)
public String getName() {
return this.name;
}
// 方法重载(Overload)
public void setName() { /* 默认值 */ }
public void setName(String name) {
this.name = name;
}
}
2.2 继承与多态实战
scala
// 抽象类(模板设计模式基础)
abstract class Animal {
abstract void makeSound();
}
// 实现类(里氏替换原则)
class Cat extends Animal {
@Override
void makeSound() {
System.out.println("喵~");
}
}
三、集合框架(高频面试考点🔥)
3.1 常用集合类对比
集合类型 | 特点 | 线程安全 | 使用场景 |
---|---|---|---|
ArrayList | 数组实现,随机访问快 | 否 | 高频查询 |
LinkedList | 链表实现,增删效率高 | 否 | 频繁插入删除 |
HashMap | 数组+链表+红黑树 | 否 | KV存储 |
ConcurrentHashMap | 分段锁机制 | 是 | 高并发场景 |
3.2 遍历方式优化
arduino
// Lambda表达式遍历(JDK8+)
Map<String, Integer> map = new HashMap<>();
map.forEach((k, v) -> System.out.println(k + ": " + v));
// 并行流处理(大数据量优化)
list.parallelStream().filter(e -> e > 100).forEach(System.out::println);
四、异常处理最佳实践
4.1 异常分类图谱
php
Throwable
├── Error(系统级错误)
└── Exception
├── IOException(受检异常)
└── RuntimeException(非受检异常)
4.2 异常处理规范
java
try (BufferedReader br = new BufferedReader(new FileReader(path))) { // 自动关闭资源
// 业务代码
} catch (FileNotFoundException e) {
log.error("文件未找到: {}", e.getMessage());
} catch (IOException e) {
throw new CustomException("IO异常", e); // 异常包装
} finally {
// 释放非自动关闭资源
}
五、新特性速览(JDK8-17)
5.1 Lambda表达式
csharp
// 传统写法 vs Lambda写法
Runnable r1 = new Runnable() {
public void run() { System.out.println("Hello"); }
};
Runnable r2 = () -> System.out.println("Hello");
5.2 Record类(JDK14+)
arduino
// 自动生成getter/equals/toString
public record User(String name, int age) {}
📌 学习资源推荐
- 官方文档:Oracle Java Tutorials
- 经典书籍:《Effective Java》《Java编程思想》
- 实战项目:仿写Spring框架、开发简易RPC框架
Java学习就像打怪升级,掌握核心机制后要多实践。遇到NullPointerException不要慌,那是Java程序员最好的老师!建议每天坚持写200行代码,半年后你会感谢现在的自己 💪
👉 下期预告:《深入理解JVM内存模型》- 带你图解GC算法与性能调优!
欢迎大家在评论区讨论,今天的干货分享就到此结束了,如果觉得本文有帮助,欢迎点赞⭐️收藏📚,你的支持是我创作的最大动力!
以上内容为本人的经验总结和平时操作的笔记。若有错误和重复请联系作者删除!!感谢支持!!