了解最新公司动态及行业资讯
• JDK
(Java开发工具包):包含JRE + 编译器(javac)、调试工具(jdb)、文档生成工具(javadoc)等开发工具,适合程序员编写代码。
• JRE(Java运行环境):仅包含Java虚拟机(JVM)和核心类库,适合普通用户运行Java程序。
通俗理解:JDK是「厨房全套工具」,JRE是「微波炉加热剩饭」的简单工具。类型
关键字
大小
示例值
整型
int
4字节
42
长整型
long
8字节
100000L
浮点型
float
4字节
3.14f
双精度型
double
8字节
3.1415926
字符型
char
2字节
A
布尔型
boolean
1位
true/false
• 装箱:基本类型 → 包装类(如 int → Integer)
Integer num = 10; // 自动装箱• 拆箱:包装类 → 基本类型(如 Integer → int)
int value = num; // 自动拆箱常见坑点:Integer比较用equals()而非==,因为==比较的是对象地址。
• 类
:模板(如「汽车设计图」),定义属性和方法。
• 对象:实例(如「一辆特斯拉Model 3」),根据类创建的具体实体。特性
抽象类
接口
方法
可包含具体方法
JDK8前只能有抽象方法
变量
可包含非final变量
默认public static final
继承
单继承
多实现
设计目的
代码复用
定义行为规范
对比项
ArrayList
LinkedList
底层结构
动态数组
双向链表
随机访问
O(1)(快)
O(n)(慢)
插入/删除
O(n)(尾部快)
O(1)(任意位置快)
适用场景:频繁查询用ArrayList,频繁增删用LinkedList。
• 存储结构
:数组+链表/红黑树(JDK8后链表长度≥8时转红黑树)。
• 哈希冲突:通过hashCode()计算桶位置,不同对象可能哈希值相同,用equals()判断是否重复。
• 扩容机制:默认负载因子0.75,当元素数量超过容量*负载因子时扩容为2倍。注意:若try或catch中有return,finally会在返回前执行。
• 作用
:保证同一时间只有一个线程执行代码块。
• 示例: public synchronized void add() { count++; } // 同步方法 synchronized (lock) { count++; } // 同步代码块• 原子性
(Atomicity):事务要么全部完成,要么全部回滚。
• 一致性(Consistency):事务前后数据库状态合法。
• 隔离性(Isolation):并发事务互不干扰。
• 持久性(Durability):事务提交后数据永久保存。• IoC(控制反转)
:对象的创建权交给Spring容器。
• DI(依赖注入):通过构造函数、Setter方法或注解自动注入依赖。
示例:用@Autowired注解自动装配Service层到Controller。以上为Java初级面试的核心考点。建议结合实际代码练习,例如手写单例模式、实现线程安全的计数器等,加深理解。