ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java面试题总结(乱序版,2021Java进阶新篇章

2021-09-12 10:01:50  阅读:195  来源: 互联网

标签:装配 面试题 Java int Spring bean num 线程 乱序


2、poll()和remove()区别:

poll()和remove()都是从队列中删除第一个元素,remove抛出异常,poll返回null。

3、peek()和element()区别:

peek()和element()用于查询队列头部元素,为空时element抛出异常,peek返回null。

二、如何让 Java 的线程彼此同步?


  1. synchronized

  2. volatile

  3. ReenreantLock

  4. 使用局部变量实现线程同步

三、你了解过哪些同步器?请分别介绍下。


1、Semaphore同步器

特征:

  • 经典的信号量,通过计数器控制对共享资源的访问

  • Semaphore(int count):创建拥有count个许可证的信号量

  • acquire()/acquire(int num) : 获取1/num个许可证

  • release/release(int num) : 释放1/num个许可证

2、CountDownLatch同步器

特征:

  • 必须发生指定数量的事件后才可以继续运行(比如赛跑比赛,裁判喊出3,2,1之后大家才同时跑)

  • CountDownLatch(int count):必须发生count个数量才可以打开锁存器

  • await:等待锁存器

  • countDown:触发事件

3、CyclicBarrier同步器

特征:

  • 适用于只有多个线程都到达预定点时才可以继续执行(比如斗地主,需要等齐三个人才开始)

  • CyclicBarrier(int num) :等待线程的数量

  • CyclicBarrier(int num, Runnable action) :等待线程的数量以及所有线程到达后的操作

  • await() : 到达临界点后暂停线程

4、交换器(Exchanger)同步器

5、Phaser同步器

[https://www.cnblogs.com/pamne/p/11731797.html](

)

2020-9-24 08:25-09:00

四、如果客户端禁止 cookie 能实现 session 还能用吗?


一般默认情况下,在会话中,服务器存储 session 的 sessionid 是通过 cookie 存到浏览器里。

如果浏览器禁用了 cookie,浏览器请求服务器无法携带 sessionid,服务器无法识别请求中的用户身份,session失效。

但是可以通过其他方法在禁用 cookie 的情况下,可以继续使用session。

  1. 通过url重写,把 sessionid 作为参数追加的原 url 中,后续的浏览器与服务器交互中携带 sessionid 参数。

  2. 服务器的返回数据中包含 sessionid,浏览器发送请求时,携带 sessionid 参数。

  3. 通过 Http 协议其他 header 字段,服务器每次返回时设置该 header 字段信息,浏览器中 js 读取该 header 字段,请求服务器时,js设置携带该 header 字段。

五、OSI 的七层模型都有哪些?


六、在 Java 中,为什么不允许从静态方法中访问非静态变量?


  1. 静态变量属于类本身,在类加载的时候就会分配内存,可以通过类名直接访问;

  2. 非静态变量属于类的对象,只有在类的对象产生时,才会分配内存,通过类的实例去访问;

  3. 静态方法也属于类本身,但是此时没有类的实例,内存中没有非静态变量,所以无法调用。

七、请解释 Spring Bean 的自动装配?


Spring支持IOC,自动装配不用类实例化,直接从bean容器中取。

1、配置在xml中


<bean id="employeeDAO" class="com.guor.EmployeeDAOImpl" autowire="byName" />

2、@Autowired自动装配

八、请解释自动装配模式的区别?


有五种自动装配的方式,可以用来指导 Spring 容器用自动装配方式来进行依赖注入。

1、no

默认的方式是不进行自动装配,通过显式设置 ref 属性来进行装配。第 402 页 共 485 页

2、byName

通过参数名 自动装配,Spring 容器在配置文件中发现 bean

的 autowire 属性被设置成 byname,之后容器试图匹配、装配和该 bean 的属

性具有相同名字的 bean。

3、byType:

通过参数类型自动装配,Spring 容器在配置文件中发现 bean

的 autowire 属性被设置成 byType,之后容器试图匹配、装配和该 bean 的属

性具有相同类型的 bean。如果有多个 bean 符合条件,则抛出错误。

4、constructor

这个方式类似于 byType, 但是要提供给构造器参数,如

果没有确定的带参数的构造器参数类型,将会抛出异常。

5、autodetect

首先尝试使用 constructor 来自动装配,如果无法工作,

则使用 byType 方式。

2020-9-25 08:30-09:00

九、如何开启基于注解的自动装配?


要使用 @Autowired,需要注册 AutowiredAnnotationBeanPostProcessor,可以有以下两种方式来实现:

引入配置文件中的<bean>下引入 <context:annotation-config>

Java网盘:pan.baidu.com/s/1MtPP4d9Xy3qb7zrF4N8Qpg
提取码:2p8n

总结

阿里伤透我心,疯狂复习刷题,终于喜提offer 哈哈~好啦,不闲扯了

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](

)**

image

1、JAVA面试核心知识整理(PDF):包含JVMJAVA集合JAVA多线程并发,JAVA基础,Spring原理微服务,Netty与RPC,网络,日志,ZookeeperKafkaRabbitMQ,Hbase,MongoDB,Cassandra,设计模式负载均衡数据库一致性哈希JAVA算法数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算共30个章节。

image

2、Redis学习笔记及学习思维脑图

image

3、数据面试必备20题+数据库性能优化的21个最佳实践

image

*,Cassandra,设计模式负载均衡数据库一致性哈希JAVA算法数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算共30个章节。

[外链图片转存中…(img-l1LNoWKO-1631411777032)]

2、Redis学习笔记及学习思维脑图

[外链图片转存中…(img-tn4BID3F-1631411777033)]

3、数据面试必备20题+数据库性能优化的21个最佳实践

[外链图片转存中…(img-b05Tx5Ey-1631411777034)]

标签:装配,面试题,Java,int,Spring,bean,num,线程,乱序
来源: https://blog.csdn.net/m0_60848416/article/details/120247143

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有