
理论知识
文章平均质量分 93
这些都是本人亲自面试所总结出来的,比较实用,java中级开发高频面试题,最常见的面试题汇总
Java程序员廖志伟
《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)作者、清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、阿里云专家博主、51CTO专家博主。研究过Spring、SpringBoot、SpringMVC、SpringCloud、Mybatis、Dubbo、Zookeeper、RabbitMQ、RocketMQ、Kafka、Redis、MySQL、ElasticSearch、MongoDB、ShardingSphere、DDD、Kubernetes等技术。
展开
-
理论:第十一章:大厂程序员如何使用GitHub快速开发学习
常用词:in案例:seckill in:name,readme,descriptionstars或者fork案例:搜索springboot点赞数大于5000的awesome 关键字高亮显示github上代码单行:多行:github快捷键t(列表显示代码)搜索地区大佬:...原创 2020-07-01 09:37:36 · 1628 阅读 · 46 评论 -
理论:第十四章:生产环境服务器变慢如何诊断,性能评估
脑图:查看整机:top案例:后台一直运行着这个程序:top命令查看 结果:uptime:查看系统性能的精简版查看CPU:vmstatus + sy 参考值为80%,如果us + sy 大于80%,说明可能存在CPU不足。查看所有的CPU:mpstat -p all 每秒查看的次数案例:每二秒打印一次查看进程CPU的情况:pidstat -u 1 -p 进程编号案例:查看内存:freepidstat -..原创 2020-07-01 09:32:38 · 8674 阅读 · 60 评论 -
理论:第十三章:堆溢出,栈溢出的出现场景以及解决方案
堆溢出的情况及解决方案OutofMemoryError:Java heap space 堆内存中的空间不足以存放新创建的对象OutOfMemoryError: GC overhead limit exceeded 超过98%的时间用来做GC并且回收了不到2%的堆内存OutOfMemoryError: Direct buffer memory 堆外内存OutofMemoryError:unable to create new native thread解决方案:.原创 2020-07-01 09:19:16 · 7567 阅读 · 19 评论 -
理论:第十二章:Dubbo的运行原理,支持什么协议,与SpringCloud相比它为什么效率要高一些,Zookeeper底层原理
Dubbo简单的介绍一下Dubbo?(Dubbo是什么)dubbo就是个服务调用的东东。为什么怎么说呢?因为Dubbo是由阿里开源的一个RPC分布式框架那么RPC是什么呢?就是不同的应用部署到不同的服务器上,应用之间想要调用没有办法直接调用,因为不在一个内存空间,需要通过网络通讯来调用,或者传达调用的数据。而且RPC会将远程调用的细节隐藏起来,让调用远程服务像调用本地服务一样简单。dubbo有哪些组件?紫色虚线:在Dubbo启动时完成的功能 蓝青色的线:都是程序运.原创 2020-06-29 22:26:01 · 4566 阅读 · 16 评论 -
理论:第十章:公平锁,非公平锁,可重入锁,递归锁,自旋锁,读写锁,悲观锁,乐观锁,行锁,表锁,死锁,分布式锁,线程同步锁分别是什么?
公平锁,非公平锁https://blog.csdn.net/java_wxid/article/details/97611532可重入锁和递归锁https://blog.csdn.net/java_wxid/article/details/97611665自旋锁https://blog.csdn.net/java_wxid/article/details/97612281读写锁https://blog.csdn.net/java_wxid/article/details/9916原创 2020-06-29 16:34:23 · 5736 阅读 · 39 评论 -
理论:第九章:JVM内存模型,算法,垃圾回收器,调优,四大引用,常见的JVM错误,类加载机制(双亲委派),创建一个对象,这个对象在内存中是怎么分配的?
JVM内存模型原创 2020-06-23 20:59:26 · 4948 阅读 · 33 评论 -
理论:第八章:线程是什么,有几种实现方式,它们之间的区别是什么,线程池实现原理,JUC并发包,ThreadLocal与Lock和Synchronize区别
什么是线程?讲个故事给你听,让你没法去背这个题,地址:https://blog.csdn.net/java_wxid/article/details/94131223有几种实现方式?继承Thread类 实现Runnable接口 实现Callable接口 线程池方式优缺点1.继承Thread类优点 、代码简单 。 缺点 、该类无法集成别的类。2.实现Runnable接口优点 、继承其他类。 同一实现该接口的实例可以共享资源。 缺点 、代码复杂3.实现Callable优点原创 2020-06-22 14:36:28 · 5174 阅读 · 31 评论 -
理论:第七章:用生活的案例解释23种设计模式
设计模式1. 根据目的来分根据模式是用来完成什么工作来划分,这种方式可分为创建型模式、结构型模式和行为型模式 3 种。创建型模式:用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。GoF 中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。 结构型模式:用于描述如何将类或对象按某种布局组成更大的结构,GoF 中提供了代理、适配器、桥接、装饰、外观、享元、组合等 7 种结构型模式。 行为型模式:用于描述类或对象之间怎样相互协作共同完成单个对象都无法单独完成原创 2020-06-22 14:34:59 · 8256 阅读 · 59 评论 -
理论:第六章:SpringCloud组件有哪些,他们的作用是什么(说七八个)?微服务的CAP是什么?BASE是什么?
先讲五大核心组件,(偷个懒,嘻嘻)这里我引用一位大佬讲解的,原文地址是:https://juejin.im/post/5be13b83f265da6116393fc7一、业务场景介绍先来给大家说一个业务场景,假设咱们现在开发一个电商网站,要实现支付订单的功能,流程如下:创建一个订单后,如果用户立刻支付了这个订单,我们需要将订单状态更新为“已支付” 扣减相应的商品库存 通知仓储中心,进行发货 给用户的这次购物增加相应的积分针对上述流程,我们需要有订单服务、库存服务、仓储服务、积分服务。整个原创 2020-06-22 14:33:07 · 6242 阅读 · 50 评论 -
理论:第五章:Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点
Spring注解:声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在数据访问层使用(dao层) @Controller 在展现层使用,控制器的声明(C) 注入bean的注解 @Autowired 由Spring提供 @Resource 由JSR-250提供 java配置类相关注解 @Bean 注解在方法上,声明当前方法的返回值为一个原创 2020-06-22 14:31:48 · 6485 阅读 · 35 评论 -
理论:第四章:Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存雪崩,缓存穿透,双删策略
简单介绍一个redis?redis是内存中的数据结构存储系统,一个key-value类型的非关系型数据库,可持久化的数据库,相对于关系型数据库(数据主要存在硬盘中),性能高,因此我们一般用redis来做缓存使用;并且redis支持丰富的数据类型,比较容易解决各种问题,因此redis可以用来作为注册中心,数据库、缓存和消息中间件。Redis的Value支持5种数据类型,string、hash、list、set、zset(sorted set);String类型:一个key对应一个valueHas原创 2020-06-22 13:50:35 · 4294 阅读 · 21 评论 -
理论:第三章:索引使用的限制条件,sql优化有哪些,数据同步问题(缓存和数据库),缓存优化
索引使用的限制条件,sql优化有哪些a,选取最适用的字段:在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。另外一个提高效率的方法是在可能的情况下,应该尽量把字段设置为NOTNULL,b,使用连接(JOIN)来代替子查询(Sub-Queries)c,使用联合(UNION)来代替手动创建的临时表d,事物: a)要么语句块中每条语句都操作成功,要么都失败。换句话说,就是可以保持数据库中数据的一致性和完整性。事物以BEGIN关键字开始,COMMIT关键字结束。在这之原创 2020-06-22 13:50:22 · 4113 阅读 · 37 评论 -
理论:第二章:Spring的AOP和IOC是什么?使用场景有哪些?Spring事务与数据库事务,传播行为,数据库隔离级别
AOP:面向切面编程。即在一个功能模块中新增其他功能,比方说你要下楼取个快递,你同事对你说帮我也取一下呗,你就顺道取了。在工作中如果系统中有些包和类中没有使用AOP,例如日志,事务和异常处理,那么就必须在每个类和方法中去实现它们。 代码纠缠每个类和方法中都包含日志,事务以及异常处理甚至是业务逻辑。在一个这样的方法中,很难分清代码中实际做的是什么处理。AOP 所做的就是将所有散落各处的事务代码集中到一个事务切面中。场景比方说我现在要弄一个日志,记录某些个接口调用的方法时间。使用Aop我可以在这个接原创 2020-06-22 13:50:03 · 8527 阅读 · 60 评论 -
理论:第一章:HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理
首先HashMap是Map的一个实现类,而Map存储形式是键值对(key,value)的。可以看成是一个一个的Entry。Entry所存放的位置是由key来决定的。Map中的key是无序的且不可重复的,所有的key可以看成是一个set集合,如果出现Map中的key如果是自定义类的对象,则必须重写hashCode和equals方法,因为如果不重写,使用的是Object类中的hashCode和equals方法,比较的是内存地址值不是比内容。Map中的value是无序的可重复的,所有的value可以看成是原创 2020-06-22 13:46:37 · 18178 阅读 · 90 评论