java面试相关

文章目录


1。 在这里插入图片描述
注意:这种只有使用自动装箱功能的时候,才会在常量池中取同一个数据,而当范围超出(-128~127)和没有使用自动装箱的时候都会重新new一个对象。所以上述的a和b指向的是不同的对象,所以地址会不相同。


2.在这里插入图片描述
补充:
(1)所有的sql使用的默认类型都是null,如果你把POJO中的映射属性类型写为基本类型,当查找不到记录的时候,返回null赋给基本类型就会出错 ;

(2)包装类型都可以相应的转化为基本类型,如果你设置为基本类型比如int的话,它默认初始化为0,但0本身就代表着一种含义,如果为null的话,既好理解,也可以方便开发人员转化!而且很多xml配置中默认都是null。


Java 常见面试题之“Arraylist和Linkedlist的区别”

关于ArrayList的扩容机制,使用的是Arrays.copyOf()
ArrayList的默认初始化大小为10,扩容1.5倍。
HashMap 默认的初始化大小为16。之后每次扩充,容量变为原来的2倍.当链表数大于8时,转成数组+链表+红黑树

4 java 中的锁 – 偏向锁、轻量级锁、自旋锁、重量级锁
5.synchronized关键字的底层原理:隐式锁,基于Monitor对象,是可重入锁。只能是非公平锁,而ReentrantLock可以是公平锁,也可以是非公平锁。
6.聚簇索引与非聚簇索引
7.Redis的线程模型,为啥是单线程的。
8.Redis的内存淘汰机制:lru:最近最少使用。
9.Redis并发竞争key
10.Java中的clone方法-理解浅拷贝和深拷贝
11.countDownLatchCyclicBarrier 使用详解 。。。FutureTask用法及解析FutureTask用法解析2

Spring相关

参考博文,点击这里
1.spring中IOC
(1)Spring的IOC(控制反转)是一种思想,通过DI(依赖注入)进行实现。其实就是将所有的Bean放在统一容器中进行管理起来,就是由 Spring IOC 容器来负责对象的生命周期和对象之间的关系,对象只需要关系业务逻辑本身就可以了。
(2)Spring的IOC有三种注入方式 :构造器注入、setter方法注入、根据注解注入
(3)配置容器的三种方法:xml、annotation,javaconfig

2.BeanFactory和ApplicationContext有什么区别?参考博文,点击这里
都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。

ApplicationContext:

应用上下文,继承BeanFactory接口,它是Spring的一各更高级的容器,提供了更多的有用的功能;

  1. 国际化(MessageSource)

  2. 访问资源,如URL和文件(ResourceLoader)

  3. 载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层

  4. 消息发送、响应机制(ApplicationEventPublisher)

  5. AOP(拦截器)

(1)两者装载bean的区别:
 BeanFactory在启动的时候不会去实例化Bean,中有从容器中拿Bean的时候才会去实例化;
 ApplicationContext在启动的时候就把所有的Bean全部实例化了。它还可以为Bean配置lazy-init=true来让Bean延迟实例化;

spring周期Aware接口:(参考博文 实现了Aware接口的bean在初始化后可以获取相应资源并进行相应的操作(对于操作的结果要慎重!) 举例: ApplicationContextAware:向实现了该接口的bean提供IOC容器的上下文信息(ApplicationContext),实现了该接口的bean必须配置到配置文件中并由spring的bean容器加载 BeanNameAware:向实现了该接口的bean提供关于beanName定义的相关内容

1.ApplicationContextAware
1.1 接口方法:setApplicationContext
1.2 作用:通常用来获取上下文对象,声明全局变量后在方法中对变量进行初始化并供其他方法调用
1.3 实现过程:创建一个类并实现ApplicationContextAware接口,重写接口方法public void setApplicationContext(ApplicationContext applicationContext);在xml文件中配置该类;当spring加载该配置文件时即调用接口方法

2.BeanNameAware
2.1 接口方法:setBeanName
2.2 作用:获取声明的类名,声明全局变量后在方法中对变量进行初始化并供其他方法调用
2.3 实现过程:创建一个类并实现BeanNameAware接口,重写接口方法public void setBeanName(String name);在xml文件中配置该类;当spring加载该配置文件时即调用接口方法。
2.Spring AOP相关知识点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值