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 A 2. 循环依赖会产生什...转载 2020-05-07 16:16:06 · 1986 阅读 · 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 · 383 阅读 · 1 评论 -
Tomcat优化------(二)
Tomcat...转载 2020-04-14 11:09:22 · 135 阅读 · 0 评论 -
Tomcat优化------(一)
前言Tomcat作为Web应用的服务器,目前绝大多数公司都是用其作为应用服务器的,应用服务器的执行效率会影响系统执行,这里会讲Tomcat怎样进行配置能提高处理性能。另外必须提到对应的JVM参数的优化的一些经验。Tomcat运行模式分3种模式: bio,nio,apr 一般使用nio模式bio效率低,apr对系统配置有一些比较高的要求确认Tomcat的运行模式配置文件 server.xml<...转载 2020-04-14 11:07:26 · 115 阅读 · 0 评论 -
分布式之数据库和缓存双写一致性方案解析!
一、为什么写这篇文章? 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作: 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存?又或者是先删除缓存,再更新数据库?其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析,于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。 二、文章结构 1、讲...转载 2020-04-01 17:08:29 · 108 阅读 · 0 评论 -
一致性Hash(Consistent Hashing)原理剖析
引入 在业务开发中,我们常把数据持久化到数据库中。如果需要读取这些数据,除了直接从数据库中读取外,为了减轻数据库的访问压力以及提高访问速度,我们更多地引入缓存来对数据进行存取。读取数据的过程一般为: 图1:加入缓存的数据读取过程 对于分布式缓存,不同机器上存储不同对象的数据。为了实现这些缓存机器的负载均衡,可以使用式子1来定位对象缓存的存储机器: m = hash(o) mod n...转载 2020-04-01 15:28:33 · 106 阅读 · 0 评论 -
Java类加载器ClassLoader的说明
(1)API文档内容如下: 类加载器是负责加载类的对象。ClassLoader 类是一个抽象类。如果给定类的二进制名称,那么类加载器会试图查找或生成构成类定义的数据。一般策略是将名称转换为某个文件名,然后从文件系统读取该名称的“类文件”。 每个 Class 对象都包含一个对定义它的 ClassLoader 的引用。 数组类的 Class 对象不是由类加载器创建的,而是由 Java 运行时根据...转载 2020-04-02 11:22:36 · 134 阅读 · 0 评论 -
序列化和反序列化的底层实现原理是什么?
序列化和反序列化作为Java里一个较为基础的知识点,大家心里也有那么几句要说的,但我相信很多小伙伴掌握的也就是那么几句而已,如果再深究问一下Java如何实现序列化和反序列化的,就可能不知所措了!遥记当年也被问了这一个问题,自信满满的说了一大堆,什么是序列化、什么是反序列化、什么场景的时候才会用到等,然后面试官说:那你能说一下序列化和反序列化底层是如何实现的吗?一脸懵逼,然后回家等通知! 一、基本...转载 2020-04-02 10:12:04 · 75 阅读 · 0 评论 -
看似简单的hashCode和equals面试题,竟然有这么多坑!
hashCode()方法和equals()区别与联系这到面试题,看似简单,根据以往面试星友的情况来说,绝大部分人都不能很好的回答出来,要么没有逻辑,想到一句就说一句,要么抓不住重点,答非所问。从这个很小的面试题上我们就可以看出来,对于任何一个面试题来说,都是要清晰有条理的回答。那么如何才能回答到点子上并且让面试官觉得你的逻辑清晰哪? 首先,我们要介绍hashCode()和equals()方法的作...转载 2020-04-01 18:24:10 · 79 阅读 · 0 评论 -
高并发下的接口幂等性解决方案!
一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的; 创建业务订单,一次业务请求只能创建一个,创建多个就会出大问题。 等等很多重...原创 2020-04-01 18:01:17 · 138 阅读 · 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 · 663 阅读 · 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 · 170 阅读 · 0 评论 -
Spring 面试问题 TOP 50
1. 一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能? Version Feature Spring 2.5 发布于 2007 年。这是第一个支持注解的版本。 Spring 3.0 发布于 2009 年。它完全利用了 Java5 中的改进,并为 JEE6 提供了支持。 Spring 4.0 发布于 2013 年。这是第一个完全支持 JAV...原创 2019-11-19 14:23:31 · 82 阅读 · 0 评论 -
关于Java Lambda表达式看这一篇就够了
Java Lambda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedynamic指令来实现Lambda表达式的。具体原理放到下一篇。本篇我们首先感受一下使用Lambda表达式带来的便利之处。 Lambda and Anonymous Classes(I) 本节将介绍如何使...转载 2019-11-11 15:03:39 · 470 阅读 · 0 评论