《JavaSE 基础知识点速记(搞笑版)— 你的 Java 小白 也能秒懂》
Java:看起来像 C 语言,听着像 J 一下,打上去如同喝 Java(咖啡),三分钟了解三点:
- C(ross)平台
- O(bject)导向
- A(lready) ready(生态成熟)
1️⃣ Java 概述与环境搭建
| 路径 | 说明 |
|---|---|
JDK | 开发工具包,内含 javac、javadoc、jd 等 |
JRE | 运行时环境,单独部署可执行 .jar |
JVM | 虚拟机,执掌 .class |
# 验证安装
java -version
javac -version
TIP:若你想减肥到 JDK 19,记得把
JAVA_HOME指向新安装路径,别再用旧's Q寒冬`。
2️⃣ 基础语法(粗口版)
2.1 基本数据类型
| 关键字 | 体积 | 默认 | 说明 |
|---|---|---|---|
byte | 1 B | 0 | 最小可用于存储 walker |
int | 4 B | 0 | 经济型的整数,足以装多少人都行 |
long | 8 B | 0L | 大量如亿年的统计 |
float | 4 B | 0.0f | 仅 7 位有效数字,千万别在金融里用 |
double | 8 B | 0.0d | 15 位有效,精度能让你心动 |
char | 2 B | '\u0000' | 存一字符,不管你想装谁 |
boolean | 1 B | false | 真或假,别再打 真 与 假 的表情包 |
注意:
float与double如同 相机 和 照相机,想清晰就得多点位数,float怪兽般地省内存。
2.2 引用类型
class:对象模板,一次装行星,上亿行的代码逼你功勋服务interface:行为规范,约定好了 不吃饭不成朋友array:一组同类的容器,你若要把一百只龙卷风装下,先弄好容器
2.3 变量、常量 & 命名
int age = 20; // 变量
final double PI = 3.14159; // 常量
| 规范 | 示例 |
|---|---|
| 类名 | StudentInfo |
| 方法/变量 | getName |
| 常量 | MAX_VALUE |
玩笑:常量不改也能
fail—— 失误射杀风险急上升。
2.4 类型转换
- 自动提升:
int → double - 强制转换:
double → int(会丢精度) char与int互通(Unicode)
2.5 运算符
| 类别 | 运算符 | 说明 |
|---|---|---|
| 算术 | + - * / % | 传统四则,整除截断 |
| 赋值 | = += -= *= /= | 省事 |
| 自增/自减 | ++ -- | 前后缀说不出谁先 |
| 逻辑 | `&& | |
| 位 | `& | ^ ~ << >> >>>` |
<<与>>就是 左移 与 右移 的 含义是把自己左移/右移 n 位 <(兮)>
在图像处理、加密、哈希里见长。
3️⃣ 流程控制
3.1 条件结构
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
switch也支持String与enum- 穿透现象:忘
break就会连着跑,像走 上坡跑到滑梯
3.2 循环结构
| 循环 | 语义 | 典型场景 |
|---|---|---|
while | 条件在前 | 检查队列是否空 |
do...while | 先执行后判断 | 计算不等的绝招 |
for | 经典计数 | 遍历索引 |
for-each | 集合遍历 | for (String s : list) {} |
示例:
for (int i = 0; i < 5; i++) {
if (i == 3) continue;
if (i == 4) break; // 跑5即可
}
4️⃣ 方法(函数)
4.1 定义与调用
public static int add(int a, int b) {
return a + b;
}
4.2 参数传递
- 基本类型:复制值
- 引用类型:复制引用(堆地址)
冷知识:传引用不等同
this复制;修改对象属性影响原对象。
4.3 方法重载(Overloading)
| 规则 | 说明 |
|---|---|
| 同名 | 参数不同 (类型/数量) |
| 调用时 | 编译期决定 |
5️⃣ 数组
int[] arr1 = {1,2,3};
int[][] grid = new int[3][4];
arr.length访问长度Arrays.sort(arr)排序Arrays.toString(arr)可读打印
二进制 与 数组 俩又格格不入但可以交融:
int[] binary = {0,1,1,0}
6️⃣ 面向对象(简洁版本)
6.1 封装
class Student {
private String name;
public void setName(String name) { this.name = name; }
public String getName() { return name; }
}
6.2 继承 & 重写
class Animal { void eat() {} }
class Dog extends Animal { void bark() {} }
- **
super**:访问父类 - **
this**:当前对象
6.3 多态
Animal a = new Dog();
a.eat(); // 调用 Dog 重写方法
小技巧:多态只对方法生效,属性直接按声明访问。
6.4 抽象类 & 接口
abstract class Shape { abstract void draw(); }
interface Flyable { void fly(); }
JDK8+:接口可带
default,static。
7️⃣ 常用工具类(quicklook)
| 类 | 典型用途 | 备注 |
|---|---|---|
Wrapper Class(Integer, Double 等) | 自动装箱/拆箱 | int ↔ Integer |
String | 文本处理 | 不可变 |
StringBuilder/StringBuffer | 对字符串增删改 | 线程安全即可 |
Math | 四则/三角/随机等 | Math.random() 产生 [0,1) |
日期时间 (java.time) | LocalDate, LocalDateTime | 2024 版 java.time.format.DateTimeFormatter |
例子:
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb);
8️⃣ 集合框架小结
| 组合 | 类 | 底层 | 特点 |
|---|---|---|---|
| List | ArrayList | 数组 | 读快 写慢 |
LinkedList | 链表 | 插删快 读慢 | |
Vector | 同步数组 | 线程安全但慢 | |
| Set | HashSet | 哈希表 | 唯一无序 |
LinkedHashSet | 哈希+链表 | 保序 | |
TreeSet | 红黑树 | 排序唯一 | |
| Map | HashMap | 同上 | 无序 |
LinkedHashMap | 有序 | 循环一次 | |
TreeMap | 红黑树 | 键排序 |
一句话:
java.util.*接口就像员工手册,你可以灵活挑选ArrayList或LinkedList决定工作方式。
9️⃣ 异常机制(删乱八股)
try {
int r = 10 / 0;
} catch (ArithmeticException e) {
e.printStackTrace();
} finally {
System.out.println("结束");
}
- 自定义异常:
class MyException extends Exception {
MyException(String msg) { super(msg); }
}
提示:
throw new MyException("不行");
throws MyException放到方法签名,标记 你会抛异常。
🔟 多线程基础
创建线程
class MyThread extends Thread {
@Override public void run() { System.out.println("线程跑中…"); }
}
new MyThread().start();
或 Lambda:
new Thread(() -> System.out.println("Lambda 线程")).start();
常用线程方法
| 方法 | 作用 |
|---|---|
sleep(ms) | 暂停 |
join() | 等待 |
yield() | 让渡 |
同步与通信
synchronized对象锁wait()/notify()/notifyAll()
笑点:连线程都需要“争路”竞争,说明你写的代码真的很抢夺资源。
1️⃣一卡通(关键字/修饰符速记)
| 关键字 | 用途 |
|---|---|
static | 类级别 |
final | 不可变/不可继承/重写 |
abstract | 抽象 |
this | 当前实例 |
super | 父实例 |
transient | 序列化跳过 |
volatile | 可见性保障 |
instanceof | 类型检查 |
2️⃣ 小细节深层人檄
| 主题 | 说明 |
|---|---|
equals() vs hashCode() | 对象相等需同步哈希 |
String vs StringBuilder | 互补:不变vs可变 |
final vs finally | 修饰 vs 最后执行 |
最后提醒:
代码里往往蕴含哲学:不可变是安全的,可变是灵活的。用对了生产力翻倍,搞错了,坑也翻倍。
结语
本文仅为 JavaSE 小白 的速记版,望你在面向对象的 宇宙里 找到自己的星座。
踏上学习之路,别停;写完代码,别忘检查Main.java。祝你HotFix成功,InfiniteLoop干掉,OutOfMemoryError远离。
代码今天写,笑话你领导明天提!
更多推荐



所有评论(0)