java笔试面试详解~
最近正在面试,总结一些各大公司的笔试题,面试经验分享给大家
-
9个内置对象 ****
Request(基础)2. Response响应对象3. Out输出对象 4. Session对象 5. application对象
page对象 7. pageContext对象 8. Config对象 9. Exception对象 -
String 和StringBuffer的区别
String是final 修饰的,数值不可改变的字符串
StringBuffer类 提供的字符串进行修改,可以使用StringBuffers来动态构造字符数据 -
HashMap 和 Hashtable 的区别
HashMap是Hashtable 的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空 (null)键值(key),由于非线程安全,效率上要高于Hashtable -
sleep() 和wait() 区别
sleep是线程类 (Thread)的方法,导致此线程暂停执行指定的时间,给执行机会给其他的线程,但是在监控状态下依然保持,到时间会自动恢复。 调用sleep对象不会释放对象锁
wait会释放同步锁,让其他线程进入synchronized代码块执行。sleep不会释放锁,其他线程只能等待在synchronized代码块中进入sleep的线程醒后执行完毕才能竞争持有锁。
wait可以被notify/notifyAll等方法唤醒,继续竞争CPU和锁。sleep方法只能等待线程睡眠时间到继续运行。 -
error和exception
error总是不可控制的(unchecked)
经常用来表示系统错误和底层资源的错误
如果可能的话应该在系统级捕捉
exception是可以控制的(checked)或不可控制的(unchecked)
表示一个程序员导致的错误
应该在应用程序级处理 -
java创建线程有几种不同的方式
继承Thread类
实现Runnable接口.重现run()方法
使用Executor框架创建线程池
Runnable接口有如下好处
避免点继承的实现,一个类可以继承多个接口
适合用于资源共享
-
值传递和引用传递的区别
值传递就是将传递的变量复制了一个,引用传递就是让该元素指向值的地址 -
自动拆箱与自动装箱
装箱就是自动将基本数据类型转换为包装器类型;
拆箱就是自动将包装器类型转换为基本数据类型。 -
Spring的两大特性
第一大特性——ioc 控制反转
ioc指的就是控制反转,简单来说就是讲创建对象的过程和创建对象的权限交给Spring来帮我们处理,我们不用通过new的方式来创建javabean对象,这个过程就叫做ioc
第二大特性——DI 依赖注入
DI 指的就是依赖注入,就是使用Spring框架对我们的javabean对象赋值的过程。
10. Java中的final 关键字有哪些用法
修饰类:表示该类不能被继承
修饰方法:表示该方法不能被重写
修饰变量:变量只能赋一次值,以后值不能被修改