javase面试问题
1.jre与jdk的区别
jre(java runtime environment),运行时环境,包含java虚拟机
jdk(java development kit),包含jre同时还包括 java 源码的编译器 javac
2.System.out.println(12345+5432l)结果为17777为什么?
5432之后跟的是“L”
3. byte b1 =3,b2=4; byte b3 = b2 +b1;运行结果
A.报错,b1和b2会被提升为int型
B.b1,b2是变量,java编译器只有常量优化机制
4.float和long的取值范围谁大
float用IE754编码,有8位为指数位
5.short s=1; s=s+1; 报错,int
short s=1;s+=1; 底层自动转化为s=(short)(s+1)
6. java中到底是传值还是传址
a.既是传值又是传址,基本数据类型传值,引用数据类型传址
b.java中只有传值,因为地址值也是值(面试这么说,支持者是高斯林java之父)
7.一个抽象类如果没有抽象方法,可行吗?
可以,这么做可以不让其他类创建本类对象,交给子类完成
8.abstract不能和哪些关键字共存?
abstract和static,被static修饰可以类名.调用,但类名.抽象方法是没有意义的,被abstract修饰没有方法体
abstract和final,被final修饰强制子类重写,被abstract修饰不让子类重写
abstract和private,被private修饰不让子类访问,被abstract修饰是为了让子类看到强制重写
9.interface Inter{
void show();
}
class outer{
//补齐代码,要求能够在主方法中运行outer.method.show();
}
答:根据能够调用.show得知返回的对象是inter类型
public static Inter method(){
return new Inter(){
public void show(){
syso("hi");
}
};
}
10.
-128~127是byte的取值范围,如果在这个取值范围内,自动装箱就不会创建新对象,而是从常量池中获取,如果超过了byte取值范围就会新创对象
11.Hsahmap和HashTable的区别
相同:底层都是哈希算法,都是双列集合
区别:1.Hsahmap线程不安全,效率高,JDK1.2
HashTable线程安全,效率低,JDK1.0
2.HsahMap可以存储null键和null值,table不可以
12.throw和throws的区别
a.throws用在方法声明后,跟的是类名
可以跟多个异常类名,可用逗号隔开
表示抛出异常,由该方法的调用处理
b.throw
用在方法体内,跟的是异常对象名
只能抛出一个异常对象名
表示抛出异常,由方法体内的语句处理
13.final,finally,finalize的区别
final,修饰类不可继承,方法不可重写,变量只能赋值一次
finally是try语句中的一个语句体,不能单独使用,用来释放资源
finalize是一个方法,当垃圾回收器不存在该对象的引用时,用对象的垃圾回收器调用此方法
线程间通信的注意事项
14.在同步代码块中,用哪个对象锁,就用哪个对象调用wait方法
15.为什么wait和notify方法定义在object类中?
因为锁对象可以是任意对象,object是所有类的基类,所以要定义在此类中
16.sleep和wait方法的区别
A sleep必须传入参数,参数时间到了自动醒来
wait传参就是参数的时间结束后等待,不传则直接等待
B sleep不释放锁,wait释放锁
17.编译时异常与运行时异常有什么区别?
编译时异常,又称未雨绸缪异常,受程序运行的上下文环境影响
运行时异常,程序代码错误‘
18.什么是java序列化,如何实现序列化
把Java对象转换为字节序列的过程,序列化是一种处理对象流化的机制,解决对象的读写问题。
实现serializable接口,使用fileoutputstream创建objectoutputstream,使用wiriteobject写出
19.java中字符流和字节流的区别?
字符流,继承于inputstream,outputstream
字符流,继承于inputstreamreader
20.异常指java运行程序时发生错误,根类为java.lang.throwable,子类分为error(无救)严重错误 和 exception(有救)程序设计有问题
应用在程序运行利用throw抛出异常,避开一些特殊的错误,也可以自定义异常
21.什么是多态?
同一个接口,使用不同实例而执行不同操作
同一个行为具有不同表现形式的能力
22.同步代码块和同步方法的区别
同步方法在方法前加关键字synchronized,同步代码块则在方法内部使用synchronized
同步方法如果是 static 方法,等同于同步方法块加锁在该 Class 对象上
23.java是解释型的语言,java需要编译生成.class字节码文件,但字节码文件需要被jvm解释才能运行
24.synchronizrd的作用是什么?
表示只有一个线程可以获取作用对象的锁,执行代码,阻塞其他线程
25.可重入锁是指同一个线程在外层方法获取锁的时候,进入内层方法会自动获取锁
26.列举一些常见的运行时异常
NullPointerException; ClassCastException; IndexOutOfBoundsException ;
27.XML的使用场景
信息配置;数据交换
24.事物的四大特性?
ACID,原子性(automatic),一致性(consistency),隔离性(isolation),持久性(duration)
25.

浙公网安备 33010602011771号