第一范文网 - 专业文章范例文档资料分享平台

企业面试笔试题总汇v1.5

来源:用户分享 时间:2025/7/9 6:07:24 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

15、 Collection和Collections有什么区别?

Collection是集合类的上级接口,继承与他的接口主要有Set 和List.

Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作

16、 String s = new String(\;请问有几个String对象?分别是

两个或一个,“xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量“xyz”不管出现多少遍,都是缓冲区中的那一个。如果以前就用过‘xyz’直接从缓冲区拿。如果没有就在字符串缓冲区创建这个“xyz”字符串对象,New String每写一遍,就创建一个新的对象。

17、 try{}里有一个return语句,那么紧跟在这个try后的finally{}里德code会不会被执行?

什么时候被执行,在return之前还是后?

1. public class Test { 2. public static void main(String[] args) { 3. System.out.println(new Test().test());; 4. } 5. static int test(){ 6. int x = 1; 7. try{ 8. return x; 9. }finally{ 10. ++x; 11. } 12. } 13. } 14. /*---------执行结果 ---------*/ 15. 1 16. /*运行结果是1,为什么呢?主函数调用子函数并得到结果的过程,好比主函数准备一个空罐子,当子函数要返回结果时,先把结果放在罐子里,然后再将程序逻辑返回到主函数。所谓返回,就是子函数说,我不运行了,你主函数继续运行吧,这没什么结果可言,结果是在说这话之前放进罐子里的。 */ 18、 java中可见的访问修饰符的含义

public:访问不受限制。

protected:访问仅限于包含类或从包含类派生的类型。只有包含该成员的类以及继承的类可以存取. Internal:访问仅限于当前程序集。只有当前工程可以存取.

protected internal:访问仅限于当前程序集或从包含类派生的类型。 private:访问仅限于包含类型。只有包含该成员的类可以存取.

19、 java用什么来判断对象是否是属于某个类或借口的事例?

Instanceof

20、 Java中,int和Integer有什么区别

int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,

所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型。 在Hibernate中,如果将OID定义为Integer类型,那么Hibernate就可以根据其值是否为null而判断一个对象是否是临时的,如果将OID定义为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0。

另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量

21、 Java中,HashMap和Hashtable的区别?

HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。

Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。

Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。 就HashMap与HashTable主要从三方面来说。

1.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现

2.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步 3.值:只有HashMap可以让你将空值作为一个表的条目的key或value

22、 Java中,String和StringBuffer的区别?

1, String : 字符串常量,字符串长度不可变!!!

2, StringBuffer : 字符串变量(Synchronized,即线程安全),如果要频繁对字符串内容进行修改,出于效率考虑最好使用StringBuffer,如果想转成String类型,可以调用StringBuffer的toString();StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。

append方法始终将这些字符添加到缓冲区的末端;而insert方法则在指定的点添加字符。

3, (*延伸) StringBuilder 字符串变量(非线程安全),这是在JDK5.0新增加的!!!,该对象是一个线程不安全的字符串容器,在单线程操作的情况下此对象可以用于取代StringBuffer!!!

4,(String 和 StringBuffer )两者者之间的区别 :

这两者之间的区别主要区别在性能上,String,每次对存放进String当中的字符串进行更改的时候,都会生成一个新的String对象,然后指针指向该对象(虽然Java不承认自己有指针这回事),而一旦当产生的没有引用指向对象过多的时候 ,这个时候GC就会出动,对其进行清理,这个时候,性能就会有所降低!!!而使用 StringBuffer的时候,每次都会对该对象本身进行操作,而不是去创建一个新的对象,所以在多数情况下还是推荐使用该对象!!!

但是某些特殊的情况下,使用String 并不会比StringBuffer慢!!! 例如 : String str = \;&& StringBuffer sb = new StringBuffer(); sb.append(\

在这里的String str = \实际上被翻译成了 str = \

23、 Thread和Runnable有什么不同?

首先,Java 中Thread 和 Runnable是实现并发线程的两种方式!!!, 通过两者中的任意一个都可以达到线程并发的目的!!! 区别 :

0,Thread 是一個 Class,Runnable 是一個 interface!!!

1,通过extends Thread,可获得start(), sleep(), 并覆盖run(), 使用时直接用start(),但有时不太

方便通过继承(extends)而进行多线程,例如已继承了其它Class(Java 不允许多重继承)时,就应该实现(implements) Runnable写多线程程序。

2,注意,implements Runnable创建的只有run()方法而没有start(),因此要利用其它机制来启动。

第一个是Runnable的,

第二个是Thread的,然后把第一个当成参数传给第二个!!!

3,由下面的程序可以看出,实现Runnable的多线程程序要比,继承Thread的多线程程序灵活的多!!! 4,这里还有一点,就是说使用Runnable实现多线程可以达到资源共享目的,让多个Thread对象接收同例如 : 1. //Runnable 接口的多线程程序举例!!! 2. private class RunnableThread implements Runnable{ 3. /*这个方法中写,多线程执行的程序!!!,因为这里是实现了Runnable所以就算再去继承其他的class也不会违反java成不能多继承的规定!!!*/ 4. public void run(){ 5. } 6. } 7. /*通过将Runnable的实现类作为参数传递给一个Thread对象,然后通过开启Thread对象,就能让其执行自己复写的方法,并且是并发操作!!!*/ 8. Thread runnThread = new Thread(new RunnableThread()); 9. RunnThread.start(); 10. /*1,继承自Thread类的多线程程序 11. private class GenThread extends Thread { 这要创建两个对象,

一个Runnable实现类的参数,这样就是多个线程操作同一块资源!!!

12. //这个方法中写,多线程需要执行的方法!!! 13. public void run() { 14. } 15. } 16. Thread theGenThread = new GenThread(); 17. theGenThread.start(); 24、 GC是什么,为什么要有GC?

1,GC : 垃圾回收 (GarbageCollection),Java的内存管理,其内置的垃圾回收,是Java语言的优秀成果,它允许开发者创建新的对象不需要明确内存分配和释放,因为垃圾回收器自动回收内存当中的对象。

2,垃圾收集释放从手工处理内存释放的程序员。其结果是,某些类别的缺陷被消除或显着减少:这也正是Java的特点(相对于C++来说,程序员不再需要通过痛苦的记忆哪里的内存是释放掉的,而哪一些是没有释放掉的)

内存不安全释放的问题 :

1,当一块内存被释放,同时还存在着指向它,而那些指针中的一个被废弃发生。届时内存可能已被重新分配到其他使用,具有不可预知的结果。

2,当程序试图发生释放的内存已被释放,并可能已经被再次分配的区域。

3,某些种类的内存泄漏,其中一个程序无法释放由已成为对象占用的内存可达,从而导致内存消耗殆尽。(垃圾收集通常不处理的数据是可到达的无界积累,但实际上将不被使用的程序)……

25、 是否可以从一个static方法内部发出对非static方法的调用?

不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。

26、 如何把一段逗号分隔的字符串转换成一个数组?

1. //方式一:使用String的split 方法 2. public static String[] convertStrToArray(String str){ 3. String[] strArray = null; 4. strArray = str.split(\); 5. return strArray; 6. } 7. //方式二:使用StringTokenizer实现 8. //api说明:StringTokenizer 是出于兼容性的原因而被保留的遗留类 9. //(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 10. //String 的 split 方法或 java.util.regex 包 11. public static String[] convertStrToArray2(String str){

搜索更多关于: 企业面试笔试题总汇v1.5 的文档
企业面试笔试题总汇v1.5.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c906kb33doe06i7l4fy27_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top