|
综合题
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是Java 1.2引进的Map接口的一个实现 二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的 三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
3、char型变量中能不能存贮一个中文汉字?为什么? 答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的
4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify
5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么? 答:如下:父类:
package test;
public class FatherClass
  {
public FatherClass()
 {
System.out.println("FatherClass Create");
}
}

子类:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass
  {
public ChildClass()
 {
System.out.println("ChildClass Create");
}
public static void main(String[] args)
 {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}

输出结果: C:\>java test.ChildClass FatherClass Create FatherClass Create ChildClass Create
6、内部类的实现方式? 答:示例代码如下:
package test;
public class OuterClass
  {
private class InterClass
 {
public InterClass()
 {
System.out.println("InterClass Create");
}
}
public OuterClass()
 {
InterClass ic = new InterClass();
System.out.println("OuterClass Create");
}
public static void main(String[] args)
 {
OuterClass oc = new OuterClass();
}
}

输出结果: C:\>java test/OuterClass InterClass Create OuterClass Create
7、float型float f=3.4是否正确? 答:不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4
8、介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)? 答:Collection FrameWork如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap
9、抽象类与接口? 答:抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。
10、Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示? 答:Server端程序:
package test;
import java.net.*;
import java.io.*;

public class Server
  {
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public Server()
 {
try
 {
ss=new ServerSocket(10000);
while(true)
 {
socket = ss.accept();
String RemoteIP = socket.getInetAddress().getHostAddress();
String RemotePort = ":"+socket.getLocalPort();
System.out.println("A client come in!IP:"+RemoteIP+RemotePort);
in = new BufferedReader(new

InputStreamReader(socket.getInputStream()));
String line = in.readLine();
System.out.println("Cleint send is :" + line);
out = new PrintWriter(socket.getOutputStream(),true);
out.println("Your Message Received!");
out.close();
in.close();
socket.close();
}
}catch (IOException e)
 {
out.println("wrong");
}
}
public static void main(String[] args)
 {
new Server();
}
};

Client端程序:
package test;
import java.io.*;
import java.net.*;

public class Client
  {
Socket socket;
BufferedReader in;
PrintWriter out;
public Client()
 {
try
 {
System.out.println("Try to Connect to 127.0.0.1:10000");
socket = new Socket("127.0.0.1",10000);
System.out.println("The Server Connected!");
System.out.println("Please enter some Character:");
BufferedReader line = new BufferedReader(new

InputStreamReader(System.in));
out = new PrintWriter(socket.getOutputStream(),true);
out.println(line.readLine());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(in.readLine());
out.close();
in.close();
socket.close();
}catch(IOException e)
 {
out.println("Wrong");
}
}
public static void main(String[] args)
 {
new Client();
}
};

11、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 如在COLLECTION框架中,实现比较要实现什么样的接口? 答:用插入法进行排序代码如下:
package test;
import java.util.*;
class InsertSort
  {
ArrayList al;
public InsertSort(int num,int mod)
 {
al = new ArrayList(num);
Random rand = new Random();
System.out.println("The ArrayList Sort Before:");
for (int i=0;i<num ;i++ )
 {
al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));
System.out.println("al["+i+"]="+al.get(i));
}
}
public void SortIt()
 {
Integer tempInt;
int MaxSize=1;
for(int i=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 (int j=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("The ArrayList Sort After:");
for(int i=0;i<al.size();i++)
 {
System.out.println("al["+i+"]="+al.get(i));
}
}
public static void main(String[] args)
 {
InsertSort is = new InsertSort(10,100);
is.SortIt();
}
}

JAVA类实现序例化的方法是实现java.io.Serializable接口 Collection框架中实现比较要实现Comparable 接口和 Comparator 接口
12、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 答:代码如下:
package test;

class SplitString
  {
String SplitStr;
int SplitByte;
public SplitString(String str,int bytes)
 {
SplitStr=str;
SplitByte=bytes;
System.out.println("The String is:'"+SplitStr+"';SplitBytes="+SplitByte);
}
public void SplitIt()
 {
int loopCount;

loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split

Byte+1);
System.out.println("Will Split into "+loopCount);
for (int i=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)));
}
}
}
public static void main(String[] args)
 {
SplitString ss = new SplitString("test中dd文dsaf中男大3443n中国43中国人

0ewldfls=103",4);
ss.SplitIt();
}
}

13、STRING与STRINGBUFFER的区别。 答:STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法共2页: 上一页 1 [2] 下一页
|