1.1 为什么Java代码可以实现一次编写、到处运行?
Java实现一次编写到处运行的关键是Java虚拟机(JVM)。Java代码通过Java编译器编译成字节码后,由虚拟机装载并在虚拟机上运行,而虚拟机是把字节码转换成机器码进行运行的。同一份Java代码要在不同平台运行,只需要在不同平台安装对应平台的虚拟机即可,Java的跨平台是Java字节码的跨平台,而不是虚拟机的跨平台,虚拟机是用C/C++语言编写的,是针对特定平台编写的,不同平台有不同平台的JVM。所以Java可以实现一次编写、到处运行的原因就是编译器编译出的字节码可以在不同平台的JVM上运行,这样就跨平台了。
1.2 一个Java文件里可以有多个类吗(不含内部类)?
可以。但只能有一个public的类,且这个类必须和java文件名相同。
1.3 说一说你对Java访问权限的了解
Java的访问权限有public、protected、包访问权限以及private访问权限,这些关键字成为访问修饰符。访问修饰符可以修饰类、成员变量和成员方法。
当修饰类时,类可以有public和包访问权限两种,包访问权限是通过不加任何访问修饰符实现的,即default访问权限。public说明该类可以在任何包中的任何类中进行访问,default访问权限说明该类只能在同包中的类中进行访问。
当修饰成员变量或成员方法时,当访问权限为public时,说明该成员可以被任何包中任何类访问;protected说明只能被当前类的子类或者同包中的类访问;default说明只能被同包中的类访问;private说明只能被当前类访问。
1.4 介绍一下Java的数据类型
Java有八种基本数据类型以及引用数据类型。
八种基本数据类型分别是:数字型包含整数型和浮点型,整数型包括byte、short、int、long,浮点型包括float、double,还有字符型char、布尔型boolean。
引用数据类型就是对对象的引用。
1.5 int类型的数据范围是多少?
-2^31~2^31-1
1.6 请介绍全局变量和局部变量的区别
Java中的变量分为成员变量和局部变量,成员变量有静态成员变量和非静态成员变量。成员变量会被初始化并赋默认值,而局部变量不会,局部变量在编写时位于方法内部,实际上存储在栈中,一旦方法执行结束即被回收,而成员变量中,非静态成员变量作为对象的信息位于堆中,静态即static成员变量位于方法区中。
1.7 请介绍一下实例变量的默认值
byte:0,short:0,int:0,long:0,float:0.0f,double:0.00,char:‘\u0000’,boolean:false,引用数据类型的实例变量初始值:null。
1.8 为啥要有包装类?
Java是面向对象的语言,设计的思想是一切皆对象,但是基本数据类型不满足这个条件,它们不是对象,而引入包装类型则是对这一点的弥补。
1.9 说一说自动装箱、自动拆箱的应用场景
自动装箱是在将基本数据类型赋值给包装类型时被应用的,或者是把基本数据类型的值传入一个以包装类型为参数的方法中时被应用,自动拆箱是把包装类型赋值给基本数据类型或者一个包装类型的值传入以基本数据类型为参数的方法时被应用的。
1.10 如何对Integer和Double类型判断相等?
二者皆继承自Number,Number类型的对象皆有转换成各种基本数值类型的方法,所以这里可以调用二者的doubleValue()方法,用==比较这两个值是否相等。
本文解析了Java一次编写到处运行的奥秘,探讨了Java文件内多类组织,深入讲解了访问权限、数据类型、变量分类、包装类用途,以及自动装箱拆箱的应用。涵盖了Java的关键知识点和特性。
5435

被折叠的 条评论
为什么被折叠?



