Java教程

2021-05-11

本文主要是介绍2021-05-11,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

内容大块 问题 要点
Java基础 Object类都有哪些方法?
谈一下==和equals的区别? 基本类型比较值,引用类型没有重写equals的比较JVM中的地址
重写(Override)和重载的区别?
两个对象的 hashCode() 相同,那么 equals() 也一定为 true吗?
为什么重写equals方法就要重写hashCode方法?
(答出notify和notifyAll)notify和notifyAll有什么区别?
(答出wait的)wait和Thread.sleep方法由和异同? wait是不释放锁,sleep是会释放锁
String是可变的吗?
String类都有哪些常用的方法 indexOf()、charAt()、replace()、trim()、split()、getBytes()、length()、toLowerCase()、toUpperCase()、
substring()、equals()
String、StringBuffer、StringBuilder有什么区别?
int(整型)的可以表示的范围? -231到231-1

访问修饰符都有哪些,他们的可见范围?	Private,Public,Protected(包内子类),无修饰符(包内)
final关键字有什么作用?	变量-只读

字段-不可变
方法-不可重写
类-不可继承

Java集合 常用的集合类都有哪些?
ArrayList和LinkedList的区别?底层实现原理?
ArrayList是否线程安全?如果需要保证线程安全该如何操作? 加锁或者使用CopyOnWriteArrayList
HashMap的key能否为null? Key可以为null,且有且只有一个为null的key
HashMap实现原理? HashBin+LinkedList/RedBlackTree
HashMap什么时候会扩容? 大小>容量*负载因子
什么时候会用到红黑树? 单个桶大小超过8的时候
(如果答到红黑树)什么是红黑树?为什么要用红黑树?红黑树具有什么性质?
HashMap是否线程安全?CHM是怎么实现线程安全的?

说到线程安全问题,java中哪些机制可以用来实现线程安全?	Synchronize、锁、CAS、Atomic类(本质是CAS)、ThreadLocal
(答到ThreadLocal)ThreadLocal实现原理?	
ThreadLocalMap中的Entry为什么要声明为WeakReference?	
	
线程和进程的区别?	
Java中如何创建线程?	
Java的线程都有哪些状态?	NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED
Thread类的run和start

方法有什么区别?
常见的线程池都有哪几种?
线程池都有哪些重要的参数? corePoolSize、maxPoolSize、keepAliveTime、blockingQueuethreadFactory
什么是阻塞队列?实现原理是什么? AQS+CLH队列
拒绝策略都有哪些?
如果让你实现一个线程池,你会如何设计

HTTP HTTP协议了解吗,HTTP报文由哪几部分组成? 起始行、头部、主体
常见的HTTP请求方法有哪些? GET、POST、PUT、DELETE、HEAD、OPTIONS
(答出OPTIONS请求)什么情况下会发送OPTIONS请 ①发送PUT、DELETE、CONNECT
OPTIONS、TRACE、PATCH前
②人为设置了对 CORS 安全的首部字段集合之外的其他首部字段
③Content-Type 的值不属于下列之一:application/x-www-form-urlencoded
multipart/form-data
text/plain
④请求中的XMLHttpRequestUpload 对象注册了任意多个事件监听器。
HTTP状态码可以分为哪几类? 1XX(信息提示),2XX(成功),3XX(重定向),4XX(客户错误),5XX(服务端错误)
什么时候会出现101响应码 切换协议,如ws
都说HTTP是无状态协议,什么是无状态?如果解决? 无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息
Cookie、Session会话保存
HTTP1.0和HTTP1.1区别
HTTP2.0有了解过吗?
HTTP是否安全?HTTPS是如何实现加密传输的?
为什么HTTPS需要用到证书? 验明网站身份,防止“中间人”攻击

