📄 java面试题.txt
字号:
同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
数据增长:当需要增长时,Vector默认增长为原来一倍,而ArrayList却是原来的一半。
66.char型变量中能不能存贮一个中文汉字?为什么?
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的。
67.多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
68.垃圾回收机制,如何优化程序?
答案:*******************************
69.float型float f=3.4是否正确?
答:不正确。类型不匹配,应该用强制类型转换,如下所示:float f=3.4f;
70. Java中异常处理机制,事件机制?
答案:*******************************
71.现在输入n个数字,以逗号,分开; 然后可选择升或者降序排序;
import java.util.StringTokenizer;
import java.util.Arrays;
public class Test
{
public static void main(String[] args)
{
String s = "2,654,24,6554,3234,3544,666,354,5435,11";
StringTokenizer tok = new StringTokenizer(s,",");
//返回有多少个被分割元素
int count = tok.countTokens();
int[] result = new int[count];
//把分割得到的数字存到数组中去。
for(int i = 0;i<count;i++)
{
String temp = (String)tok.nextElement();
result = Integer.parseInt(temp);
}
//排序
Arrays.sort(result);
for(int i = 0;i<result.length;i++)
{
if(i==0)
{
System.out.print(result);
continue;//第一个元素的前面不打印“,”
}
System.out.print(","+result);
}
System.out.println();//输出:2,11,24,354,654,666,3234,3544,5435,6554
}
}
72.金额转换,阿拉伯数字的金额转换成中国传统的形式如:
(¥1011)->(一千零一拾一元整)输出。
答案:************************************
73.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
答案:不能,一个对象的一个synchronized方法只能由一个线程访问。
74.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
答案:会执行,在return前执行。
75.编程题: 用最有效率的方法算出2乘以8等於几? 有C背景的程序员特别喜欢问这种问题。
答案:2 << 3 。如果是2的10次方则是:1<<10.
76.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
答案:不对,有相同的hash code。测试过。
77.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
答案:是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法
中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用
是永远不会改变的。
78。编程题: 写一个Singleton出来。
方式一:醉汉式
public class Singleton
{
private static Singleton test = new Singleton();//静态的。保留自身的引用。
//必须是私有的构造函数
private Singleton(){}
public static Singleton getInstance()//公共的静态的方法。
{
return test;
}
}
方式二:懒汉式
public class Singleton
{
private static Singleton test = null;//静态的。保留自身的引用。
//必须是私有的构造函数
private Singleton(){}
public static Singleton getInstance()//公共的静态的方法。
{
if(test == null)
{
test = new Singleton();
}
return test;
}
}
79.描述一下JVM加载class文件的原理机制?
答案:***********************
80.试举例说明一个典型的垃圾回收算法?
答案:***********************
81.请写一个java程序实现线程连接池功能?
答案:***********************
82.给定一个C语言函数,要求实现在java类中进行调用。
答案:***********************
83.编一段代码,实现在控制台输入一组数字后,排序后在控制台输出。
答案:***********************
84.列出某文件夹下的所有文件;
答案:***********************
85.实现从文件中一次读出一个字符的操作;
答案:***********************
86.列出一些控制流程的方法;
答案:***********************
87.多线程有哪些状态?
答案:***********************
88.编写了一个服务器端的程序实现在客户端输入字符然后在控制台上显示,直到输入"END"为止,让你写出客户端的程序。
答案:***********************
99.请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来.
答案:****************************************
100.调用系统命令实现删除文件的操作;
答案:****************************************
101.C++或Java中的异常处理机制的简单原理和应用。
答案:当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。
102.Java的接口和C++的虚类的相同和不同处。
答案:由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口。
103.垃圾回收的优点和原理。并考虑2种回收机制。
答案:Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
104.描述一下你最常用的编程风格。
答案:****************************************
105.heap和stack有什么区别。
答案:栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。
堆是栈的一个组成元素
106.Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
答案:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。
注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象
107.JAVA类实现序列化的方法?在collection中,实现比较要实现什么样的接口?
答案:java类实现序列化需要实现java.io.Serializable接口。
在collection中实现比较要实现Comparable接口或Comparator接口。
来自ITpub,觉得写的不错,下面是原贴内容:
找工作要面试,有面试就有对付面试的办法。以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司。
面试是没什么道理可讲的,它的题目有的不合情理、脱离实际。有在纸上写的,有当面考你的,也有在电话里问的,给你IDE的估计很少(否则你赶快去买彩票, 说不定中)。所以如果你看完此文后,请不要抱怨说这些问题都能用IDE来解决。你必须在任何情况下准确回答这些问题,在面试中如果出现一两题回答不准确很 有可能你就被拒之门外了。
当然这些都是Java的基本题,那些面试的人大多数不会问你Hibernate有多先进,Eclipse的三个组成部分,或command design pattern,他们都是老一辈了,最喜欢问的就是基础知识。别小看了这些基础,我朋友水平一流,结果就栽在一到基础知识的问题下,和高薪无缘。
好了废话少说,开始正题。
第一,谈谈final, finally, finalize的区别。
最常被问到。
第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
第四,&和&&的区别。
这个问得很少。
第五,HashMap和Hashtable的区别。
常问。
第六,Collection 和 Collections的区别。
你千万别说一个是单数一个是复数。
第七,什么时候用assert。
API级的技术人员有可能会问这个。
第八,GC是什么? 为什么要有GC?
基础。
第九,String s = new String("xyz");创建了几个String Object?
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
面试题都是很变态的,要做好受虐的准备。
第十二,sleep() 和 wait() 有什么区别?
搞线程的最爱。
第十三,Java有没有goto?
很十三的问题,如果哪个面试的问到这个问题,我劝你还是别进这家公司。
第十四,数组有没有length()这个方法? String有没有length()这个方法?
第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
常问。
第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
第十七,给我一个你最常见到的runtime exception。
如果你这个答不出来,面试的人会认为你没有实际编程经验。
第十八,error和exception有什么区别?
第十九,List, Set, Map是否继承自Collection接口?
第二十,abstract class和interface有什么区别?
常问。
第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
第二十三,启动一个线程是用run()还是start()?
第二十四,构造器Constructor是否可被override?
第二十五,是否可以继承String类?
第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
第二十八,编程题: 用最有效率的方法算出2乘以8等於几?
有C背景的程序员特别喜欢问这种问题。
第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
第三十二,编程题: 写一个Singleton出来。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -