
java精选
武林是大腿
博客都是本人浏览的一些好的博文或者公众号进行的转载归纳,用于互相交流,共同学习。
文章末尾都备注有转载来源,如有侵权,联系删除。
展开
-
Springboot循环依赖如何解决
1. 循环依赖是什么?Bean A 依赖 B,Bean B 依赖 A这种情况下出现循环依赖。Bean A → Bean B → Bean A更复杂的间接依赖造成的循环依赖如下。Bean A → Bean B → Bean C → Bean D → Bean E → Bean A2. 循环依赖会产生什...转载 2020-05-07 16:16:06 · 2123 阅读 · 1 评论 -
IO多路复用的三种机制Select,Poll,Epoll
I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作select、poll 和 epoll 都是 Linux API 提供的 IO 复用方式。相信大家都了解了Unix五种IO模型,不了解的可以 => 查看这里[1] blocking IO...转载 2020-04-17 10:16:01 · 459 阅读 · 1 评论 -
Tomcat优化------(二)
Tomcat...转载 2020-04-14 11:09:22 · 192 阅读 · 0 评论 -
Tomcat优化------(一)
前言Tomcat作为Web应用的服务器,目前绝大多数公司都是用其作为应用服务器的,应用服务器的执行效率会影响系统执行,这里会讲Tomcat怎样进行配置能提高处理性能。另外必须提到对应的JVM参数的优化的一些经验。Tomcat运行模式分3种模式: bio,nio,apr 一般使用nio模式bio效率低,apr对系统配置有一些比较高的要求确认Tomcat的运行模式配置文件 server.xml<...转载 2020-04-14 11:07:26 · 146 阅读 · 0 评论 -
分布式之数据库和缓存双写一致性方案解析!
一、为什么写这篇文章?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作:但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存?又或者是先删除缓存,再更新数据库?其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析,于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。二、文章结构1、讲...转载 2020-04-01 17:08:29 · 161 阅读 · 0 评论 -
一致性Hash(Consistent Hashing)原理剖析
引入在业务开发中,我们常把数据持久化到数据库中。如果需要读取这些数据,除了直接从数据库中读取外,为了减轻数据库的访问压力以及提高访问速度,我们更多地引入缓存来对数据进行存取。读取数据的过程一般为: 图1:加入缓存的数据读取过程对于分布式缓存,不同机器上存储不同对象的数据。为了实现这些缓存机器的负载均衡,可以使用式子1来定位对象缓存的存储机器: m = hash(o) mod n...转载 2020-04-01 15:28:33 · 139 阅读 · 0 评论 -
Java类加载器ClassLoader的说明
(1)API文档内容如下:类加载器是负责加载类的对象。ClassLoader 类是一个抽象类。如果给定类的二进制名称,那么类加载器会试图查找或生成构成类定义的数据。一般策略是将名称转换为某个文件名,然后从文件系统读取该名称的“类文件”。 每个 Class 对象都包含一个对定义它的 ClassLoader 的引用。 数组类的 Class 对象不是由类加载器创建的,而是由 Java 运行时根据...转载 2020-04-02 11:22:36 · 189 阅读 · 0 评论 -
序列化和反序列化的底层实现原理是什么?
序列化和反序列化作为Java里一个较为基础的知识点,大家心里也有那么几句要说的,但我相信很多小伙伴掌握的也就是那么几句而已,如果再深究问一下Java如何实现序列化和反序列化的,就可能不知所措了!遥记当年也被问了这一个问题,自信满满的说了一大堆,什么是序列化、什么是反序列化、什么场景的时候才会用到等,然后面试官说:那你能说一下序列化和反序列化底层是如何实现的吗?一脸懵逼,然后回家等通知!一、基本...转载 2020-04-02 10:12:04 · 121 阅读 · 0 评论 -
看似简单的hashCode和equals面试题,竟然有这么多坑!
hashCode()方法和equals()区别与联系这到面试题,看似简单,根据以往面试星友的情况来说,绝大部分人都不能很好的回答出来,要么没有逻辑,想到一句就说一句,要么抓不住重点,答非所问。从这个很小的面试题上我们就可以看出来,对于任何一个面试题来说,都是要清晰有条理的回答。那么如何才能回答到点子上并且让面试官觉得你的逻辑清晰哪?首先,我们要介绍hashCode()和equals()方法的作...转载 2020-04-01 18:24:10 · 106 阅读 · 0 评论 -
高并发下的接口幂等性解决方案!
一、背景我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。例如:前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;发送消息,也应该只发一次,同样的短信发给用户,用户会哭的;创建业务订单,一次业务请求只能创建一个,创建多个就会出大问题。等等很多重...原创 2020-04-01 18:01:17 · 160 阅读 · 0 评论 -
2019史上最全java面试题题库大全800题含答案
2019史上最全java面试题题库大全800题含答案1、 meta标签的作用是什么2、 ReenTrantLock可重入锁(和synchronized的区别)总结3、 Spring中的自动装配有哪些限制?4、 什么是可变参数?5、 什么是领域模型(domain model)?贫血模型(anaemic domain model)和充血模型(rich domain model)有什么区别?...转载 2019-11-22 15:11:19 · 934 阅读 · 0 评论 -
学会了这些技术,你离BAT大厂不远了
基础篇Java毕向东_Java基础视频教程25天基础版菜鸟教程Java SE 社区JDK 8 中文手册Java入门第一季 慕课网Java入门第二季 慕课网Java入门第三季 慕课网马士兵 Java 基础教程高淇 Java 300 集教程视频小马哥一入Java深似海Java核心技术36讲 极客时间尚硅谷 NIO 视频尚硅谷 Java8新特性视频教程Java核心技术卷...转载 2019-11-19 15:59:02 · 196 阅读 · 0 评论 -
Spring 面试问题 TOP 50
1. 一般问题1.1. 不同版本的 Spring Framework 有哪些主要功能?VersionFeatureSpring 2.5发布于 2007 年。这是第一个支持注解的版本。Spring 3.0发布于 2009 年。它完全利用了 Java5 中的改进,并为 JEE6 提供了支持。Spring 4.0发布于 2013 年。这是第一个完全支持 JAV...原创 2019-11-19 14:23:31 · 107 阅读 · 0 评论 -
关于Java Lambda表达式看这一篇就够了
Java Lambda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedynamic指令来实现Lambda表达式的。具体原理放到下一篇。本篇我们首先感受一下使用Lambda表达式带来的便利之处。Lambda and Anonymous Classes(I)本节将介绍如何使...转载 2019-11-11 15:03:39 · 492 阅读 · 0 评论