面试题1
* byte b = 10;
* b++;
* b = b + 1;
* 问哪句会报错,为什么
因为1是int类型,和b相加b会自动提升为int类型,结果就是int类型
不能赋值给byte类型的b
面试题2:
* 请自己实现两个整数变量的交换(不用第三方变量)
第一种:
x = x + y;
y = x - y;
x = x - y
第二种:
x = x ^ y;
y = x ^ y;
x = x ^ y;
第三种:
int z = x;
x = y;
y = z;
面试题
boolean型占几个字节
boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
面试题3
&&和&的区别:
&&:是短路,只用左边满足(为true)就不执行右边
&: 俩边都要执行
||和|的区别:
||:短路,只要左边不满足(为false)就不执行右边
|: 俩边都要执行
面试题4
2*8最快得出结果的方法是2的二进制向右移动3位(是2的几次幂就移动几位)
面试题5
byte,short int char String 枚举都可以作为switch的条件语句
面试题6:
int[] arr = new int [ ];在内存中是怎么实现的
在栈内存中建立一个int类型的arr变量,然后在堆内存中new一个int类型的实体对象,把堆内存的实体对象的内存地址值赋值给arr,然后arr就指向了堆内存中的实体
面试题7
java中只有传值,因为地址值也是值,这种说法是java之父支持的
面试题8:
封装是私有吗?封装不只是私有,私有只是封装的一种体现形式,
面试题9:
对象和类之间的关系:类是对一类事物的描述,对象是这类事物的一个具体体现形式(具体的实例)
面试题10
静态变量和成员变量的区别:
所属位置不同
内存中的位置不同
在内存中加载在的时间不同
调用方法不同
面试题11;
==号和equals方法的区别:
==号用来判断俩个基本数据类型是否相同和引用型变量的地址值是否相同(是否指向同一对象)
equals方法是用来判断对象中的属性的值是否相同(equals方法定义在Object类中,底层就是用==方法来实现的,一般调用都要复写其功能)
面试题12:
静态初始要优先与主方法执行,随着类的加载而执行
面试题13:
隐式super的使用,在继承中,子类的每条初始化的语句中都有一条 隐式的super();
面试题14:
初始化的先后顺序:
默认初始化---显示初始化---静态代码块(随着类文件的加载而加载)----构造代码块---构造函数---set设置初始化
面试题15
重载和重写的区别
Override(重写):子类的方法继承父类的方法,方法名相同,返回值必 须是其本类或者是其父类
Overload(重载):在同一类中,方法名相同,参数列表不同,于返回值类型无关
面试题16
final修饰局部变量和修饰引用型变量的区别
final修饰局部变量时,局部变量就会变成一个常量,只能赋值一次
当局部变量定义在方法上时,在方法结束后可以再次给该变量赋值
final修饰引用型变量时,不可以改变其地址值,只能改变其对象的 属性值
面试题17
final修饰的对象初始化的时机
1,显示初始化
2.必须在其构造函数结束前初始化
|
|