Java面试题
文章平均质量分 57
内卷成仙
十年饮冰,难凉热血!
展开
-
2021年实战面试题
2021年实战面试题原创 2021-01-05 09:53:56 · 187 阅读 · 0 评论 -
2021年Java进阶面试题总结
2021年Java基础面试题总结原创 2021-01-02 19:14:52 · 250 阅读 · 0 评论 -
2021年Java基础面试题总结
1、事务管理(ACID)原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性(Consistency)事务前后数据的完整性必须保持一致。隔离性(Isolation)事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。持久性(Durability)持久性是指一个事务一旦被提交,它对数据库的改变就是永久性的,接下来即时数据库发生故障也不应该对其原创 2021-01-02 19:14:18 · 1821 阅读 · 0 评论 -
冒泡排序和选择排序代码最简
冒泡排序int[] arr = {3,1,6,8,0}; // 定义一个flag,用来记录上一轮是否有元素进行交换, // 如果上一轮没有元素进行交换,说明已经排序完成,停止排序(优化) boolean flag; for (int i = 0; i < arr.length - 1; i++) {//外层控制的是比较的轮数 //每轮初始flag为true flag = true;...原创 2020-07-21 08:14:48 · 226 阅读 · 0 评论 -
描述软件生命周期
软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,也有将以上阶段的活动组合在内的迭代阶段,即迭代作为生命周期的阶段。...原创 2020-07-21 08:09:20 · 422 阅读 · 0 评论 -
Eureka和Zookeeper区别简化
遵循原则不同尤里卡遵循AP原则,动物园管理员遵循CP原则,C:强一致性,A:可用性,P:分区容错性著名的CAP理论中提出,一个分布式系统不可能同时满足C(一致性)A(可用性)P(分区容错性),由于分区容错性p是分布式系统中必须保证,因此只能在a和ç之间权衡...原创 2020-07-21 08:06:16 · 184 阅读 · 0 评论 -
面向对象编程和面向接口编程
面向对象思想的核心之一,就是模拟真实世界,把真实世界中的事物抽象成类,整个程序靠各个类的实例互相通信、互相协作完成系统功能,这非常符合真实世界的运行状况,也是面向对象思想的精髓。那么什么是面向接口编程呢?我个人的定义是:在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。...原创 2020-07-21 07:47:40 · 354 阅读 · 0 评论 -
SpringCloud的分布式锁和分布式事务
基于 Redis 的分布式锁利用 SETNX 和 SETEX基本命令主要有:SETNX(SET If Not Exists):当且仅当 Key 不存在时,则可以设置,否则不做任何动作。SETEX:可以设置超时时间其原理为:通过 SETNX 设置 Key-Value 来获得锁,随即进入死循环,每次循环判断,如果存在 Key 则继续循环,如果不存在 Key,则跳出循环,当前任务执行完成后,删除 Key 以释放锁。这种方式可能会导致死锁,为了避免这种情况,需要设置超时时间。通过数据库实现分布原创 2020-07-20 13:26:55 · 718 阅读 · 0 评论 -
MySQL的四种事务隔离级别
一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。 3、隔离性(Isolation):同一时间,只允许一个事务...原创 2020-07-20 13:10:24 · 117 阅读 · 0 评论 -
SpringCloud服务器雪崩效应
spring-cloud服务器雪崩效应 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性原创 2020-07-20 12:29:08 · 412 阅读 · 0 评论 -
SpringBoot启动原理 详解
一、SpringBootApplication背后的秘密@SpringBootApplication注解是Spring Boot的核心注解,它其实是一个组合注解: 1 @Target(ElementType.TYPE) 2 @Retention(RetentionPolicy.RUNTIME) 3 @Documented 4 @Inherited 5 @SpringBootConfiguration 6 @EnableAutoConfiguration 7 @ComponentScan原创 2020-07-20 10:43:14 · 208 阅读 · 0 评论 -
乐观锁与悲观锁详解与使用场景
乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synch.原创 2020-07-20 10:08:15 · 178 阅读 · 0 评论 -
mysql缓存机制详解
mysql缓存机制就是缓存sql 文本及缓存结果,用KV形式保存再服务器内存中,如果运行相同的sql,服务器直接从缓存中去获取结果,不需要在再去解析、优化、执行sql。 如果这个表修改了,那么使用这个表中的所有缓存将不再有效,查询缓存值得相关条目将被清空。表中得任何改变是值表中任何数据或者是结构的改变,包括insert,update,delete,truncate,alter table,drop table或者是drop database 包括那些映射到改变了的表的使用merge表的查询,显然,者对于频繁原创 2020-07-20 09:10:41 · 192 阅读 · 0 评论 -
hashmap与hashtable的区别详解
最主要的区别在于Hashtable是线程安全5261,而HashMap则非线程安全。Hashtable的实现方法里面都添加了1653synchronized关键字来确保线程同步,因此相对而言HashMap性能会高一些,我们平时使用时若无特殊需求建议使用HashMap,在多线程环境下若使用HashMap需要使用Collections.synchronizedMap()方法来获取一个线程安全的集合(Collections.synchronizedMap()实现原理是Collections定义了一个Synch原创 2020-07-20 08:55:00 · 149 阅读 · 0 评论 -
GC回收机制详解
应用程序对资源(内存使用)管理的方式,常见的一般有如下几种:1、手动管理:C,C++2、计数管理:COM3、自动管理:.NET,Java,PHP,GO…但是,手动管理和计数管理的复杂性很容易产生以下典型问题:1.程序员忘记去释放内存2.应用程序访问已经释放的内存三、GC如何工作:GC的工作流程主要分为如下几个步骤:1、标记(Mark)---GC的根节点也即GC Root2、计划(Plan)3、清理(Sweep)4、引用更新(Relocate)5、压缩(Co原创 2020-07-20 08:46:09 · 457 阅读 · 0 评论 -
JVM内存模型图解详解
原创 2020-07-20 08:15:49 · 144 阅读 · 0 评论 -
Dubbo底层的网络通信机制原理!
原创 2020-07-16 08:54:15 · 446 阅读 · 0 评论 -
对比SpringCloud和Dubbo的技术选型
spring Cloud与dubbo都为微服务框架,那么我们在进行技术选型时应该怎么考虑呢?可以从以下几个方面考虑1.架构完整度:与spring cloud相比,dubbo的架构完整度不够,其本身只提供了服务注册中心与服务治理两个模块,而spring cloud到现在为止,已经提供了服务注册中心,服务治理等24个模块,并且还在增加中。虽然dubbo也可以整合第三方框架,但是搭建出来的dubbo架构可能出现兼容性问题,而spring cloud不会,因为其每一个模块都是经过严格测试的,几乎不存在兼容性问题原创 2020-07-14 10:15:53 · 817 阅读 · 0 评论 -
对比SpringCloud和Dubbo的优缺点
dubbo由于是二进制的传输,占用带宽会更少springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决springcloud的接口协议约定比较自由且松散,需要有强有力的行政措施来限制接口无序升级dubbo的注册中心可以选择zk,redis等多种,springcloud的注册中心只能用eureka或者自研但如果我选,我会用springcloud。从公司整体原创 2020-07-14 09:54:20 · 450 阅读 · 0 评论 -
挑战Java15-40k面试进行中
1、TCP、UDP、HTTP区别?TCP三次握手机制第一次:客户端发送一个SYN包到服务端,并进入SYN_SEND状态,等待服务端的响应。第二次:服务端收到SYN包,并确认,同时自己也发送一个SYN包,即SYN+ACK包,此时服务端进入SYN_RECV状态。第三次:客户端收到服务端的SYN+ACK包,向服务端发送一个确认ACK包,进入ESTABLISHED状态,完成连接UDPUDP也是传输层的一个协议。但是与TCP不同的是,UDP不是面向连接的,并不保证传输的可靠性,没有TCP的建立连接的原创 2020-07-03 15:17:28 · 306 阅读 · 0 评论 -
三年面试题不断更新
1.Object类中都有哪些方法 12种①registerNatives() //私有方法②getClass() //返回此 Object 的运行类。③hashCode() //用于获取对象的哈希值。④equals(Object obj) //用于确认两个对象是否“相同”。⑤clone() //创建并返回此对象的一个副本。⑥toString() /...原创 2019-06-17 21:51:33 · 301 阅读 · 2 评论