当前位置:首页 > 企业面试笔试题总汇v1.5
24、 /*Node
当某个对象被系统收集为无用信息的时候,finalize()将被自动调用,但是jvm不保证finalize()一定被调用,也就是说,finalize()的调用是不确定的...
8、 请列出你所了解的若干个不同类型的runtime exception
NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常。 IllegalArgumentException - 传递非法参数异常。 ArithmeticException - 算术运算异常
ArrayStoreException - 向数组中存放与声明类型不兼容对象异常 IndexOutOfBoundsException - 下标越界异常
NegativeArraySizeException - 创建一个大小为负数的数组错误异常 NumberFormatException - 数字格式异常 SecurityException - 安全异常
UnsupportedOperationException - 不支持的操作异常
9、 数组String[] str和String str分别怎么获取长度?
size 和 length()
10、 JAVA实现快速排序算法
1. public class QuickSort { 2. public static int Partition(int a[],int p,int r){ 3. int x=a[r-1]; 4. int i=p-1; 5. int temp; 6. for(int j=p;j<=r-1;j++){ 7. if(a[j-1]<=x){ 8. // swap(a[j-1],a[i-1]); 9. i++; 10. temp=a[j-1]; 11. a[j-1]=a[i-1]; 12. a[i-1]=temp; 13. } 14. } 15. //swap(a[r-1,a[i+1-1]); 16. temp=a[r-1]; 17. a[r-1]=a[i+1-1]; 18. a[i+1-1]=temp; 19. return i+1; 20. } 21. public static void QuickSort(int a[],int p,int r){ 22. if(p Socket通信的原理大致分为以下几个步骤。 服务器端的步骤如下。 (1)建立服务器端的Socket,开始侦听整个网络中的连接请求。 (2)当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,建立与客户端之间的连接。 (3)当完成通信后,服务器关闭与客户端的Socket连接。 客户端的步骤如下。 (1)建立客户端的Socket,确定要连接的服务器的主机名和端口。 (2)发送连接请求到服务器,并等待服务器的回馈信息。 (3)连接成功后,与服务器进行数据的交互。 (4)数据处理完毕后,关闭自身的Socket连接。 TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。 UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。 12、 对象封装的原则是什么? 封装原则:隐藏对象的属性和实现细节,仅对外公开接口,并且控制访问级别 在OOP(面向对象)编程中,用类来实现上面的要求。用类实现封装,用封装来实现高内聚,低耦合 高聚合是说一个对象的功能都在内部搞定,紧紧地结合在一起 低耦合是说对象之间的依赖要松散,不要牵一发动全身 只有这样,当系统规模扩大时,才能比较方便 13、 什么是java序列化,如何实现java序列化? 我们有时候将一个java对象变成字节流的形式传出去或者从一个字节流中恢复成一个java对象,例 如,要将java对象存储到硬盘或者传送给网络上的其他计算机,这个过程我们可以自己写代码去把一个java对象变成某个格式的字节流再传输,但是,jre本身就提供了这种支持,我们可以调用OutputStream的writeObject方法来做,如果要让java 帮我们做,要被传输的对象必须实现serializable接口,这样,javac编译时就会进行特殊处理,编译的类才可以被writeObject方法操作,这就是所谓的序列化。需要被序列化的类必须实现Serializable接口,该接口是一个mini接口,其中没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的。 例如,在web开发中,如果对象被保存在了Session中,tomcat在重启时要把Session对象序列化 到硬盘,这个对象就必须实现Serializable接口。如果对象要经过分布式系统进行网络传输或通过rmi等远程调用,这就需要在网络上传输对象,被传输的对象就必须实现Serializable接口。 14、 序列化的作用,应用场景 所谓java对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象!对象序列化是对象持久化的一种实现方法,它是将一个对象的属性和方法转化为一种序列化的格式以用于存储和传输,反序列化就是根据这些保存的信息重建对象的过程。 运用场景1: Java的JavaBeans:Bean的状态信息通常是在设计时配置的,Bean的状态信息必须被存起来,以便当程序运行时能恢复这些状态信息,这需要将对象的状态保存到文件中,而后能够通过读入对象状态来重新构造对象,恢复程序状态。例如Java.io包有两个序列化对象的类。ObjectOutputStream负责将对象写入字节流,ObjectInputStream从字节流重构对象。 运用场景2: activiti工作流设置流程变量
共分享92篇相关文档