Java面试

基础

String、StringBuilder、StringBuffer

1、三个之间的区别
2、哪些是线程安全的
3、String为什么线程安全。内部实现

HashMap

1、扩容机制
2、多线程安全
3、HashTable、ConcurrentHashMap

深拷贝 VS 浅拷贝

1、之间的区别

  • 浅拷贝:基本类型值拷贝,引用类型地址拷贝
  • 深拷贝:基本类型值拷贝,引用类型,新建类,并复制值

2、深拷贝实现方式

  • 序列化
  • 重写clone实现 深拷贝

多线程

1、synchronized和ReentrantLock的区别
2、volatile关键字 是否能具有原子性
3、Java的内存模型

缓存一致性

1、最终一致性
2、强一致性

事务的四大特性(ACID)

image.png

并发会带来哪些问题

image.png
image.png

Explain :分析优化sql语句的关键词
最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配

@RestController vs @Controller
使用哪些什么设计模式

Spring中的bean的作用域有哪些?

1.singleton:唯一bean实例,Spring中的bean默认都是单例的。
2.prototype:每次请求都会创建一个新的bean实例。
3.request:每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。
4.session:每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP session内有效。
5.global-session:全局session作用域,仅仅在基于Portlet的Web应用中才有意义,Spring5中已经没有了。Portlet是能够生成语义代码(例如HTML)片段的小型Java Web插件。它们基于Portlet容器,可以像Servlet一样处理HTTP请求。但是与Servlet不同,每个Portlet都有不同的会话。

image.png

{}和${}的区别

${}:静态文本替换

{} :SQL参数占位符,会进行预编译,解析为?

rabbitMq

它常用来实现:异步处理、服务解耦、流量控制(削峰)。

如何保证消息的可靠性?

消息到MQ的过程中搞丢,MQ自己搞丢,MQ到消费过程中搞丢。

  • 生产者到RabbitMQ:事务机制和Confirm机制,注意:事务机制和 Confirm 机制是互斥的,两者不能共存,会导致 RabbitMQ 报错。
  • RabbitMQ自身:持久化、集群、普通模式、镜像模式。
  • RabbitMQ到消费者:basicAck机制、死信队列、消息补偿机制。

消息在什么时候会变成Dead Letter(死信)?

(1)消息过期;
(2)消息超过队列长度或容量;
(3)消息被拒绝并且未设置重回队列。

Redis有哪几种数据淘汰策略?

noeviction:返回错误当内存限制达到并且客户端尝试执行会让更多内存被使用的命令(大部分的写入指令,但DEL和几个例外)
allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。
volatile-lru: 尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存放。
allkeys-random: 回收随机的键使得新添加的数据有空间存放。
volatile-random: 回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键。
volatile-ttl: 回收在过期集合的键,并且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放

其他问题

线程池变量
网络问题
linux命令
nginx

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • String,Stringbuilder和Stringbuffer的区别 String底层使用一个不可变的字符数组...
    SuperCR7阅读 163评论 0 0
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,646评论 1 118
  • 1- 集合 Collection继承于Iterator迭代器,是一种设计模式,也是一个对象,它可以遍历序列中的对象...
    今天比昨天努力阅读 281评论 0 1
  • 这里汇总整理了网络上的Java面试题,持续更新 基本概念操作系统中 heap 和 stack 的区别什么是基于注解...
    java高并发阅读 187评论 1 2
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,281评论 2 7