java开发总体知识复习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java开发总体知识复习相关的知识,希望对你有一定的参考价值。
[Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大家.
对于这次跳槽找工作, 我准备了挺长的时间, 其中也收集了很多比较好的笔试面试题, 大都是一些常用的基础, 很多都是由于时间原因没有来得及给出答案, 但是题目大都是比较经典实用的, 现在都放到这里, 希望对正处于找工作的博友有一定的帮助.
第一部分: Java基础(此部分面试题题目来自:http://www.hollischuang.com/archives/10 答案是搜集与互联网)
(为了方便,我把他们分了类,有一些是必看的,我用!标注,有一些进阶型的我用%标注,有一些需要了解的,我用?标注。)
一:继承、抽象类与接口区别、访问控制(private, public, protected,默认)、多态相关 !2、是否可以继承多个接口,是否可以继承多个抽象类 %3、Static Nested Class 和 Inner Class的不同 !4、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? !5、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
!7、构造器Constructor是否可被override? !8、作用域public,protected,private,以及不写时的区别?
!2、List、Set、Map是否都继承自Collection接口? !3、HashMap和Hashtable的区别 1.HashTable的方法是同步的,在方法的前面都有synchronized来同步,HashMap未经同步,所以在多线程场合要手动同步 1 int hash = hash(k); 2 int i = indexFor(hash, table.length); 3 static int hash(Object x) { 4 h ^= (h >>> 20) ^ (h >>> 12); 5 return h ^ (h >>> 7) ^ (h >>> 4); 6 }
&&延展: public HashSet() { map = new HashMap<E,Object>(); }
private static final Object PRESENT = new Object(); public boolean add(E e) { return map.put(e, PRESENT)==null; } public boolean remove(Object o) { return map.remove(o)==PRESENT; }
B、HashMap 和 ConcurrentHashMap 的关系 %4、HashMap中是否任何对象都可以做为key,用户自定义对象做为key有没有什么要求? !5、Collection 和 Collections的区别 %6、其他的集合类:concurrenthashmap,treemap,treeset,linkedhashmap等。
!3、内存溢出和内存泄露 (a)对于内存的溢出可能发生的情况,大概有几种: (b)对于内存泄露可能发生的情况,大概有几种: 四:其他 2,是否多线程安全 !2、String s = “123”;这个语句有几个对象产生
1 public boolean equals(Object anObject) 2 { 3 //如果是同一个对象 4 if (this == anObject) 5 { 6 return true; 7 } 8 //如果传递进来的参数是String类的实例 9 if (anObject instanceof String) 10 { 11 String anotherString = (String)anObject; 12 int n = count;//字符串长度 13 if (n == anotherString.count) //如果长度相等就进行比较 14 { 15 char v1[] = value;//取每一个位置的字符 16 char v2[] = anotherString.value; 17 int i = offset; 18 int j = anotherString.offset; 19 while (n-- != 0) //对于每一位置逐一比较 20 { 21 if (v1[i++] != v2[j++]) 22 return false; 23 } 24 return true; 25 } 26 } 27 return false; 28 }
%9、了解过哪些JDK8的新特性,举例描述下相应的特性? !12、启动一个线程是用run()还是start()?
!15、多线程与死锁 %16、Java的四种引用 五:JAVA开发工具、环境的使用 |
第二部分: Java高级
一:多线程 public class RunThread implements Runnable{} public static void main(String[] args){ RunThread thread = new RunThread(); new Thread(thread).start(); new Thread(thread).start(); }
%4、如何停止一个线程? !5、解释是一下什么是线程安全?举例说明一个线程不安全的例子。解释Synchronized关键字的作用。
!6、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 二:内存结构,GC %2、Java中的内存溢出是如何造成的 第一种OutOfMemoryError: PermGen space
%3、jvm gc如何判断对象是否需要回收,有哪几种方式? 2.不可达对象一定会被回收吗
三:CLASSLOADER
四:NIO 五:其他 |
第三部分: JavaEE
一:Servlet的掌握,包括新的异步Servlet %2、servlet中,如何定制session的过期时间? session.setMaxInactiveInterval(30*60); !3、Servlet中的session工作原理 (禁用cookie如何使用session)
服务器在执行jsp的时候,首先把jsp翻译成一个Servlet,所以我们访问jsp时,其实不是在访问jsp,而是在访问jsp翻译过后的那个Servlet ?6、JSP的动态include和静态include
三:http相关(内部重定向,外部重定向),http返回码 !5、在web开发中,用redirect与forward做跳转有什么区别?web应用服务器对用户请求通常返回一些状态码,请描述下分别以4和5开头的状态码 四:spring,ibatis,hibernate相关 五:jboss,tomcat等容器相关 六:web安全,SQL注入,XSS, CSRF等 七:AJAX相关 八:Web Service 九:JMS 十:其他 |
第四部分: 数据库相关
一:关系模型理论: 二:事务相关 三:并发控制 四:ORACLE或mysql题目 五:其他 |
第五部分: 设计模式
一:高内聚,低耦合方面的理解 二:设计模式方面 三:其他 |
第六部分: 其他清单 只有题目
View Code
View Code
大概总结就这么多了, 文章内容有点多, 大家可以慢慢去看, 很多答案的话需要自己百度了, 学习是一个积累的过程, 这些东西只是一些浓缩的映射, 如果哪里有不太清楚就说明你还没有掌握透彻了.
希望对真正找工作的朋友有些帮助, 加油吧.
以上是关于java开发总体知识复习的主要内容,如果未能解决你的问题,请参考以下文章