java面试题100道(81-100)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiaozhurun/article/details/50388313

81.GC是什么?为什么要有GC?

答:GC是jvm中的垃圾回收机制。有了它可以及时回收内存资源,避免资源浪费

82.垃圾回收的优点和原理。并考虑2种回收机制?

答:优点是及时自动清理。

Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

84.什么时候用assert?

答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。

85.java中会存在内存泄漏么?

答:

笔者对JAVA还没有达到精通的地步,刚开始看到这个题目,自己的确也是认为应该不会有内存泄露问题吧,因为大家都知道JAVA有着自己的优点---垃圾回收器的机制,这个开发人员带来了很大的方便,不用我们编程人员去控制内存回收等问题,有效的解决了内存泄露的问题,不至于导致系统因内存问题崩溃。

经过多方查找笔者有了新的见解:

这就有必要去说明一下GC的工作机制了,为了精确的回收内存,释放不用的对象,GC要实时的监控着每个对象的运行状态--引用 被引用等,当发现一个对象不被任何引用的时候,GC会在适当的时机去回收它所占的内存,达到内存管理,但是仍然存在一种内存泄露问题,当一个对象在逻辑上已经没用了,但是在语法上还被某个变量所引用,那么这个对象存在着引用,GC是不会回收它的,这就导致了内存泄露问题。所以题目的答案就已经出来了。。。

86.能不能自己写个类,也叫String?

答:可以自己写。但是在调用系统的String时,前面需要加java.lang.String。

87.&和&&的区别?

答:&两边都要计算。&&当左边为false时右边表达式不参与计算

88.给我一个你最长见到的runtime exception?

答:nullpointerexception。

89.解释下面的关于J2EE的名词:JNDI,JMS,JTA,JAF,RMI?

答:JNDI:(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。 

JMS:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。 

JTA:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。 

JAF:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。
 
RMI/IIOP:(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。

90.XML的解析方法?

答:XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。基本的解析方式有两种,一种叫SAX,另一种叫DOM。SAX是基于事件流的解析,DOM是基于XML文档树结构的解析。

91.什么是类于对象?

答:类是将一类事物共有的属性抽取出来,在将一些操作方法封装在一起构成的一个大类。对象使用它来实例化的一个具体个体。

92.什么是属性与方法?

答:属性是对象的各类特征值。而方法则可以进行不同的操作,对数据进行处理等。

93.什么是OOP?什么是类?请对比类和对象实例之间的关系?

答:oop-object orient programming ,面向对象编程。类是将一类事物共有的属性抽取出来,在将一些操作方法封装在一起构成的一个大类。对象使用它来实例化的一个具体个体。

94.String是最基本的数据类型么?

答:不是。基本数据类型:整型:byte,short,int,long,浮点型:float,double,布尔型:boolean,字符型:char

97.java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?

答:两种:继承Thread类,实现runnable接口。修饰的关键字用synchronized。

阅读更多

没有更多推荐了,返回首页