一、第一套面试题
1.Mybatis与Ibatis的区别
2.Http1与Http2的区别
3.SpringMVC的执行流程
4.JVM内存溢出具体指哪些内存区域?都会抛出什么异常?
5.谈谈对AJAX的理解
6.谈谈对事务的理解
7.String能被继承吗?为什么?
8.谈谈继承和聚合
9.什么是深拷贝和浅拷贝?
10.说说常见的几个运行时异常
11.JDK引入泛型是解决什么问题的?
12.谈谈hashCode与equals之间的关系
13.谈谈反射机制
14.常用的JVM设置参数都有哪些?
15.Spring Boot是什么?
16.谈谈Spring事物传播特性
17.Spring有哪几种事物管理机制?
18.ACID是指什么?
19.谈谈Mysql中的Btree和B+Tree算法
20.谈谈Mysql中in和exists的应用场景
二、第二套面试题
1.你最常上的两个技术站和最常使用的两个app分別进什么?主要解决你什么需求?
2.请简述http协议中get请求和post请求的区别.
3.请简述session和cookie的区別.
4.简述Servlet与JSP的关系,
5.JSP内置对象有哪些,各自起到的作用
6.简述你所理解的JAVA封装、继承、多态。
7.写出2个常用的设计模式(伪代码),并简述应用场景。
8.HashMap和HashTable区别。
9.HashSet和TreeSet的区别。
10.ArrayList和LinkedList的区别。
11.==与equals的区别。
12.简述泛型、反射、注解应用场景及各自解决了哪些问题。
13.Thread类的方法有哪些,如何多种方式实现线程同步。
14进程与线程的区别,JAVA中有哪些方式可以创建线程。
15.现有一学生表结构(student-id,class-id,name),请写出统计每班有多少学生的SQL语句。
16.假如你正在开发一个系统的登录程序,请简述你是如何实现记住用户名和密码这个操作的,并如何实现?
17.在视图层不支持存储cookie,服务端不支持session的场景下如何保持用户登陆状态。
18.设计一套CMS系统或者博客系统的表结构(画出大概的UML图即可)。
三、第三套面试题
四、第四套面试题
五、第五套面试题
六、第六套面试题
J2SE基础:
- 九种基本数据类型的大小,以及他们的封装类。
- Switch能否用string做参数?
- equals与==的区别。
- Object有哪些公用方法?
- Java的四种引用,强弱软虚,用到的场景。
- Hashcode的作用。
- ArrayList、LinkedList、Vector的区别。
- String、StringBuffer与StringBuilder的区别。
- Map、Set、List、Queue、Stack的特点与用法。
- HashMap和HashTable的区别。
- HashMap和ConcurrentHashMap的区别,HashMap的底层源码。
- TreeMap、HashMap、LindedHashMap的区别。
- Collection包结构,与Collections的区别。
- try catch finally,try里有return,finally还执行么?
- Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。
- Java面向对象的三个特征与含义。
- Override和Overload的含义去区别。
- Interface与abstract类的区别。
- Static class 与non static class的区别。
- java多态的实现原理。
- 实现多线程的两种方法:Thread与Runable。
- 线程同步的方法:sychronized、lock、reentrantLock等。
- 锁的等级:方法锁、对象锁、类锁。
- 写出生产者消费者模式。
- ThreadLocal的设计理念与作用。
- ThreadPool用法与优势。
- Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。
- wait()和sleep()的区别。
- foreach与正常for循环效率对比。
- Java IO与NIO。
- 反射的作用于原理。
- 泛型常用特点,List<String>能否转为List<Object>。
- 解析XML的几种方式的原理与特点:DOM、SAX、PULL。
- Java与C++对比。
- Java1.7与1.8新特性。
- 设计模式:单例、工厂、适配器、责任链、观察者等等。
- JNI的使用。
JVM:
- 内存模型以及分区,需要详细到每个区放什么。
- 堆里面的分区:Eden,survival from to,老年代,各自的特点。
- 对象创建方法,对象的内存分配,对象的访问定位。
- GC的两种判定方法:引用计数与引用链。
- GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?
- GC收集器有哪些?CMS收集器与G1收集器的特点。
- Minor GC与Full GC分别在什么时候发生?
- 几种常用的内存调试工具:jmap、jstack、jconsole。
- 类加载的五个过程:加载、验证、准备、解析、初始化。
- 双亲委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。
- 分派:静态分派与动态分派。
总体来说java考察内容包括以下这些:
1,面向对象的一些基本概念:继承,多态之类的
2, 抽象类和接口
3, 静态类,内部类
4, Java集合类,同步和非同步
5, Java类加载机制
6, Java内存模型和垃圾回收算法
7, 线程同步机制(voliate,synchronized,重入锁,threadlocal),线程间通信(wait,notify)
8, 异常处理
9, 多线程同步问题,生产者消费者,读者写者,哲学家就餐,用java实现
10, 了解java中设计模式的思想,用了哪些设计模式,有什么好处