这篇文章上次修改于 2144 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
1.jvm 垃圾回收—年轻代
- eden区新出生和死亡的特别多,使用MinorGC——复制算法,只把存活的复制到suvivor to区
- suvivor from区同理,同上一步骤复制存活的到suvivor to区,但是年龄+1 ,到达年龄的送到老年区
- 清空eden 和suvivor from区,交换from和to
2.jvm垃圾回收—-老年代—永久代
- 老年代很少变动,使用MajorGC ——-标记清除算法,装不下就OOM
- 永久代class ,meta
- 确定垃圾算法
- 引用计数
- 阻塞io其实是对线程说的,对操作系统来说那不是阻塞,是线程的正常工作
4.静态语言的this和动态语言的this,在链式调用中为什么不一样,因为静态语言是在编译器确定的,this都是指向当前类文件;而动态语言的this是运行时确定的,一般是消息的接收者
———————————————————————JDBC———————————————-
1.什么是jdbc driver,
jdbcdriver是java连接数据库组建,有4中类型:
JDBC-ODBC bridge driver
Native-API driver (partially java driver)
Network Protocol driver (fully java driver)
Thin driver (fully java driver)
- JDBC driver manager
管理jdbc driver,register & unregister drivers. 提供创建Connection的工厂方法
3.JDBC ResultSet
代表table的一行,可以改变cursor,访问下一条
4.ResultSetMetaData
information of a table - DatabaseMetaData
information of the database, username,drivername,driver version ,number of tables views.
6.什么是batch processing
批量执行一组操作,节省时间
7.execute, executeQuery, executeUpdate的区别
execute 是通用的,可以用getResultSet获取他select 的结果,getUpdateCount返回他更新的条数,返回true,表示计算了select并且有结果
executequery 用来查询,返回ResultSet
executeUpdate,用来执行DML操作,返回操作的条数
- 连接数据库的步骤
- classFor 创建driver,注册到drivermanager中
- driverManager.getConnection获取连接
- 创建一个preparedStatement,connnection.preparStatement
- execute计算结果
- ResultSet处理结果
- 关闭resultSet,connection
——————————————————————Spring———————————————————
1.Spring定义,一个IOC容器,轻量级java ee框架,包含 - Spring context 依赖注入
- Spring AOP 面向切面编程
- Spring Dao Dao模式的数据操作—-隔离不同数据库的实现
- Spring JDBC —-
- SPring ORM
- Spring web moudule
- Spring mvc
- Spring bean 的scope
- singleton —-只有一个实例—-默认的
- Prototype—-每次请求,创建一个新的
- Request ——为每一个WebRequest创建
- Session/Global Session
3.DispatcherServlet 和ContextLoaderListener 的作用 - DispatcherServlet可以看成controller的前端控制器,用于路由到不同的controller
- ContextLoaderListener 用于监听WebApplication的启动和shutdown
4.如何处理Spring MVC 异常 - @ExceptionHandler
- @ControllerAdvice
5.Checked Exception 要求开发必须处理的异常
- Exception Error的区别
Error一般是不可恢复的一场
没有评论