知识大杂烩

Posted jqbai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大杂烩相关的知识,希望对你有一定的参考价值。

编译期常量与运行时常量的区别:

  public static final String str = "hello world!"; // 编译期常量(值在编译期就能确定)

       public static final String str1 = UUID.randomUUID().toString(); // 运行时常量(值在运行时才能确定)

  编译期常量:在编译的阶段,这个常量就会被存入到调用这个常量的方法所在的类的常量池当中,本质上,调用类并没有直接引用到定义常量的类,因此并不会触发定义常量的类的初始 化(甚至于我们可以把定义常量的类删除掉,即删除.class文件)

  例如编译期常量编译后如下图:常量hello word就存在于调用的类的常量池中了,而不是调用的时候再去定义常量的类中取值

  技术分享图片

  运行时常量:在编译阶段其值不能确定,所以值不会放到调用类的常量池中,这时在程序运行时,会导致主动使用这个常量所在的类,显然会导致这个类初始化

数组创建本质:

  对于数组实例来说,其类型是由JVM在运行期动态生成的,表示为[com.jqbai.Test(一元数组),[[com.jqbai.Test(二元数组)这种形式,动态生成的类型,其父类型就是Object,对于数组来说,JavaDoc经常将构成数组的元素为Component,实际上就是将数组降低一个维度后的类型 

  

 

 

       

以上是关于知识大杂烩的主要内容,如果未能解决你的问题,请参考以下文章

运维知识大杂烩1(适合复习时候参考,初学会看着很杂)

iOS 知识-常用小技巧大杂烩

iOS 知识 - 常用小技巧大杂烩 - 转载

Vue零碎知识点大杂烩

计算几何 大杂烩

(原)前端知识杂烩(meta系列)