1. java 集合底层原理

    1. Java中最原始的数据结构 Java底层最原始的数据结构就两种: 数组:数组是底层汇编语言实现的一种数据结构,几乎任何语言都支持。其物理内存地址连续,俗称有序数组(无序数组实际上也是有序数组,只不过数组元素下标由程序自己控制)。 链表:链表是jdk底层自己实现的,其物理内存地址不连续,是散列存储的(参考LinkedList链表的底层实现);链表分为单向链表、双向链表、单向循环链表、双向循环链表。 tips:像基本类型这种点性结构就不用说了,任何语言默认就是点性结构,即一个萝卜一个坑。

    2021/02/10 Java初级进阶

  2. java 集合框架

    1. 数组和集合 1.1 回顾数组 java是面向对象的语言。 我们可以使用一个java变量在JVM运行中保存一个值;也可以使用一个javabean对象在运行中保存一个更加复杂的值;当然也可以使用一个数组对象在运行中保存一堆类型相同的值。 也就是说,如果在程序运行中需要缓存一堆比较复杂的数据,那么我们就可以使用数组结合对象的方式,也就是对象数组。 下面我们来看一下: ```java package zeh.test.demo.com.jihe; import java.util.Arrays;

    2021/02/09 Java初级进阶

  3. java 枚举类

    1. 枚举类介绍 1.1 什么是枚举类? 枚举类,是一种特殊的类。 java中使用enum定义枚举类;就像使用class定义普通类一样;就像使用interface定义接口一样;就像使用@interface定义注解一样。 枚举类是jdk 1.5之后引入的新的引用类型;和class、interface、array等一样,都是用来定义新类型的。 枚举类定以后,java编译器默认让该类继承了java.lang.Enum类;就像java编译器默认让一个普通的class继承Object类一样;基于此,意味着任何一个枚举类不能再继承其他类。 同时,java编译器默认对任何一个枚举类都修饰为final,意味着任何一个枚举类是不能被其他类继承的。 枚举类的构造方法默认是private的,即构造方法私有化;可以不显式编写,编译器自动为我们修饰为private的;如果要显式编写构造器的权限符,也只能编写为private的,否则编译器报错。 因为枚举类的构造方法必须是private的,所以它的作用就很明显了;即限制外部去构造枚举实例,而是交由枚举类自己去负责实例化自己的枚举对象;枚举对象也叫做枚举常量。 枚举类建议一定要实例化枚举对象;尽管枚举类可以什么都不编写,但是如果连枚举对象都没有,枚举将没有任何意义;如果声明枚举对象的话,则枚举对象的实例化声明必须在枚举类的首行,不能放在其他位置;如果是无参构造则只能通过无参构造创建实例;如果显式编写了有参构造,则可通过有参构造创建对应枚举实例;多个枚举对象通过逗号分隔,如果后续还有其他内容,则枚举对象结尾使用分号。 枚举实例对象不能显式添加任何修饰符,java编译器编译后为自动为任何一个枚举实例对象添加修饰符 public static final ,意味着任何一个枚举实例对象实际上就是一个枚举常量;因此建议枚举对象命名全部为大写,即符合常量的命名方式。 枚举类也可以定义自己的成员变量,定义方式和普通的class完全一致。 枚举类也允许像普通类一样定义自己的静态块和构造块;静态块随着枚举类的加载只执行一次,构造块的调用随着JVM自动调用枚举类的构造方法一起执行的。

    2021/02/08 Java初级进阶

  4. java 异常处理,异常栈

    1. Java中的错误 Java中的错误,分为两种:语法错误,语义错误。 语法错误也叫做编译时错误,无法正常编译,只要语法有错,Eclipse,IDEA等IDE会自动检查语法,飘红提示导致java文件无法编译为class文件。 语义错误也叫做运行时错误,也称之为异常。语义错误可以正常编译,但是无法正常运行。 语义错误即异常并不是一种可预见性错误,而是必须通过运行才能发现的错误。比如int a = 10 / 0,这是符合语法的,但只有代码运行后才能知道加载进内存的被除数的值是不是0,是0的话才导致异常。

    2021/02/07 Java初级进阶

  5. java 通配符

    2021/02/06 Java初级进阶

  6. java 的正则表达式

    1. 正则表达式简介 几乎任何计算机编程语言都支持正则表达式,比如一些脚本语言、linux命令等都支持。 正则表达式本质是个表达式,有自己的编写规则。 在java中正则表达式是嵌入到String类型中的,所以在java中正则表达式是一个特殊的匹配字符串【注意在java中其本质是字符串】。 但是在有的语言比如js中,正则表达式有可能是个单独的表达式,被定义在//中。

    2021/02/05 Java初级进阶

  7. java 中的转义字符

    1. 转义字符 转义字符:对某些表示普通含义的字符或者某些表示特殊含义的字符进行意义的转换,让其不再表达原本的含义。 java中进行转义依赖转义符号”\”;转义转义,就是转换含义。

    2021/02/04 Java初级进阶

  8. java 中的泛型

    参考链接: 理解java中的泛型 java中的泛型

    2021/02/03 Java初级进阶

  9. java 中的this和super关键字

    2021/02/02 Java初级进阶

  10. java instanceof关键字

    1. instanceof详解 1.1 什么是instanceof? instanceof是java中的关键字,因此不能使用instanceof去命名常量和变量。 instanceof严格说是java中的一个双目运算符,用来判断一个对象是否是另外一个类的实例。 instanceof的作用就是判断左边的对象是否是右边的类型的一个实例,如果是就返回true,否则返回false。 用法为: boolean result = obj instanceof TargetClass; 左边obj是一个实例化对象,TargetClass表示一个类或者接口。 当 obj 为 TargetClass 的对象,或者是其直接或间接子类的对象,或者是其接口的实现类的对象,结果result 都返回 true,否则返回false。 编译器会检查instanceof左边的实例对象是否能够强制转换为右边TargetClass类型(大多数都会向上转型,偶尔会发生向下转型),如果不能强制转换则报错;如果不能确定obj的类型,则可以通过编译,具体运行时再确定结果。 说白了,instanceof就是用来判断“我能不能强制转换成你的类型”。

    2021/02/01 Java初级进阶