JAVA企业面试题精选 Java SE 51-60
来源:互联网 发布:api原油库存数据预测 编辑:程序博客网 时间:2024/05/18 12:43
3.51.写一个简单的socket实现聊天功能程序的例子(不要求界面,只实现数据传输)一个主服务端,一个客户端
参考答案:
public class ServerDemo{ public static void main(String[] args) throws IOExcetpion{ ServerDemo server = new ServerDemo(); server.start(); } public void start() throws IOException{ ServerSocket ss = new ServerSocket(8088); System.out.println("等待客户的连接..."); Socket s = ss.accept(); System.out.println("客户连接成功:" + s.getInetAddress()); InputStream in = s.getInputStream(); OutputStream out = s.getOutputStream(); Reader r = new Reader(out); r.start(); Writer w = new Writer(in); w.start(); }}public class ClientDemo{ public static void main(String[] args) throws IOException{ ClientDemo client = new ClientDemo(); client.open(); } public void open() throws IOException{ Socket s = new Socket("localhost",8088); InputStream in = s.getInputStream(); OutputStream out = s.getInputStream(); new Reader(out).start(); new Writer(in).start(); }}class Reader extends Thread{ OutputStream out; public reader(OutputStream out){ this.out = out; setDaemon(true); } public void run(){ Scanner s = new Scanner(System.in); try{ while(true){ String str = s.nextLine(); out.write(str.getBytes()); out.flush(); } } catch(IOException e){ e.printStackTrace(); } }}class Writer extends Thread{ InputStream in; public Writer(InputStream in){ this.in = in; } public void run(){ try{ int b; while((b = in.read()) != -1){ System.out.write(b); } } catch(Exception e){ e.printStackTrace(); } }}
3.52.Java Socket编程,从服务器读几个字符,再写入本地控制台
参考答案:
public class ServerDemo{ public static void main(String[] args) throws IOException{ ServerSocket ss = new ServerSocket(8088); Socket s = ss.accept(); OutputStream out = s.getOutputStream(); out.write("从服务器读取几个字符!\n".getBytes()); out.flush(); out.close(); }}public class ClientDemo{ public static void main(String[] args) throws IOException{ Socket s = new Socket("localhost",8088); InputStream in = s.getInputStream(); int b; while((b = in.read()) != -1){ System.out.write(b); } }}
3.53.什么是Java序列化,如何实现Java序列化?
参考答案:
序列化就是一种用来处理对象流的机制,所谓对象刘也就是将对象的内容进行流化.可以对硫化后的对象进行读写操作,也可将硫化后的对象传输于网络之间.序列化是为了解决在对对象流进行读写操作时所引发的问题;
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如FileOutputStream)来构造一个ObjectOutPutStream(对象流)对象,接着,使用ObjectOutPutStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流.
3.54.Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出它们分别是哪些类
参考答案:
Java中有字节流,字符流.
字节输入流的父类为InputStream,字节输出流的父类为OutPutStream;字符输入流的父类为Reader,字符输出流的父类为Writer.
3.55.字节流和字符流有什么区别?
参考答案:
字节流与字符流主要的区别是它们的处理方式.字节流是最基本的,所有的InputStream和OutputStream的子类用于处理二进制数据,它是按字节来处理的.而字符流是以字符为单位读写数据的.
3.56.文件和目录(IO)操作:
1)如何列出某个目录下的所有文件?
2)如何列出某个目录下的所有子目录?
3)如何判断一个文件或目录是否存在?
参考答案:
1)列出D盘demo目录下的所有文件的示例代码如下所示:
File file = new File("d:/demo"); File[] files = file.listFiles(); for(int i = 0; i < files.length; i++){ if(files[i].isFile()){ System.out.println(files[i]); } }
2)列出D盘demo目录下的所有子目录的示例代码如下:
File file = new File("d:/demo"); File[] files = file.listFiles(); for(int i = 0; i < files.length; i++){ if(files[i].isFile()){ System.out.println(files[i]); } }
3)创建File对象,调用其exists()方法即可判断文件和目录是否存在,实例代码如下所示:
System.out.println(new File("d:/t.txt").exists());
3.57.String s = new String(“xyz”);创建了几个String Object?
参考答案:
如果在执行这行代码之前没有创建过”xyz”对象(也就是说这行代码之前没有String str = “xyz” 或 String str2 = new String(“xyz”);类似的代码),则执行这行代码会创建两个String Object;如果在执行这行代码之前创建过”xyz”对象,则执行这行代码会创建一个String Object.
3.58.是否可以继承String类?
参考答案:
String类是final的,所以不能能够被继承.
3.59.说出”==”和equals()方法在字符串变量操作中的不同
参考答案:
”==”比较的是引用,相当于比较两个字符串是否是同一个对象.
String类的equals()比较的是字符串的内容.
3.60.数组有没有length()这个方法?String有没有length()这个方法?
参考答案:
数组没有length()方法,有length属性;String有length()方法.
- JAVA企业面试题精选 Java SE 51-60
- JAVA企业面试题精选 Java SE 1-10
- JAVA企业面试题精选 Java SE 11-20
- JAVA企业面试题精选 Java SE 21-30
- JAVA企业面试题精选 Java SE 31-40
- JAVA企业面试题精选 Java SE 41-50
- JAVA企业面试题精选 Java SE 61-70
- JAVA企业面试题精选 Java SE 71-80
- JAVA企业面试题精选 Java SE 81-90
- JAVA企业面试题精选 Java SE 91-100
- JAVA企业面试题精选 Java SE 100-105
- Java SE 面试题
- java SE面试题
- Java SE面试题
- JAVA企业面试题精选 Java基础 1-10
- JAVA企业面试题精选 Java基础 11-20
- JAVA企业面试题精选 Java基础 21-30
- JAVA企业面试题精选 Java基础 31-40
- 磁共振扫描安全性
- jvm系列(一):java类的加载机制
- 几何模板
- poj1113 Wall 凸包
- NYOJ 6-喷水装置(一)(简单贪心)
- JAVA企业面试题精选 Java SE 51-60
- 关于Cookie的An invalid character [32] was present in the Cookie value异常
- 2017ACM福建省赛FZU2283 Tic-Tac-Toe
- 程序设计与算法(一)第一周测验(2017夏季) 解题报告
- 常见数字IC设计,FPGA工程师面试考题
- STM32F103mini教程学习总结与心得(一)
- hihocoder 1109 : 最小生成树三·堆优化的Prim算法
- Python 介绍及基本语法
- 关于梯度下降优化算法momentum的一些疑