总结面试中遇到的题目---持续更新

来源:互联网 发布:python爬虫入门教程 编辑:程序博客网 时间:2024/05/23 09:44

目前处于找工作的状态中,记录下遇到的面试题目等,希望对未来有很大的作用,也希望此时正在找工作的你们,找到一份适合自己的工作!!
1.int和Integer的区别
Integer是int的包装类,Integer初值是null,int初值为0,其中在-128到127之间的整数会自动缓存,所以如果是两个Integer=128的比较不相等,此外new Integer()的对象比较也不相等。
2.euqals和==的区别
equals注重比较内容,==注重比较引用对象 ,内存空间位置 当new对象的时候会重新定义一个对象空间。
String a=new String(“a”);
String b=new String(“a”);
String aa=”a”;
a==b//false
a.equals b //true
aa=a;//false
aa.equals(a);//true
3.List、map、hashMap hashTable、set等集合的区别
总的 Collection集合中包含List和set
(接口) List集合中包含ArrayList、LinkedList等,其中的内容是有序的,允许重复,可以插入多个空值
ArrayList和Linkedlist的区别:linkedlist是基于链表的数据结构,对于随机访问的get和set方法中,arrayList的优于linkedlist,linkedlist要移动指针。添加删除数据的速度也更快。
(接口)set集合中包含HashSet,treeSet等 其中的内容是不可重复的,只允许一个null值,通过compare进行排序,小于指定对象返回负数
set和Map的区别:Map集合中包含(key,value),Map不是Collection中的子类或实现类,Map中的key必须唯一
HashMap和HashTable区别:HashMap不安全,可以有一个null值key,和多个null值得value,Hashtablle线程安全,但是key和value都不能为null 
Vector集合也是线程安全的。
4.线程和进程的区别
进程是系统的分配单位,线程是cpu在进程运行过程中切换的单位,进程属于线程,一个进程中有多个线程。
5.多线程的实现方法,实现线程同步的方法
实现多线程:继承Thread类和实现Runnable接口
线程同步的方法:同步锁synchroinzed(线程安全) ,wait和notify
线程运行时是不受控制,并发执行的,容易造成数据的错误,这时候就需要进行线程同步,在某一线程获取cpu时间片时,不想让它执行,使用wait()方法等待,一直到你需要使用其他线程来唤醒notify(),但是不能确切唤醒某个线程,由jvm决定,唤醒一个线程。唤醒所有是notifyAll()
wait()方法和sleep()方法的区别:
wait使对象处于等待状态,并释放锁。是object对象方法
sleep使对象处于睡眠状态,可自动唤醒。要捕获异常。不释放锁,是Thread类方法
6.代码查错
abstract class Something {
private abstract String doSomething ();
}
抽象类方法不能用private修饰。要实现类来重写方法,所以不能用private和final
6.1.代码查错
short s1 = 1; s1 = s1 + 1;
short s1 = 1; s1+=1;
第一句错误,short型加上int型会自动转换为int型,大类型不能赋值给小类型。
7对>>和<<的理解
a>>b 右移 值减少 a/2^b
a<<’b’ 左移 值增大 a*2^b
8.static方法内部调用非静态方法可以么?
不能,非静态方法一般要和对象相关联,static方法没有对象也可以使用
9.Math常用方法
Math.ceil()向上取整 Math.ceil(11.5)=12 ;Math.ceil(-11.5)=-11
Math.floor()向上取整 Math.floor(11.5)=11 ;Math.floor(-11.5)=-12
Math.round()四舍五入 加0.5向下取整 Math.round(11.5)=12 ;Math.round(-11.5)=-11
10.方法重载和方法重写
方法重载:一个类中,方法名相同,参数列表不同
方法重写:父类和子类中,方法名相同,参数列表相同,返回值相同,访问修饰符不能减小
11.String、StringBulider、StringBuffer区别
String 不可改变内容
StringBulider 可以改变内容,速度快,新特性,不执行同步
StringBuffer 可以改变内容 线程安全 同步进行
12.数组和String的length方法
数组.lenght
String.length();
13.a++和++a区别
int a=1;
a++ //a=1;a=a+1;
++a //a=a+1;a=2;
14.垃圾回收机制
所谓垃圾回收就是将系统长时间不用的对象进行回收,释放系统资源。重写finalize方法,手动回收方法 Runtime.getRuntime.gc()/system.gc()
15servlet生命周期
1.初始化阶段 init()
2.响应客户请求service
3.终止阶段 destory()
16单例模式
定义:每个对象只能有一个实例,不能多次使用
线程安全的情况下:

Public class MyClass{    private MyClass(){}    private MyClass mc=new Myclass();    public static MyClass getInstance(){        return mc;    }}

线程不安全的时候,要加锁synchronized

public class MyClass {      private MyClass() {}      private static MyClass mc;      //静态工厂方法       public static MyClass getInstance() {           if (mc == null) {                 mc = new MyClass();           }            return mc;      }  } 
原创粉丝点击