Java面试题总结(乱序版,2021Java进阶新篇章
2021/9/12 11:05:24
本文主要是介绍Java面试题总结(乱序版,2021Java进阶新篇章,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
2、poll()和remove()区别:
poll()和remove()都是从队列中删除第一个元素,remove抛出异常,poll返回null。
3、peek()和element()区别:
peek()和element()用于查询队列头部元素,为空时element抛出异常,peek返回null。
二、如何让 Java 的线程彼此同步?
-
synchronized
-
volatile
-
ReenreantLock
-
使用局部变量实现线程同步
三、你了解过哪些同步器?请分别介绍下。
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。
-
通过url重写,把 sessionid 作为参数追加的原 url 中,后续的浏览器与服务器交互中携带 sessionid 参数。
-
服务器的返回数据中包含 sessionid,浏览器发送请求时,携带 sessionid 参数。
-
通过 Http 协议其他 header 字段,服务器每次返回时设置该 header 字段信息,浏览器中 js 读取该 header 字段,请求服务器时,js设置携带该 header 字段。
五、OSI 的七层模型都有哪些?
六、在 Java 中,为什么不允许从静态方法中访问非静态变量?
-
静态变量属于类本身,在类加载的时候就会分配内存,可以通过类名直接访问;
-
非静态变量属于类的对象,只有在类的对象产生时,才会分配内存,通过类的实例去访问;
-
静态方法也属于类本身,但是此时没有类的实例,内存中没有非静态变量,所以无法调用。
七、请解释 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面试题解析+核心总结学习笔记+最新讲解视频】](
)**
1、JAVA面试核心知识整理(PDF):包含JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算共30个章节。
2、Redis学习笔记及学习思维脑图
3、数据面试必备20题+数据库性能优化的21个最佳实践
*,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算共30个章节。
[外链图片转存中…(img-l1LNoWKO-1631411777032)]
2、Redis学习笔记及学习思维脑图
[外链图片转存中…(img-tn4BID3F-1631411777033)]
3、数据面试必备20题+数据库性能优化的21个最佳实践
[外链图片转存中…(img-b05Tx5Ey-1631411777034)]
这篇关于Java面试题总结(乱序版,2021Java进阶新篇章的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)