说明如下:
一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。 故 A、B 错
二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。 故 D 错
三.非静态内部类的非静态成员可以访问外部类的非静态变量。 故 C 正确 四.答案为C、E
138、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 = \
System.out.println(\client come in!IP:\ in = new BufferedReader(new
InputStreamReader(socket.getInputStream())); String line = in.readLine();
System.out.println(\send is :\+ line);
out = new PrintWriter(socket.getOutputStream(),true); out.println(\Message Received!\ out.close(); in.close(); socket.close(); }
}catch (IOException e)
26
{
out.println(\ } }
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(\to Connect to 127.0.0.1:10000\ socket = new Socket(\ System.out.println(\Server Connected!\ System.out.println(\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(\ } }
public static void main(String[] args) {
new Client();
27
} };
139、用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(\ArrayList Sort Before:\ for (int i=0;i al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1)); System.out.println(\ } } public void SortIt() { Integer tempInt; int MaxSize=1; for(int i=1;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 (((Integer)al.get(j)).intValue()>=tempInt.intValue()) { al.add(j,tempInt); MaxSize++; System.out.println(al.toString()); break; 28 } } } } System.out.println(\ArrayList Sort After:\ for(int i=0;i System.out.println(\ } } public static void main(String[] args) { InsertSort is = new InsertSort(10,100); is.SortIt(); } } 140、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我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(\String is:'\ } public void SplitIt() { int loopCount; loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split Byte+1); System.out.println(\Split into \ for (int i=1;i<=loopCount ;i++ ) { 29 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(\中dd文dsaf中男大3443n中国43中国人 0ewldfls=103\ ss.SplitIt(); } } 141、JAVA多线程编程。 用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。 希望大家补上,谢谢 142、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询. 答:程序如下: package hello.ant; import java.sql.*; public class jdbc { String dbUrl=\ String theUser=\ String thePw=\ Connection c=null; Statement conn; ResultSet rs=null; public jdbc() { try{ Class.forName(\ c = DriverManager.getConnection(dbUrl,theUser,thePw); conn=c.createStatement(); }catch(Exception e){ e.printStackTrace(); } 30