1、 为什么Java代码可以实现一次编写、到处运行?
java虚拟机jvm是Java语言跨平台的关键
Java源代码(.java)首先被编译器编译成字节码文件(.class)然后再由java虚拟机翻译为特定平台下的机器码文件并展示,也就是说在不同的平台上安装对应的java虚拟机就可以运行字节码文件
1.2 一个Java文件里可以有多个类吗(不含内部类)?
可以的但是公共类只能有一个也就是public修饰的类
而且public修饰的类的类名必须和文件名相同
1.3 说一说你对Java访问权限的了解
java提供了三种权限修饰符,分别是private、protected、public,三种权限修饰符可以形成4中不同的
权限,分别是private、defalut、protected、public
修饰符修饰在成员变量或成员方法上有四种访问权限
private
只有这个类的内部成员可以访问
defalut
可以被类的内部成员访问也可以被同一包下的类的内部成员访问
protected
可以被类的内部成员访问也可以被同一包下的类的内部成员访问以及他的子类访问
public
可以被任意包下的任意类的成员访问
修饰符修饰在类上只用两种访问权限
default:该类可以被同一包下其他的类访问;
public:该类可以被任意包下,任意的类所访问。
1.4 介绍一下Java的数据类型
分为基本数据类型与引用数据类型
基本数据类型 整数类型(byte,short,int,Long) 浮点类型 (float,double)字符类型(char) 布尔类型(boolean)
引用数据类型 接口,数组,类
1.5 int类型的数据范围是多少?
int类型占4字节(32位),数据范围是 -2^31 ~ 2^31-1。
1.6 请介绍全局变量和局部变量的区别
首先他们创建的位置不同 成员变量创建在类中而局部变量创建在方法中
然后是成员变量会有默认值而局部变量不会有
然后局部变量会存在栈内存中,它作用的范围结束会自动释放
而全局变量则要分情况
如果是加了static修饰他叫类变量,会存在方法区中变量生命周期和类相同
如果没有加static修饰他叫实例变量,会存在堆内存中变量生命周期和对象相同
1.7 请介绍一下实例变量的默认值
参考答案
实例变量若为引用数据类型,其默认值一律为null。若为基本数据类型,其默认值如下:
byte:0
short:0
int:0
long:0L
float:0.0F
double:0.0
char:‘\u0000’
boolean:false
注意事项
上述默认值规则适用于所有的成员变量,所以对于类变量也是适用的。
1.8 为什么要有包装类?
java的理念是一切皆对象,但是八种基本类型却不是对象,于是java为八种基本类型都添加了对应的引用类型也就是包装类
包装类的作用
1.把基本类型转换为对象
2.集合中的元素是对象而不是基本类型
3.泛型不能用于基本类型只能用于对象
4.提供了类型检查和数据转换的方法,例如parseDouble方法可以将字符串转换为double类型的值。
5.举个例子,后端接收前端数据是如果是用基本数据类型,假如前端传入null值就会报错,而使用包装类则不会
1.9 自动装箱自动拆箱
把基本数据类型转换为对应的包装类的过程就叫做自动装箱
把包装类转换为对应基本类型的过程就叫做自动拆箱
但是要注意,在循环体中频繁的拆装箱会产生很多临时对象,从而影响性能