1.6下午电话面
这面试官挺nb
首先还是自我介绍,电话面我对着简历一顿输出就行,然后他要求讲一讲最熟悉的项目,我把我最近一个项目跟他说了,并且说了熟练掌握mybatis.他首先问Spring的特性。集成、ioc、aop。又问到aop的实现方式。xml配置。然后开始问mybatis的:
mybatis中$与#的区别?
答:
select * from stu where id=#{id} mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值; mybatis在处理${}时,就是把${}替换成变量的值; 使用#{}可以有效的防止SQL注入,提高系统安全性。
jdk1.8的新特性?
代码更少 – Lambda
最大化减少空指针异常 – Optional
线程同步如何实现?
你在项目中用到了多线程吗?
答:javaweb一般用不上多线程,因为用到多线程的时候开发框架差不多都已经实现了!在网络应用程序这个用的比较多!
说一说gc(垃圾处理器)
gc出现的原因是因为,关于内存的处理非常重要,一疏忽就容易到底系统崩溃以及不稳定等问题。gc通过自动检测对象是否有用来达到自动回收内存。原理:当对象new的时候 gc就会开始监控这个对象,gc采用向图的方式记录和管理堆中所有对象通过这种方式确定对象是否正常,不正常那么gc有责任回收内存,垃圾收集器可以马上回收内存.用system.gc()通知gc回收内存 , 但是并不会马上回收
说一说java集合框架
Collection接口的结构: List列表(元素是有序的、可重复),Set集(元素无序的、不可重复).同在java.util的Map接口Map接口是一个双列集合.
list下arraylist查询速度快,底层数组结构代替了线程安全的vector,linkedlist增删速度快,底层链表结构.
set下HashSet存取速度快,使用元素的equals和hashcode方法来保证元素唯一性.TreeSet可以对set集合中的元素进行排序,使用compareTo 或者compare方法来保证元素唯一.这两线程都不安全.
Map下 HashTable: 线程安全,速度慢,底层是哈希表数据结构,是同步的.不允许null作为键和值,继承Dictionary类; HashMap: 线程不安全,速度快,底层也是哈希表数据结构,非同步,允许null作为键值,代替了HashTable; TreeMap: 用于对Map集合的键进行排序;
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!