j2EE的面试题总汇
基础面试
1、String、StringBuilder和StringBuffer
2、Vector,ArrayList,LinkedList HashTable HashMap TreeMap
3、http报文
4、Redirect和Forwod
5、线程同步,乐观锁,悲观锁
6、Sql查询语句的优化 DB索引
7、Spring Aop
[基础面试2]https://www.cnblogs.com/androidsuperman/p/7821338.html)
1、Spring拦截器
2、MySql基本数据类
github
基础:
java跨平台
面向对象的特征有哪些方面:
封装,隐藏内部实现,只暴露公共行为
2. 继承,提高代码的重用性
3. 多态,体现现实生活中相似对象的差异性
4. 抽象,抽取现实世界中相似对象的共同点
Overload和Override的区别 构造器Constructor是否可被override?
java中实现多态的机制是什么?
虚类和接口区别
java的基本数据类型
枚举实现单例模式是最好的
for循环几种方式
形参和实参
i++ 和++i
基本类型和封装类
自动装箱 通过包装类的valueOf()方法来实现的.
自动拆箱 通过包装类对象的xxxValue()来实现的
set list map区别
动态代理(Proxy类和CGLIB)
反射 和注解
怎么捕获异常(错误)
运行时异常(Runtime)与检查异常(Checked)有何异同
线程和进程
程序中怎么利用多线程?多线程有哪几种实现方法?runnable实现的接口是什么?返回什么参数
Thread(软)
Runnable接口来重写run()方
实现Callable<>接口并重写call方法
线程池
创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变长,
而且一个进程能创建的线程数有限。为了避免这些问题
TCP/IP三次握手
分布式是什么?怎么用?讲解一下。
什么是java序列化,如何实现java序列化?
序列化 Serializable
序列化是把内存Java对象保存到存储介质中,反序列化就是把存储介质中的数据转化为Java对象。
Java通过ObjectInputStream和ObjectOutputStream实现序列化和反序列化。
需要进行序列化的对象的类必须实现Serializable接
HTTPS和HTTP的区别主要为以下四点:
https协议需要到ca申请证书,一般免费证书很少,需要缴费。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;https协议是有ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
频繁处理字符串的字符流
Java 字符流的操作都是在缓冲区操作的,
所以如果我们想在字符流操作中主动将缓冲区刷新到文件
则可以使用 flush() 方法操作
流一旦打开就必须关闭,使用close方法
放入finally语句块中(finally 语句一定会执行)
调用的处理流就关闭处理流
多个流互相调用只关闭最外层的流
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
数据库的部分
1、关系型数据库(Mysql oracle),
MySql基本数据类型又哪些?
非关系型数据库 redis haddop(ha du pe)
2、三范式(要满足2必先满足1)
1、数据库的每一列不可分割
2、主键约束
3、外键约束(不能有其他数据库的非主键内容)
事务(用户定义的一序列操作 要么都成功,要么都失败)
ACID四大基本特征
原子性 :事务操作不可分割
一致性 :失败需要进行 回滚
隔离性 :开始了一个事务 不能有其他事务
持续性 :事务开始了就不能终止
3、Mysql数据库默认连接数(100)
4、MYsql分页 limit orcle 三层嵌套查询
5、触发器 (触发条件 然后进行操作)
6、存储过程(begin end) 优点
12、现场写一段sql语句进行表与表之间的关联查询或者是子查询;
创建时编译 (速度快)
少连接数量(一次传输东西)
可以重复使用
安全性搞(有隔离权限)
java 调用(JDBC +设置参数 )
7、JDBC
java定义语法规范 数据库开发者实现 开发者调用
8、PrepareStatement 预编辑 可读性和维护性高 更安全(防止sql注入)
9、连接池
限定了连接数量 防止超负荷
不需要 频繁的创建和销毁(节约时间 提高效率)
框架部分
搭过框架吗;
Servlet API中forward()与redirect()的区别?
MVC模式 (经典 jsp+servelet +JavaBean)
2、Struct2 (请求-webxml-(.action结尾)struct拦截器-strut.xml-action类)
3、struct2拦截器(action调用前进行操作 + AOP思想)
4、SpringMVC(以dispatchservlet 为核心控制器)
请求-dispatchservlet拦截解析url -hadlemapping-hadle
-modelandview(逻辑视图)dispatchservlet+
viewesolve(视图资源解析)-view
spring的
IOC
AOP 切片编程 动态代理(执行方法前后 走一些自己的代码)
(事务处理 (前开启事务,后关闭事务),权限控制 ,日志,)
OC(Inverse of Control:控制反转)是一种设计思想
就是 将原本在程序中手动创建对象的控制权,交由Spring框架来管理。(代码不必new 由容器new,调用的时候需要从容器调用 )
IoC 容器实际上就是个Map(key,value),Map 中存放的是各种对象。 核心技术(XML解析+反射+工厂模式(factory))
spring的设计模式
29、spring配置及常用的注解
36、spring怎么接收前台传过来的参数。
RESEFU接口
6、ORM 对象关系映射(java对象 和表匹配)
操作对象 等于操作表
13、mybatis与hibernate对比
7、mybatis 半orm xml 写动态sql 结构集封装为对象和集合
封装类的时候怎么返回主键
Hibernate orm 不写sql 数据库严格
mybatis 二级缓存
动态SQL的标签
Git命令
常用的linux命令
13、做过的项目涉及哪些表,表里面有哪些字段,每个字段的作用都是什么,各个表之间关联关系是什么(现场写得出来讲得清楚);
14、实际开发中应用过的设计模式,现场手写一个(例如单例模式),并讲出为什么要有这个模式以及应用场景;、
创建型(工厂、工厂方法、抽象工厂、单例)
结构型(包装、适配器,组合,代理)
行为(观察者,模版,策略)
19、项目经理怎么分配任务,一般周期多少?
20、讲一个自己一周开发一个模块的工作经历?
26、过滤器和拦截器的区别,在程序中怎么用
29、MySQL中是怎么实现缓存的
31、数据库中当你查询表很慢时你怎么处理,怎么筛选出它很慢
34、分布式是什么?怎么用?讲解一下。
37、当数据库新添一条数据时,怎么返回添加数据的主键。
7、项目中的亮点和难点
8、遇到什么大的问题
说一下后端开发的前景
有什么学习计划