随笔分类 - Java基础
摘要:在JVM中,类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。而解析阶段即是虚拟机将常量池内的符号引用替换为直接引用的过程。一、符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,符号可以是
阅读全文
摘要:1 package com.company; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 int num1 = 3; 7 int num2 = 5; 8 System.out.println(num1
阅读全文
摘要:基本数据类型: byte 1B short 2B int 4B long 8B char 2B float 4B double 8B boolean 0/1 引用数据类型: 类、接口、数组
阅读全文
摘要:String底层char[]数组用final修饰,不可变。 StringBuilder底层char[]数组没有用final修饰,可变;线程不安全,效率高(一般用的多) StringBuffer底层长度为16的char[]数组没有用final修饰,可变;线程安全,效率低(一般用得少) 扩容问题:如果要
阅读全文
摘要:HashMap HashMap底层是一个数组,数组中每个元素是一个单链表(采用拉链法解决哈希冲突)。 JDK8之后,对HashMap底层数据结构(单链表)进行了改进 1.如果单链表元素超过8个,则将单链表转变为红黑树; 2.如果红黑树节点小于6时,再将红黑树变为单链表 这种方式也是为了提高检索效率,
阅读全文
摘要:一、概要 ArrayList 底层就是⼀个 Object[] 数组, ArrayList 底层数组默认初始化容量为10; ArrayList的容量使用完之后,会“自动”创建容量更大的数组,并将原数组中所有元素拷贝过去,这会导致效率降低。 LinkedList底层是一个双向链表 ArrayList 构
阅读全文