局部变量表中的变量也是重要的垃圾回收根节点,只要被局部变量表中直接或间接引用的对象都不会被回收。
AI时代,有人焦虑失业,有人偷偷变强,不写代码不烧脑~
感受一句话的力量
AI时代,有人焦虑失业,有人偷偷变强,不写代码不烧脑~
局部变量表中的变量也是重要的垃圾回收根节点,只要被局部变量表中直接或间接引用的对象都不会被回收。
JDK包含了JRE,JRE包含了JVM。
如果除数是0,被除数是整型,则会报ArithmeticException异常;如果除数是0且被除数是浮点型或除数是0.0时,则不会报异常,得到的结果是Infinity。
Java编译器输入的指令流是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。
这是因为局部变量表最基本的存储单元是slot,long类型的数据占两个slot(见4.3.2节),所以需要加1。
一般来说,静态方法、私有方法、final方法、实例构造器、父类方法都是非虚方法
虚拟机栈是以栈帧为基本单位构成的,栈帧包括局部变量表、操作数栈、动态链接、方法返回地址和一些附加信息
不同类加载器看似是继承关系,实际上是聚合关系。在下层加载器中,包含着上层加载器的引用,也就是说应用程序类加载器并不是扩展类加载器的子类。
局部内部类因为在局部位置上,所以不能加任何访问权限修饰符和static,但局部内部类前面可以用abstract或final修饰。
String类型的常量池使用比较特殊,当直接使用字面量的方式(也就是直接使用双引号)创建字符串对象时,会直接将字符串存储至常量池。当使用其他方式(如以new的方式)创建字符串对象时,字符串不会直接存储至常量池,但是可以通过调用String的intern()方法将字符串存储至常量池。
(2)NullPointerException:空指针异常。
每个线程在创建时都会创建一个虚拟机栈,其内部由许多栈帧(StackFrame)构成,每个栈帧对应着一个Java方法的调用
只允许在抽象类和接口中声明抽象方法
注解其实就是代码中的特殊标记,这些特殊标记可以在编译、类加载、运行时被读取,并执行相应的处理。
如果当前帧是由构造方法或者实例方法创建的,那么该对象引用this将会存放在index为0的slot处,其余的参数按照参数表顺序继续排列。
Java语言的远程方法调用(RMI)机制也是开发分布式应用的重要手段。
类的五大成员分别为成员变量、成员方法、构造器、初始化代码块、内部类。
case后只能是常量值,不能是变量或表达式。
变量实质上就是内存中的一块数据存储区域
注意Java是严格区分大小写的。