目录
📢📢📢📣📣📣
哈喽!大家好,我是「Leen」。刚工作几年,想和大家一同进步🤝🤝
一位上进心十足的Java博主!😜😜😜
喜欢尝试一些新鲜的东西,平时比较喜欢研究一些新鲜技术和一些自己没有掌握的技术领域。能用程序解决的坚决不手动解决😜😜😜目前已涉足Java、Python、数据库(MySQL、pgsql、MongoDB、Oracle...)、Linux、HTML、VUE、PHP、C(了解不多,主要是嵌入式编程方向做了一些)...(还在不断地学习,扩展自己的见识和技术领域中),希望可以和各位大佬们一起进步,共同学习🤝🤝
✨ 如果有对【Java】,或者喜欢看一些【实操笔记】感兴趣的【小可爱】,欢迎关注我
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
今天开始,开了一个新的专栏,【Java成长之路】,后续还会推出【Python成长之路】...敬请期待!
一、基础语法速查表(建议收藏⭐️)
1.1 变量与数据类型
// 八大基本类型(画重点!)
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 流程控制(附经典案例)
// 三元运算符(简洁代码利器)
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 封装的艺术
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 继承与多态实战
// 抽象类(模板设计模式基础)
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 遍历方式优化
// 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 异常分类图谱
Throwable
├── Error(系统级错误)
└── Exception
├── IOException(受检异常)
└── RuntimeException(非受检异常)
4.2 异常处理规范
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表达式
// 传统写法 vs Lambda写法
Runnable r1 = new Runnable() {
public void run() { System.out.println("Hello"); }
};
Runnable r2 = () -> System.out.println("Hello");
5.2 Record类(JDK14+)
// 自动生成getter/equals/toString
public record User(String name, int age) {}
📌 学习资源推荐
-
经典书籍:《Effective Java》《Java编程思想》
-
实战项目:仿写Spring框架、开发简易RPC框架
Java学习就像打怪升级,掌握核心机制后要多实践。遇到NullPointerException不要慌,那是Java程序员最好的老师!建议每天坚持写200行代码,半年后你会感谢现在的自己 💪
👉 下期预告:《深入理解JVM内存模型》- 带你图解GC算法与性能调优!
欢迎大家在评论区讨论,今天的干货分享就到此结束了,如果觉得本文有帮助,欢迎点赞⭐️收藏📚,你的支持是我创作的最大动力!
以上内容为本人的经验总结和平时操作的笔记。若有错误和重复请联系作者删除!!感谢支持!!