Java底层小开发的面试经历

底层的小开发遇到的面试问题(

http://blog.csdn.net/a296777513/article/details/73610719  仰望这位大神,以后学习完知识点都好好总结下

先简单记住,然后在整理。

1、集合

1.1 ArrayList怎么转set:

List<String> result = new ArrayList<>(staffsSet);

Set result = new HashSet(staffsList);

数组、list、set都可以直接互转。

1.2 arraylist和linkedlist的区别:

ArrayList是实现了基于动态数组的数据结构,线性结构存储,获取很快,但是增删很慢。

LinkedList基于链表的数据结构,是使用双链表实现的。链式结构有指针,不是线性存储。获取慢,但增删很快。

1.3 hashtable与hashmap的区别?

链接:  http://blog.csdn.net/fujiakai/article/details/51585767

HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。

HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。

 HashMap 实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆。

1.4 hashMap实现原理

链接: http://blog.csdn.net/qq_27093465/article/details/52209814

链接:https://www.cnblogs.com/chengxiao/p/6059914.html

上面两位大神写的不错,简单易懂。


2、spring

2.1 spring的AOP与IOC

IOC依赖注入和AOP面向切面编程,这两个是Spring的灵魂。

IOC:所有的类的创建、销毁都由spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。

BeanFactory factory = new XmlBeanFactory(new ClassPathResource("root.xml"));

TestBean bean = factory.getBean("testBean");

上面这样的简单代码其实在spring中执行了太多太多的逻辑。推荐《Spring源码深度解析》。

AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程。一般用在事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。

JDK动态代理和CGLIB动态代理。JDK动态代理通过反射来接收被代理的类,并且要求被代理的类必须实现一个接口。JDK动态代理的核心是InvocationHandler接口和Proxy类。

如果目标类没有实现接口,那么Spring AOP会选择使用CGLIB来动态代理目标类。CGLIB(Code Generation Library),是一个代码生成的类库,可以在运行时动态的生成某个类的子类,注意,CGLIB是通过继承的方式做的动态代理,因此如果某个类被标记为final,那么它是无法使用CGLIB做动态代理的。

链接:http://www.importnew.com/24305.html


3、mybatis中#和$的区别

 #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".

#方式能够很大程度防止sql注入


$方式一般用于传入数据库对象,例如传入表名。
MyBatis排序时使用order by 动态参数时需要注意,用$而不是#。
$方式无法防止Sql注入
一般能用#的就别用$

4、sleep与wait的区别


5、线程池的概念


6、Oracle存储过程与函数的区别


7、JVM


8、MySQL的数据引擎












  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值