A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唯我独赞mo 中级黑马   /  2015-11-12 22:44  /  5890 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 唯我独赞mo 于 2015-11-12 22:47 编辑

1、 java中wait和sleep有什么区别?多线程条件下如何保证数据安全?
   答:最大区别是等待时wait会释放锁,而sleep会一直持有锁,wait通常用于线程时交互,sleep通常被用于暂停执行。
2、java中volatile和synchronized有什么区别?
     1.volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。
     2.volatile仅能使用在变量级别;synchronized则可以使用在变量、方法、和类级别的。
     3.volatile仅能实现变量的修改可见性,并不能保证原子性;而synchronized则可以保证变量的修改可见性和原子性。
     4.volatile不会造成线程的阻塞;synchronized可能会造成线程的阻塞。
     5.volatile标记的变量不会被编译器优化;synchronized标记的变量可以被编译器优化。
3、java抽象类和接口有什么区别?项目中怎么去使用它们?
                相同点:
                A. 两者都是抽象类,都不能实例化。
                B. interface实现类及abstractclass的子类都必须要实现已经声明的抽象方法。
                不同点:
                A. interface需要实现,要用implements,而abstract class需要继承,要用extends。
                B. 一个类可以实现多个interface,但一个类只能继承一个abstract class。
                C. interface强调特定功能的实现,而abstract class强调所属关系。
                D. 尽管interface实现类及abstrct class的子类都必须要实现相应的抽象方法,但实现的 形式不同。interface中的每一个方法都是抽象方法,都只是声明的 (declaration, 没有方法体),实现类必须要实现。而abstract class的子类可以有选择地实现。
                      使用:
                abstract:在既需要统一的接口,又需要实例变量或缺省的方法的情况下,使用abstract;
                interface:使用: 类与类之前需要特定的接口进行协调,而不在乎其如何实现。 作为能够实现特定功能的标识存在,也可以是什么接口方法都没有的纯粹标识。需要将一组类视为单一的类,而调用者只通过接口来与这组类发生联系。需要实现特定的多项功能,而这些功能之间可能完全没有任何联系。
4、对socket熟悉?TCP通讯有几次握手?有使用过哪些socket框架?
                答:3次握手,客户端-->服务端,服务端-->客户端,客户端-->服务端,当这些过程完成之后,才真正建立起通信。java中比较有名的socket框架有:mina,netty,都是韩国小棒子写的。
5、了解java反射机制?反射生成类,能访问私有变量?
            答:即动态生成java的实例,可以
6、JVM内存模型是如何?垃圾回收机制有哪些?如何对JVM进行调优?
                答:由栈和堆组成,栈是运行时单位,堆内存则分为年轻代、年老代、持久代等,年轻代中的对象经过几次的回收,仍然存在则被移到年老代;持久代主要是保存class,method,filed等对象。
sun回收机制:主要对年轻代和年老代中的存活对象进行回收,分为以下:
              年轻代串行(Serial Copying)、年轻代并行(ParNew)、年老代串行(Serial MSC),年老代并行(Parallel Mark Sweep),(Concurrent Mark-Sweep GC,即CMS)等等,目前CMS回收算法使用最广泛。
JVM调优主要是对堆内容和回收算法进行配置,需要对jdk产生的回收日志进行观察,同时通过工具(Jconsole,jProfile,VisualVM)对堆内存不断分析,这些优化是一个过程,需要不断地进行观察和维护

4 个回复

倒序浏览
安卓面试题看多了。。。。碰到这种面试题感觉要答不出来的样子。
回复 使用道具 举报
好贴。。赞了,希望有用
回复 使用道具 举报
赞一个  有用
回复 使用道具 举报
了解下,说不定什么时候就会用到
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马