TCP/IP TCP/IP协议有了解过吗,描述一下三次握手和四次挥手?
TCP为什么要三次握手,两次不行吗?为什么?
确保不丢包,或者交换起始序号
那挥手为什么需要四次? TCP连接是双向传输的对等的模式,就是说双方都可以同时向对方发送或接收数据
当服务端发送FIN报文时,客户端会进入什么状态? TIMED_WAIT→CLOSE_WAIT
(如果答了2MSL)为什么要等待2MSL?
客户端不等待2MSL直接关闭连接行不行?
有了解过TCP粘包、拆包吗,是怎么产生的? 缓冲区和TCP报文大小的关系
如何解决拆包和粘包问题? 消息定长,消息边界,或者拆分为消息头和消息体
TCP和UDP有什么区别?
若果让你用UDP实现TCP你会怎么做
都说使用TCP传输可靠的,那么TCP是怎么实现传输的可靠性? 超时重传
有了解过TCP拥塞控制算法吗?讲一下大致的流程 慢开始与拥塞避免、快重传与快恢复

Spring Spring的两大核心是什么? IOC和AOP
谈一谈你对IOC的理解?
AOP的原理是什么?都有哪些应用场景? AOP 是面向切面编程,是通过动态代理的方式为程序添加统一功能,集中解决一些公共问题
动态代理都有哪些方式? JDK动态代理(实现接口)JDK 动态代理的核心是 InvocationHandler 接口和 Proxy 类、CGLIB动态代理(继承)
讲一下SpringBean的声明周期?
Spring都提供了哪些方法来管理Bean的生命周期? InitializingBean
各种Aware 接口
DisposableBean
Bean 配置文件中的 Custom init() 方法和 destroy() 方法
@PostConstruct 和 @PreDestroy 注解方式
Bean都有哪些作用域,有什么区别 Singleton、Prototype、Request、Session、Global-Session
Spring都有哪些自动装配模式? 按名称、按类型、构造器、没有声明的话先按构造器没有再按类型
Spring都使用了哪些设计模式,举例说一下?

MySQL MySQL都有哪些存储引擎 InnoDB 、MyISAM 、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED
InnoDB和MyISAM有什么区别?
索引我们会经常使用,使用索引的目的是什么》? 加速查询
使用索引的负面影响都有哪些? 负面:占用空间、影响增删改效率
建立索引的时候都有哪些原则? 频繁使用、需要排序
哪些情况不应当使用索引? 区分度很小,特殊数据类型如text等
那MySQL的索引的实现原理是什么? B+树
为什么MySQL采用B+树作为索引的数据结构?
InnoDB为什么建议使用自增长列作为主键? InnoDB的主键索引使用的是聚簇索引,在写的时候不能产生有序的append操作,而需要进行insert操作,将读取整个B+树节点到内存,在插入这条记录后会将整个节点写回磁盘,这种操作在记录占用空间比较大的情况下,性能会明显下降。
谈到MySQL就不得不说一下事务,那么事务是什么?
事务并发的时候都会遇到什么问题? 脏读、不可重复读、幻读
如何解决事务并发问题? 事务隔离
MySQL事务隔离级别都有哪些,分别解决了什么问题 RU-什么都不解决
RC-脏读
RR-脏读+不可重复读
Serializable-全部
默认的事务隔离级别? RR
事务隔离级别是不是越高越好? 高可以保证一致性但降低了可用性

Redis Redis都有哪些常见的数据结构 String、Hash、List、Set、ZSet、
GEO
Redis的都有哪些持久化的方法?原理是什么 RDB、AOF
两种持久化的区别是什么,各有什么优缺点?

有了解过缓存击穿、缓存穿透和缓存雪崩吗?区别是什么,或者说在什么场景下会发生	击穿:并发访问原本不在缓存中的数据

穿透:访问原本就没有的数据
雪崩:redis失效引起数据库崩溃,最终导致依赖服务不可以用
如何避免? 击穿:访问数据库时加锁等待
穿透:缓存空值+过期时间
雪崩:Redis高可用、服务降级
如果有大量的key需要设置同一时间过期,一般需要注意什么? 批量删除大量key容易导致redis不可以用,应当随机增加一个随机值,让过期时间分散一些
Redis可否用于实现分布式锁?如何实现? Setnx+expire或者set(k,v,nx,exp)
(答setnx+expire的)如果已经获取锁的服务突然挂了怎么办

这篇关于2021-05-11的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!