- 浏览: 37111 次
最新评论
-
edidada:
有完整的代码不?
JNDI理解与实例 -
fj_ding:
tieye 写道如何在 线程池 中 给线程设置名称 了解吗?这 ...
面试心得与总结-——答案整理_3 持续更新 -
tieye:
如何在 线程池 中 给线程设置名称 了解吗?
面试心得与总结-——答案整理_3 持续更新
最近各种看面经,无意间发现一篇对面试总结得比较全面,自己好好看了一遍,笔者真实很用心,写得太全面了,后来一google,发现各大论坛和网站都在转发该篇面经,我试图搜索一下作者,一搜一大片的复制粘贴,也没有写出处,也无从感谢作者了,
现在将一个链接奉上,可以好好看看,对面试有很大帮助.
http://www.360doc.com/content/16/0216/00/26211242_534899333.shtml
当我该篇面经的时候,自己也很激动,感觉发现了新大陆,心情异常的兴奋,因此决定按照他提供的思路进行面试准备,断断续续对其在面试中遇到的问题进行整理,希望在面试中对自己有帮助,现在拿出来给大家分享,答案是自己根据查资料自己理解手敲的,理解得不对的希望大家指正,谢谢。
J2SE基础
1. 九种基本数据类型的大小,以及他们的封装类。
Long(64),Integer(32),Short(16),Double(64),Float(32),Character(16),Byte(8),
Boolean(1),void
为什么java能做到基本类型大小与平台无关:因为java是运行在jvm虚拟机上的,基本类型占用的类型大小是按占用的字节的个数多少来决定的,像64位就占用8个字节,因此能做到与平台无关性。
扩展:java类型分为基本类型和引用类型:引用类型:class type,interface type,
Array type,null type;
2. Switch能否用string做参数?
在java7之前是不可以的,只能用char,int,byte,short,和enum类型
在java7之后就可以使用string类型作为参数。
3. equals与==的区别。
equal比较的是对象的是否相等,而==号是比较地址。
4. Object有哪些公用方法?
Wat(),notify(),notifyAll(),hascode(),toString(),equals(),getClass(),clone(),getClass(),
finalize()
各个方法关键内容:
1:wait(),notify(),notifyall():在并发编程中,他们都是针对同一个对象的,也就是同一个object调用notify()或者是调用notifyAll()方法唤醒的是同一个object()中wait()的线程,而不是别的线程。Wat()和sleep()的区别区别是wait()会放弃当前持有的锁,而sleep()不会放弃当前持有的锁。
2:hashCode()与equals()方法:
1:判读两个对象是否相等的规则:equals()方法是先比较一个对象的hashCode是否相等,然后在判读对象是否相等(一般是成员变量比较)。
2:为什么要重写equals()方法:Object默认的equals()方法是比较两个对象默认的引用是否相等(public boolean equals(Object obj) {return (this == obj);}),如过你要判读两个对象的值是否相等,则需要重写equals()方法。
3:一般地方不要求重写hashCode(),但是当对象要存入hashMap,hashTable或者hashSet(value本身就是key)中作为key的时候,如过重写equal方法,则要求重写hashCode()方法。在hashMap中,会采用hashCode()来计算该对象的hash值,然后决定存入哪一个槽位,当用get方法获取该对象时,则会通过该对象(key)的hashCode()计算其存储的槽位,然后通过equal()方法来确定该槽位中对应的entry的key是否与寻找的的key值是否相等 (get方法中源代if(e.hash==hash&&((k=e.key)== key||key.equals(k)))。equal相等,在要求hashCode不相等(则在hash中找不到对应的值),如过put进hash表的和get的hash表的key的hashcode不一致,始终是找不到key值的,所以要求两个hashCode要相等(所以说一般要求重写equals方法),不想等会造成内存泄漏。Hashcode相等,则不要求equals相等。自己可以举例子
4:在使用hashMap的时候,一般用不可变对象作为key值,因为他们中都复写了equal方法和hashCode()方法,自己写对象作为key则要重写equals和hashCode,实践中曾用身份证作为对象来当作key(不要将,问的时候再说,了解下应用场景)
3.toString()方法没啥好说的。复写很简单。
4.Clone()方法使用:
1:clone()方法用来复制一个对象,自己创建一个对象,然后调用对象clone()方法,就会在堆中在重新分一个区域,来存放该对象的备份,并建立一个新的引用指向该内存区域。同时,要是一个对象要被复制,必须要实现Clonesabel接口(只是一个标志接口,跟serializable一样,内部用obj instance of Conesabel来验证),
2:同时两个内存里面的东西是复制,也就是一样的,因此obj.clone().getClass()==obj.getClass()。也就是对象实例相等,但是引用是不相等的。
3:同时有一点就是要要注意:clone()方法只是简单的复制一个对象,因此如果一个对象中有一个引用作为变量,那么该应用也直接复制,这样就导致两个两个内存区域的引用指向同一个对象,因此这叫浅引用。
4:Class.forName(),getClass()和类名.class,都已可以获得一个Class对象,但是class是静态属性,不需要创建对象,而getClass()需要创建一个对象才可以用。此外,Class.forName()和getClass()是在运行时加载;Class.class是在编译器加载,即.class是静态加载,.getClass()是动态加载。但是最终功能没什么区别,主要用于反射。
5:finalize()方法:这个java虚拟机垃圾回收有关,两次标记(finailize()方法):即使经过可达性分析以后该对象不可到达,不代表该对象非死不可,是否死亡要经历两次标记,这还有由之后的动作决定:1:如果对象在进行可达性分析以后和gc roots没有直接或者间接的相连,此时会进行第一次标记,筛选的条件:当finalize()方法没有被覆盖或者finalize()方法被调用过,则这次标记的对象被回收。
第二次标记:如果一个对象覆盖了finalize()方法,那么该对象将被放在一个叫F-queue的队列中,之后虚拟机会自动触发该队列中的finalize()方法的执行(虚拟机只是触发,并不会等到其执行完,如果等待容易造成阻塞),如果在执行finalize()方法的时候,如果该对象没有重新与gc roots建立连接(将this赋值给某个静态变量就和gc ro ots建立联系了),他就会被垃圾回收器回收。所以收对象可以在finalize()方法中拯救自己
5.Java的四种引用,强弱软虚,用到的场景。
1:Java中四种引用是强引用,弱应用,软引用,虚引用。强引用:用new关键字创建的对象,只要引用还存在,gc就不会回收
软引用:就是一些还有用但是非必需的对象;在系统即将发生内存溢出之前,才会把这些对象进行回收
弱引用:比软引用的强度要若的对象,他能生成到下一次垃圾回收器回收之前,下一次垃圾回收器就会把他收回去,不管发不发生内存溢出。
虚引用:为对象设置一个虚引用的目的就是为了在垃圾回收时收到一条系统通知,不能通过虚引用获得一个对象。
2:四种引用为什么存在的原因:如过我们使用hashMap来存储对象的时候,当里面装入大量数据的时候,如过我们不手动clear(将所有value设置为null),那么就会一直存在,知道发生内存溢出。因此引入弱引用和软引用的目的就是将回收的问题交给java虚拟机,我们自己不直接管理,如过HashMap中数据过多,则垃圾回收器自行回收。
3:应用场景:像弱引用和软引用的引用场景就是cache啦,因为cache是不能保证绝对的可靠,因此我们可以用WeakHashMap来当缓存,这样垃圾回收器会自动进行回收。如果一些重要的数据,则不能用weakHashMap。
6. Hashcode的作用。
1:HashCode的作用主要是用来配合基于散列的集合的,如HashMap,hashTable,hashSet之类的。用于计算散列值,然后决定存储的槽位。
2:为什么需要hashCode,只用equals()方法不就可以吗?假如在hash表中(非链式hash表)如过将每一个对象都进行equals的话,如过是比较一个对象,里面有很多字段,我们要逐一比较,消耗是比较大的,有了hashcode,我们就能大大减轻的比较的消耗,(hashcode默认是地址,但是我们重写的时候一般是地址和字段进行配合得出),
3:hashcode和equal有一个规则: 就是hashCode相等,则equals可能不相等,(因为hashCode可能不是一个地址生成,即使默认用地址生成,他指向的对象可能也会发生改变)。如过equals相等,则hashCode一定相等。所以如果只用hashCode的话,它可以用来判断一个对象不相等,而不能用来判断一个对象相等,因此它可以提高查找的速率。
7. ArrayList、LinkedList、Vector的区别。
1:ArrayList,Vector采用的数组的形势来存储数据,两个都继承List,因此数组在查找的时候是很快的,但是在删除和插入的时候效率,比较低,因为要改变插入元素或删除后面所有序号,但是Vector是线程安全的,在很多方法中都加了一个synchronized,将方法锁起来,因此效率比较低。(细节的话还有就是他们扩容因子不一样,Vector默认扩容是原来的2倍,而ArrayList是原理的1.5倍)
2:LinkedList是采用双向链表来实现的,他继承(List和Queue两个接口)因此查找的时候速度会稍微低一些,但是在插入或者删除的时候速度会很快。由于LinkedList继承了Queue接口,他还可以当队列来使用(add方法相当于addLast())
3:set和List都继承了Collection接口,但是List都是有序的,一般用链表或者数组实现,而set一般都是无序且唯一的,一般采用hash表接口(HashMap采用的链式hash表,hash表有很多种)
4:而且arraylist和vector采用数组,就存在resize的问题(扩容),重写细算数据大小,将原来数组拷贝到新数据中,因此比较耗费时间,而linkedList采用链表形式,没有resize,因此对于增长较快的,应该采用linkedList;
8. String、StringBuffer与StringBuilder的区别。
1:String类型是不可变的,体现在两个方面:1.该类的实现实际上是采用char[]实现的,其中char[]数组变量是不可变,所以说该类是不可变的,而不是说该类用final修饰,然后不可变,final修饰只能说是不可覆盖。2。同时String类是不可变的,也就是每一次操作的都会返回一个新数组对象(return new String(buf))。
2:而StringBuffer和StringBuilder是可变的,1:他们的操作过后每一返回的都是该字符串本身(return this)。2:而StringBuilder和StringBuffer都继承了AbstractStringBuilder,在AbstractStringBuilder中,char[]类型的数组变量没有用final修饰,这一体现出了他们的可变特性。
3:StringBuffer是线程安全的,而StringBuilder是线程不安全的,也就是StringBuffer的很多方法中都加了synchronized对方法进行加锁。
4:包装了Integer,Character之类也是不可变的,因为他们除了用final修饰类本身,他们也用final修饰了内部的int和char基本类型的变量
5:由于String在进行连接操作时,会用String字符串创建一个StringBuilder对象,然后调用StringBuilder的append()方法来连接两个字符串,因此在进行大量的连接操作的时候,要使用StringBuilder或者StringBuffer,节省资源损耗
9. Map、Set、List、Queue、Stack的特点与用法。
Map特点:以键值对形式存入数据,而且键可以是null值,但是只能为一个null值,后面的null值会覆盖前面的。
Set特点:继承Collection接口,放入数据没有顺序,像HashSet其实就是采用HashMap的key值来来存放Set的value;不能放入重复值,可以存入null值
List,继承Collection接口,可以放入重复值,可以存入null值,放入的是有顺序的
Stack:是栈,先进后出,LinkedList也是可以实现栈,但是在java中并没哟让LinkedList继承Stack类,而是有一默认的Stack类。Java.util包中的栈继承了Vector,因此Stack类是用数组实现的,而且是线程安全的。
Queue:队列,先进后出,LinkedList及继承了接口,因此可以用LinkedList创建queue;
10. HashMap和HashTable的区别。
1:HashMap是不是线程安全的,HashTable是线程安全的,HashMap允许key或者value为null,而hashTable不允许key或者value为null,同时HashTable继承Dictionary类,而hashMap,继承AbstractMap类,但是都实现类Map接口
2:原因:hashMap的put()方法一开始就有一个if(key==null){return putForNullKey(value)},因此可知key可以为null。而HashTable中put()方法是if(value==null){throw new NullpointerException()},而且下面要调用key.hashCode(),因此如过key或者value为null,则会发生异常。
3:如过HashMap要实现同步,则可以采用Collection.sychronbizedMap(HashMap),这样就能够达到HashTable的效果
现在将一个链接奉上,可以好好看看,对面试有很大帮助.
http://www.360doc.com/content/16/0216/00/26211242_534899333.shtml
当我该篇面经的时候,自己也很激动,感觉发现了新大陆,心情异常的兴奋,因此决定按照他提供的思路进行面试准备,断断续续对其在面试中遇到的问题进行整理,希望在面试中对自己有帮助,现在拿出来给大家分享,答案是自己根据查资料自己理解手敲的,理解得不对的希望大家指正,谢谢。
J2SE基础
1. 九种基本数据类型的大小,以及他们的封装类。
Long(64),Integer(32),Short(16),Double(64),Float(32),Character(16),Byte(8),
Boolean(1),void
为什么java能做到基本类型大小与平台无关:因为java是运行在jvm虚拟机上的,基本类型占用的类型大小是按占用的字节的个数多少来决定的,像64位就占用8个字节,因此能做到与平台无关性。
扩展:java类型分为基本类型和引用类型:引用类型:class type,interface type,
Array type,null type;
2. Switch能否用string做参数?
在java7之前是不可以的,只能用char,int,byte,short,和enum类型
在java7之后就可以使用string类型作为参数。
3. equals与==的区别。
equal比较的是对象的是否相等,而==号是比较地址。
4. Object有哪些公用方法?
Wat(),notify(),notifyAll(),hascode(),toString(),equals(),getClass(),clone(),getClass(),
finalize()
各个方法关键内容:
1:wait(),notify(),notifyall():在并发编程中,他们都是针对同一个对象的,也就是同一个object调用notify()或者是调用notifyAll()方法唤醒的是同一个object()中wait()的线程,而不是别的线程。Wat()和sleep()的区别区别是wait()会放弃当前持有的锁,而sleep()不会放弃当前持有的锁。
2:hashCode()与equals()方法:
1:判读两个对象是否相等的规则:equals()方法是先比较一个对象的hashCode是否相等,然后在判读对象是否相等(一般是成员变量比较)。
2:为什么要重写equals()方法:Object默认的equals()方法是比较两个对象默认的引用是否相等(public boolean equals(Object obj) {return (this == obj);}),如过你要判读两个对象的值是否相等,则需要重写equals()方法。
3:一般地方不要求重写hashCode(),但是当对象要存入hashMap,hashTable或者hashSet(value本身就是key)中作为key的时候,如过重写equal方法,则要求重写hashCode()方法。在hashMap中,会采用hashCode()来计算该对象的hash值,然后决定存入哪一个槽位,当用get方法获取该对象时,则会通过该对象(key)的hashCode()计算其存储的槽位,然后通过equal()方法来确定该槽位中对应的entry的key是否与寻找的的key值是否相等 (get方法中源代if(e.hash==hash&&((k=e.key)== key||key.equals(k)))。equal相等,在要求hashCode不相等(则在hash中找不到对应的值),如过put进hash表的和get的hash表的key的hashcode不一致,始终是找不到key值的,所以要求两个hashCode要相等(所以说一般要求重写equals方法),不想等会造成内存泄漏。Hashcode相等,则不要求equals相等。自己可以举例子
4:在使用hashMap的时候,一般用不可变对象作为key值,因为他们中都复写了equal方法和hashCode()方法,自己写对象作为key则要重写equals和hashCode,实践中曾用身份证作为对象来当作key(不要将,问的时候再说,了解下应用场景)
3.toString()方法没啥好说的。复写很简单。
4.Clone()方法使用:
1:clone()方法用来复制一个对象,自己创建一个对象,然后调用对象clone()方法,就会在堆中在重新分一个区域,来存放该对象的备份,并建立一个新的引用指向该内存区域。同时,要是一个对象要被复制,必须要实现Clonesabel接口(只是一个标志接口,跟serializable一样,内部用obj instance of Conesabel来验证),
2:同时两个内存里面的东西是复制,也就是一样的,因此obj.clone().getClass()==obj.getClass()。也就是对象实例相等,但是引用是不相等的。
3:同时有一点就是要要注意:clone()方法只是简单的复制一个对象,因此如果一个对象中有一个引用作为变量,那么该应用也直接复制,这样就导致两个两个内存区域的引用指向同一个对象,因此这叫浅引用。
4:Class.forName(),getClass()和类名.class,都已可以获得一个Class对象,但是class是静态属性,不需要创建对象,而getClass()需要创建一个对象才可以用。此外,Class.forName()和getClass()是在运行时加载;Class.class是在编译器加载,即.class是静态加载,.getClass()是动态加载。但是最终功能没什么区别,主要用于反射。
5:finalize()方法:这个java虚拟机垃圾回收有关,两次标记(finailize()方法):即使经过可达性分析以后该对象不可到达,不代表该对象非死不可,是否死亡要经历两次标记,这还有由之后的动作决定:1:如果对象在进行可达性分析以后和gc roots没有直接或者间接的相连,此时会进行第一次标记,筛选的条件:当finalize()方法没有被覆盖或者finalize()方法被调用过,则这次标记的对象被回收。
第二次标记:如果一个对象覆盖了finalize()方法,那么该对象将被放在一个叫F-queue的队列中,之后虚拟机会自动触发该队列中的finalize()方法的执行(虚拟机只是触发,并不会等到其执行完,如果等待容易造成阻塞),如果在执行finalize()方法的时候,如果该对象没有重新与gc roots建立连接(将this赋值给某个静态变量就和gc ro ots建立联系了),他就会被垃圾回收器回收。所以收对象可以在finalize()方法中拯救自己
5.Java的四种引用,强弱软虚,用到的场景。
1:Java中四种引用是强引用,弱应用,软引用,虚引用。强引用:用new关键字创建的对象,只要引用还存在,gc就不会回收
软引用:就是一些还有用但是非必需的对象;在系统即将发生内存溢出之前,才会把这些对象进行回收
弱引用:比软引用的强度要若的对象,他能生成到下一次垃圾回收器回收之前,下一次垃圾回收器就会把他收回去,不管发不发生内存溢出。
虚引用:为对象设置一个虚引用的目的就是为了在垃圾回收时收到一条系统通知,不能通过虚引用获得一个对象。
2:四种引用为什么存在的原因:如过我们使用hashMap来存储对象的时候,当里面装入大量数据的时候,如过我们不手动clear(将所有value设置为null),那么就会一直存在,知道发生内存溢出。因此引入弱引用和软引用的目的就是将回收的问题交给java虚拟机,我们自己不直接管理,如过HashMap中数据过多,则垃圾回收器自行回收。
3:应用场景:像弱引用和软引用的引用场景就是cache啦,因为cache是不能保证绝对的可靠,因此我们可以用WeakHashMap来当缓存,这样垃圾回收器会自动进行回收。如果一些重要的数据,则不能用weakHashMap。
6. Hashcode的作用。
1:HashCode的作用主要是用来配合基于散列的集合的,如HashMap,hashTable,hashSet之类的。用于计算散列值,然后决定存储的槽位。
2:为什么需要hashCode,只用equals()方法不就可以吗?假如在hash表中(非链式hash表)如过将每一个对象都进行equals的话,如过是比较一个对象,里面有很多字段,我们要逐一比较,消耗是比较大的,有了hashcode,我们就能大大减轻的比较的消耗,(hashcode默认是地址,但是我们重写的时候一般是地址和字段进行配合得出),
3:hashcode和equal有一个规则: 就是hashCode相等,则equals可能不相等,(因为hashCode可能不是一个地址生成,即使默认用地址生成,他指向的对象可能也会发生改变)。如过equals相等,则hashCode一定相等。所以如果只用hashCode的话,它可以用来判断一个对象不相等,而不能用来判断一个对象相等,因此它可以提高查找的速率。
7. ArrayList、LinkedList、Vector的区别。
1:ArrayList,Vector采用的数组的形势来存储数据,两个都继承List,因此数组在查找的时候是很快的,但是在删除和插入的时候效率,比较低,因为要改变插入元素或删除后面所有序号,但是Vector是线程安全的,在很多方法中都加了一个synchronized,将方法锁起来,因此效率比较低。(细节的话还有就是他们扩容因子不一样,Vector默认扩容是原来的2倍,而ArrayList是原理的1.5倍)
2:LinkedList是采用双向链表来实现的,他继承(List和Queue两个接口)因此查找的时候速度会稍微低一些,但是在插入或者删除的时候速度会很快。由于LinkedList继承了Queue接口,他还可以当队列来使用(add方法相当于addLast())
3:set和List都继承了Collection接口,但是List都是有序的,一般用链表或者数组实现,而set一般都是无序且唯一的,一般采用hash表接口(HashMap采用的链式hash表,hash表有很多种)
4:而且arraylist和vector采用数组,就存在resize的问题(扩容),重写细算数据大小,将原来数组拷贝到新数据中,因此比较耗费时间,而linkedList采用链表形式,没有resize,因此对于增长较快的,应该采用linkedList;
8. String、StringBuffer与StringBuilder的区别。
1:String类型是不可变的,体现在两个方面:1.该类的实现实际上是采用char[]实现的,其中char[]数组变量是不可变,所以说该类是不可变的,而不是说该类用final修饰,然后不可变,final修饰只能说是不可覆盖。2。同时String类是不可变的,也就是每一次操作的都会返回一个新数组对象(return new String(buf))。
2:而StringBuffer和StringBuilder是可变的,1:他们的操作过后每一返回的都是该字符串本身(return this)。2:而StringBuilder和StringBuffer都继承了AbstractStringBuilder,在AbstractStringBuilder中,char[]类型的数组变量没有用final修饰,这一体现出了他们的可变特性。
3:StringBuffer是线程安全的,而StringBuilder是线程不安全的,也就是StringBuffer的很多方法中都加了synchronized对方法进行加锁。
4:包装了Integer,Character之类也是不可变的,因为他们除了用final修饰类本身,他们也用final修饰了内部的int和char基本类型的变量
5:由于String在进行连接操作时,会用String字符串创建一个StringBuilder对象,然后调用StringBuilder的append()方法来连接两个字符串,因此在进行大量的连接操作的时候,要使用StringBuilder或者StringBuffer,节省资源损耗
9. Map、Set、List、Queue、Stack的特点与用法。
Map特点:以键值对形式存入数据,而且键可以是null值,但是只能为一个null值,后面的null值会覆盖前面的。
Set特点:继承Collection接口,放入数据没有顺序,像HashSet其实就是采用HashMap的key值来来存放Set的value;不能放入重复值,可以存入null值
List,继承Collection接口,可以放入重复值,可以存入null值,放入的是有顺序的
Stack:是栈,先进后出,LinkedList也是可以实现栈,但是在java中并没哟让LinkedList继承Stack类,而是有一默认的Stack类。Java.util包中的栈继承了Vector,因此Stack类是用数组实现的,而且是线程安全的。
Queue:队列,先进后出,LinkedList及继承了接口,因此可以用LinkedList创建queue;
10. HashMap和HashTable的区别。
1:HashMap是不是线程安全的,HashTable是线程安全的,HashMap允许key或者value为null,而hashTable不允许key或者value为null,同时HashTable继承Dictionary类,而hashMap,继承AbstractMap类,但是都实现类Map接口
2:原因:hashMap的put()方法一开始就有一个if(key==null){return putForNullKey(value)},因此可知key可以为null。而HashTable中put()方法是if(value==null){throw new NullpointerException()},而且下面要调用key.hashCode(),因此如过key或者value为null,则会发生异常。
3:如过HashMap要实现同步,则可以采用Collection.sychronbizedMap(HashMap),这样就能够达到HashTable的效果
发表评论
-
面试心得与总结-——答案整理_9 持续更新
2016-09-13 20:12 1117Jsp与Servlet技术 收集的网上一些关于Ht ... -
面试心得与总结-——答案整理_8 持续更新
2016-09-13 19:59 11761、Jsp与Servlet技术 1.jsp有哪些内 ... -
java读取文件与写文件
2016-09-01 17:08 2516前言 java中io流一直是一个令人头疼的东西,主要是各种 ... -
面试心得与总结-——答案整理_7 持续更新
2016-08-31 21:32 2078TCP/IP 1. OSI与TCP/IP各层的结构与 ... -
面试心得与总结-——答案整理_6 持续更新
2016-08-31 19:24 9421.进程与线程的区别 1:进程是系统进行资源分配和调度的基 ... -
面试心得与总结-——答案整理_5 持续更新
2016-08-24 00:28 3513JVM 1. 内存模型以及分区,需要详细到每个区放什 ... -
面试心得与总结-——答案整理_4 持续更新
2016-08-22 21:54 213531. 反射的作用与原理。 ... -
面试心得与总结-——答案整理_3 持续更新
2016-08-22 21:47 189921. 实现多线程的两种方法:Thread与Runable。 ... -
面试心得与总结-——答案整理_2 持续更新
2016-08-22 21:38 178511. HashMap和ConcurrentHashMap ... -
Scanner常用方法详解
2016-08-02 00:55 5462最近要面试了,以前对Scanner不怎么熟悉,一直都是使用ne ... -
java实现TCP与UDP混合传输文件总结
2015-04-07 19:44 1383java实现TCP与UDP混合传输文件总结 ... -
用java语言用sort方法实现groupby分组
2015-04-20 14:19 638用java语言用sort方法实现groupby分组 ... -
java中synchronized锁定对象问题
2016-03-14 22:08 493java中synchronized锁定对象问题 关于 ... -
DNS学习笔记
2016-03-16 09:53 320DNS学习笔记 DNS简单 ... -
如何创建处理器池之享元模式
2016-04-19 09:29 521最近在看tomcat源码的 ... -
Integer.valueof()学习之享元模式
2016-04-19 11:33 494问题描述: 1. Integer类初始化 //当这 ... -
JNDI理解与实例
2016-04-29 16:51 971本文转载于http://blog.csdn.net/xia ... -
java中读取.properties配置文件
2016-05-02 08:38 566注:本文转自http://www.cnblogs.com/fs ... -
java编码规范
2016-05-06 17:10 1131java编码规范 java标准委员会(j ...
相关推荐
面试题.doc————电子版_doc版
面试.doc————电子版_doc版
网安面试必考题合集--含答案
全网最全-谷粒商城项目-面试总结-简历优化_Java-You的博客-CSDN博客 .html
1. **第一阶段哈希(客户端哈希)**:当客户端(如应用程序)想要存储或检索数据时,它首先根据key进行哈希运算。这一阶段的哈希决定了数据将被存储在哪一台Memcached服务器上。通常,客户端会使用一种简单的哈希...
谷粒学苑-在线教育实战项目-面试总结-简历优化_Java-You的博客-CSDN博客 .html
在 IT 面试中,理解基础概念以及其在实际编程中的应用至关重要。以下是对给定文件中涉及知识点的详细解答: 1. **逻辑操作(&, |, ^)与条件操作(&&, ||)**: - **逻辑操作**:在 Java 中,`&` 和 `|` 是按位逻辑...
在IT行业中,面试和笔试是评估候选人技能的重要环节。这些题目涵盖了Java编程语言的基础知识,包括访问修饰符、数据类型转换、抽象类与接口的区别、类的构造与执行顺序、内部类的使用以及JSP内置对象的理解。接下来...
Java全能学习面试手册——互联网企业面试真题.zip 01 java面试——北京-百度-Java中级.pdf 02 java面试——北京-京东-Java中级.pdf 03 java面试——广州-唯品会-Java大数据开发工程师.pdf 04 java面试——杭州-阿里...
《Java工作守门人——面试必备辞典》 在Java编程的世界里,面试是每一位开发者通往职业发展的重要关卡。这份名为"dictionary-of-java-job-keepers.rar_Keepers"的压缩包,就如同一个守护者,它包含了Java程序员面试...
1. **Java基础**:包括数据类型、变量、运算符、流程控制(if-else, switch, for, while)、类与对象、封装、继承、多态等基础概念。 2. **异常处理**:理解如何使用try-catch-finally语句块,异常分类,自定义异常...
本文档总结了 Oracle 数据库相关的面试问题和答案,涵盖了 optimizer_mode、CBO、RBO、索引、排序、表空间、回滚段、绑定变量、SQL 优化等多个方面的知识点。 _optimizer_mode_ Optimizer_mode 是 Oracle 数据库中...
《C++面试题大全——为你的硕士求职之路保驾护航》 在当今竞争激烈的IT行业中,拥有扎实的编程基础和丰富的面试经验对于寻求硕士级别的职位至关重要。本资料“C--for-interview.rar”是一个针对C++面试的精选题库,...
研究生面试英文自我介绍--终极整理版学习总结.doc
软件大数据面试笔试复习资料面试技巧HR面试常问的问题总结面试笔试题整理资料合集: 01大数据面试复习----Java基础---集合类、多线程、JVM 02大数据面试复习----画重点----常问问题分析 03大数据面试复习----画重点--...
全网最齐全的Java面试题库-附答案-持续更新
总结来说,制作一份有效的简历需关注信息的清晰度、语言的通俗性和邮件的规范性,以此来吸引HR的注意力,提高面试机会。同时,根据不同的职位需求和个人特点灵活调整简历内容,使简历更具针对性。
----------------J100IT名企面试总结.pdf ----------------100IT名企java面试真题整理面试必考点.pdf ----------------18个万能非技术面试题.docx ----------------100IT名企java面试必考面试题.pdf ----Interview-...
Java全能学习面试手册——Java面试题库.zip 01 7道消息队列ActiveMQ面试题!.pdf 02 10道Java高级必备的Netty面试题!.pdf 03 10道Java面试必备的设计模式面试题!.pdf 04 10个Java经典的List面试题!.pdf 05 10个...