Java基础学习之(15)

1、方法内定义的变量没有初始值,必须要进行初始化。 类中定义的变量可以不需要赋予初始值,默认初始值为0。

2、abstract修饰方法和类

3、常用的获取java信息的命令

  (1、jps:查看本机java进程信息。

  (2、jstack:打印线程的栈信息,制作线程dump文件。

  (3、jmap:打印内存映射,制作堆dump文件

  (4、jstat:性能监控工具

  (5、jhat:内存分析工具

  (6、jconsole:简易的可视化控制台

  (7、jvisualvm:功能强大的控制台

4、自动装箱和类型的自动转换

  double d = 5.3e12; 相当于 5.3*10的12次方,科学计数法
  double d = 3;  对  (自动转换类型)
  Double d = 3; 错  (自动装箱的目标必须严格对应它拆箱后的类型)自动装箱和类型的自动转换不能同时进行
  Double d = 3.0;对 (自动装箱)
  float f = 11.1;错 (小数默认为double类型的,所以要用小数表示float的话要加上f或者F后缀;同理,整数默认为int型,用整数表示long的话需要加上l后者L后缀)
  float f = 11.1f;对
 
5、在java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个:
  (1.给对象赋值为null,之后没有调用过。
  (2.给对象赋了新的值,重新分配了内存空间。

6、包装类和基本数据类型
  包装类和基本数据类型在进行“==”比较时,包装类会自动拆箱成基本数据类型。

  Interger中设置有缓存,范围是 [-128,127],如果落在缓存内,直接返回缓存中的引用,所以只要是范围内的Integer对象,其引用都相同;而范围外的Integer对象,每次都是新 new 出来的,所以为 false。

  例如:Integer a = 1;

    Integer b = 1;

    Integer c = 500;

    Integer d = 500;

    System.out.print(a == b);//true
    System.out.print(c == d);//false

7、JVM内存区

JVM内存区:程序计数器、虚拟机栈、本地方法栈、堆、方法区(包括常量池)。

8、运行时常量池

  在JDK1.8之前运行时常量池被放在方法区,属于线程共享,JDK1.8之后,元空间取代了方法区,运行时常量池被也被放在元空间中,运行时常池 主要存放, class文件元信息描述,编译后的代码,引用类型数据,类文件常量池。所谓的运行时常量池其实就是将编译后的类信息放入运行时的一个区域中,用来动态获取类信息。运行时常量池是在类加载完成之后,将每个class常量池中的符号引用值转存到运行时常量池中,也就是说,每个class都有一个运行时常量池,类在解析之后,将符号引用替换成直接引用,与全局常量池中的引用值保持一致。

  运行时常量池是方法区的一部分。Class 文件中除了有类的版本、字段、方法、接口等描述信息外,还有常量池信息(用于存放编译期生成的各种字面量和符号引用)
原文地址:https://www.cnblogs.com/Harriett-Lin/p/12752512.html