Java基础方面:
1、作用域public,private,protected,以及不写时的区别
答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时默认为friendly
2、ArrayList和Vector的区别,HashMap和Hashtable的区别
答:就ArrayList与Vector主要从二方面来说. 一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 就HashMap与HashTable主要从三方面来说。 一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现 二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的 三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
3、char型变量中能不能存贮一个中文汉字?为什么?
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的
4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify
5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
答:父类: packagetest; publicclass FatherClass { publicFatherClass() { System.out.println("FatherClassCreate"); } } 子类: packagetest; importtest.FatherClass; publicclass ChildClassextendsFatherClass { publicChildClass() { System.out.println("ChildClassCreate"); } publicstaticvoidmain(String[]args) { FatherClassfc=newFatherClass(); ChildClasscc=newChildClass(); } } 输出结果: C:>javatest.ChildClass FatherClassCreate FatherClassCreate ChildClassCreate
6、内部类的实现方式?
答:示例代码如下: packagetest; publicclass OuterClass { privateclassInterClass { publicInterClass() { System.out.println("InterClassCreate"); } } publicOuterClass() { InterClassic=newInterClass(); System.out.println("OuterClassCreate"); } publicstaticvoidmain(String[]args) { OuterClassoc=newOuterClass(); } } 输出结果: C:>javatest/OuterClass InterClassCreate OuterClassCreate 再一个例题: publicclassOuterClass{ privatedoubled1=1.0; //insertcodehere } Youneedtoinsertaninnerclassdeclarationatline3.Whichtwoinnerclassdeclarationsare
valid?(Choosetwo.)
A.classInnerOne{ publicstaticdoublemethoda(){returnd1;} } B.publicclassInnerOne{ staticdoublemethoda(){returnd1;} } C.privateclassInnerOne{ doublemethoda(){returnd1;} } D.staticclassInnerOne{ protecteddoublemethoda(){returnd1;} } E.abstractclassInnerOne{ publicabstractdoublemethoda(); } 说明如下: 一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。故A、B错 二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;returnd1出错。
故D错
三.非静态内部类的非静态成员可以访问外部类的非静态变量。故C正确 四.答案为C、E
7、垃圾回收机制,如何优化程序?
希望大家补上,谢谢
8、float型floatf=3.4是否正确?
答:不正确。精度不准确,应该用强制类型转换,如下所示:floatf=(float)3.4
9、介绍JAVA中的CollectionFrameWork(包括如何写自己的数据结构)?
答:CollectionFrameWork如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements) Map提供key到value的映射
10、Java中异常处理机制,事件机制?
11、JAVA中的多形与继承?
希望大家补上,谢谢
12、抽象类与接口?
答:抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。
13、Java的通信编程,编程题(或问答),用JAVASOCKET编程,读服务器几个字符,再写入本地显示?
答:Server端程序: packagetest; importjava.net.*; importjava.io.*;
publicclassServer
{ privateServerSocketss; privateSocketsocket; privateBufferedReaderin; privatePrintWriterout; publicServer() { try { ss=newServerSocket(10000); while(true) { socket=ss.accept(); StringRemoteIP=socket.getInetAddress().getHostAddress(); StringRemotePort=":" socket.getLocalPort(); System.out.println("Aclientcomein!IP:" RemoteIP RemotePort); in=newBufferedReader(new
InputStreamReader(socket.getInputStream()));
Stringline=in.readLine(); System.out.println("Cleintsendis:" line); out=newPrintWriter(socket.getOutputStream(),true); out.println("YourMessageReceived!"); out.close(); in.close(); socket.close(); } }catch(IOExceptione) { out.println("wrong"); } } publicstaticvoidmain(String[]args) { newServer(); } }; Client端程序: packagetest; importjava.io.*; importjava.net.*;
publicclassClient
{ Socketsocket; BufferedReaderin; PrintWriterout; publicClient() { try { System.out.println("TrytoConnectto127.0.0.1:10000"); socket=newSocket("127.0.0.1",10000); System.out.println("TheServerConnected!"); System.out.println("PleaseentersomeCharacter:"); BufferedReaderline=newBufferedReader(new
InputStreamReader(System.in));
out=newPrintWriter(socket.getOutputStream(),true); out.println(line.readLine()); in=newBufferedReader(newInputStreamReader(socket.getInputStream())); System.out.println(in.readLine()); out.close(); in.close(); socket.close(); }catch(IOExceptione) { out.println("Wrong"); } } publicstaticvoidmain(String[]args) { newClient(); } };
14、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?如在COLLECTION框架中,实现比较要实现什么样的接口?
答:用插入法进行排序代码如下 packagetest; importjava.util.*; class InsertSort { ArrayListal; publicInsertSort(intnum,intmod) { al=newArrayList(num); Randomrand=newRandom(); System.out.println("TheArrayListSortBefore:"); for(inti=0;i<num;i ) { al.add(newInteger(Math.abs(rand.nextInt())mod 1)); System.out.println("al[" i "]=" al.get(i)); } } publicvoidSortIt() { IntegertempInt; intMaxSize=1; for(inti=1;i<al.size();i ) { tempInt=(Integer)al.remove(i); if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue()) { al.add(MaxSize,tempInt); MaxSize ; System.out.println(al.toString()); }else{ for(intj=0;j<MaxSize;j ) { if
(((Integer)al.get(j)).intValue()>=tempInt.intValue())
{ al.add(j,tempInt); MaxSize ; System.out.println(al.toString()); break; } } } } System.out.println("TheArrayListSortAfter:"); for(inti=0;i<al.size();i ) { System.out.println("al[" i "]=" al.get(i)); } } publicstaticvoidmain(String[]args) { InsertSortis=newInsertSort(10,100); is.SortIt(); } } JAVA类实现序例化的方法是实现java.io.Serializable接口 Collection框架中实现比较要实现Comparable接口和Comparator接口
15、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC 汉的半个”。
答:代码如下: packagetest;
class SplitString
{ StringSplitStr; intSplitByte; publicSplitString(Stringstr,intbytes) { SplitStr=str; SplitByte=bytes; System.out.println("TheStringis: SplitStr ;SplitBytes=" SplitByte); } publicvoidSplitIt() { intloopCount;
loopCount=(SplitStr.length()SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split
Byte 1);
System.out.println("WillSplitinto" loopCount); for(inti=1;i<=loopCount;i ) { if(i==loopCount){
System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));
}else{
System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));
} } } publicstaticvoidmain(String[]args) { SplitStringss=newSplitString("test中dd文dsaf中男大3443n中国43中国人
0ewldfls=103",4);
ss.SplitIt(); } }
16、JAVA多线程编程。用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。
希望大家补上,谢谢
17、STRING与STRINGBUFFER的区别。