Java工程师面试
技术空间站
在Java的深海中,死亡漂浮。Java是越学越感觉自己什么都不知道。
展开
-
Java工程师面试1000题11-20
11、复制对象和复制引用的区别? 有如下程序: Person p = new Person(23,"zhang"); Person p1 = p; System.out.println(p); System.out.println(p1); 程序执行后看打印结果: com.xidian.Person@2f4ee1ac com.xidian.Person@2f4ee1ac 可以看出,两个对象的...原创 2019-03-14 20:54:42 · 248 阅读 · 0 评论 -
Java工程师面试1000题21-30
21、当一个对象被当做参数传递给一个方法后,此方法可以改变这个对象的属性,并且可返回变化后的结果,那么这里到底是值传递还是引用传递? 值传递。Java语言的方法调用只支持参数的值传递。当一个对象实例作为一个参数被传递到方法中的时候,参数的值就是该对象的引用,对象的属性可以在被调用的过程中修改,但对对象引用的改变是不会影响到调用者的。 22、重载(overload)和重写(override)的区别?...转载 2019-03-15 11:12:47 · 164 阅读 · 0 评论 -
Java工程师面试1000题31-40
31、简述Java的异常处理机制。 Java对异常进行了分类,不同类型的异常分别使用了不同的Java类表示,所有异常的父类为java.lang.Throwable,Throwable类下面派生了两个子类:Error和Exception,Error表示应用程序本身无法克服和恢复的一种严重问题;Exception表示程序还能够克服和恢复的问题,其中Exception又分为系统异常和普通异常,系统异常是...转载 2019-03-15 17:37:09 · 223 阅读 · 0 评论 -
Java工程师面试1000题1-10
1、面向对象的特性和对这些特性的理解 默认情况下面向对象有3大特性:封装、继承、多态,如果非要说出四大特性,那么就把抽象加上去。 1.封装: 通常认为,封装就是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写的一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一...转载 2019-03-12 10:36:35 · 259 阅读 · 0 评论 -
Java工程师面试1000题81-90
81、说一说你知道的JVM的垃圾收集算法。 标记-清除算法 复制算法 标记-整理算法 分代收集算法 82、再说说标记-清除算法。 标记-清除算法分为“标记”和清除两个阶段;首先需要标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象,它是最基础的收集算法,效率也很高,但是会带来两个明显的问题:效率问题和空间问题(标记清除后会产生大量不联系的碎片)。为便于理解,如下图所示: 83、谈一谈...转载 2019-03-24 22:24:40 · 223 阅读 · 0 评论 -
Java工程师面试1000题61-70
61、Map中的key和value可以为null吗? HashMap对象的key和value均可以为null; HashTable对象的key和value均不可以为null。 且两者的key值均不能重复,若添加key相同的键值对后,后面的value会自动覆盖前面的value,但是不会报错。 62、什么是线程互斥和线程同步? 在引入多线程后,由于线程执行的异步性,会给系统造成混乱,特别是...转载 2019-03-18 22:40:23 · 192 阅读 · 0 评论 -
Java工程师面试1000题71-80
71、什么是线程安全和线程不安全? 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护隔离,使其他线程不能进行访问,直到该线程读取完,其他线程才可以使用,不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成得到的数据是脏数据,如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行...转载 2019-03-23 23:08:25 · 234 阅读 · 0 评论