![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 95
Tate-Ling
相互交流,相互学习!
展开
-
Synchronize--实现原理
转载自:https://blog.csdn.net/u012715840/article/details/58247556锁的数据结构同步代码块是使用monitorenter和monitorexit指令实现的,任何java对象都有一个monitor与之关联,当一个monitor被持有后,对象就处于锁定状态。在运行期间,Mard Word里存储的数据会随着锁标志位的变化而变化。M...转载 2019-07-18 10:17:44 · 223 阅读 · 0 评论 -
mybatis缓存--一级缓存二级缓存
转载自:https://www.cnblogs.com/happyflyingpig/p/7739749.html一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL,因为使用SelSe...转载 2018-08-30 17:36:28 · 317 阅读 · 0 评论 -
事务--数据库事务的四大特性以及事务的隔离级别
转载自:https://www.cnblogs.com/fjdingsd/p/5273008.html 本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能...转载 2018-08-27 14:03:17 · 135 阅读 · 0 评论 -
AOP-JDK 和CGLIB、Javassist、ASM之间的差别 (详细)
class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象: class字节码文件是根据JVM虚拟机规范中规定的字节码组织规则生成的、...转载 2018-08-16 22:17:43 · 2832 阅读 · 1 评论 -
Zookeeper--理论
转载自:【分布式】Zookeeper的Leader选举;ZooKeeper机制架构;谈谈对CAP定理的理解一、Leader选举 1.1 Leader选举概述 Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举。 (1) 服务器初始化启动。 (2) 服务器运行期间无法和Leader保持连...转载 2018-08-08 19:12:09 · 145 阅读 · 0 评论 -
SLF4J--自动绑定实现类原理(源码)
转载自:https://www.cnblogs.com/Anidot/articles/7744018.html一、概述 slf4j(全称是Simple Loging Facade For Java)是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就好像我们经常使用的JDBC一样,只是一种接口规则定义而已,使用了slf4j可以对客户端应用解耦。因为当我们在代码实...转载 2018-08-02 11:45:44 · 3429 阅读 · 0 评论 -
NIO--WatchService、WatchKey(监控文件变化)
转载自:http://blog.csdn.net/lirx_tech/article/details/514253641. 旧版本监控文件变化的弊端: 1) 非常繁琐,必须自己手动开启一个后台线程每隔一段时间遍历一次目标节点并记录当前状态,然后和上一次遍历的状态对比,如果不相同就表示发生了变化,再采取相应的操作,这个过程非常长,都需要用户自己手动实现;转载 2018-01-04 17:07:47 · 1626 阅读 · 1 评论 -
SMP、NUMA、MPP体系结构介绍
转载自:https://www.cnblogs.com/yubo/archive/2010/04/23/1718810.html从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构 (SMP : Symmetric Multi-Processor) ,非一致存储访问结构 (NUMA : Non-Uniform Memory Access) ,以及海量并行处理结构转载 2017-12-07 16:10:37 · 303 阅读 · 0 评论 -
Streams--Java 8 中的 Streams API 详解
转载自:https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是转载 2017-11-21 18:11:59 · 375 阅读 · 0 评论 -
Actor--Java并发的四种风味:Thread、Executor、ForkJoin和Actor
转载自:http://www.importnew.com/14506.html这篇文章讨论了Java应用中并行处理的多种方法。从自己管理Java线程,到各种更好几的解决方法,Executor服务、ForkJoin 框架以及计算中的Actor模型。Java并发编程的4种风格:Threads,Executors,ForkJoin和Actors我们生活在一个事转载 2017-11-21 14:36:28 · 711 阅读 · 0 评论 -
Base64--图片base64解码简说
Base64常用的就是把二进制数据编码成可打印的字符串百科:Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hiber...原创 2018-09-07 22:58:31 · 1197 阅读 · 0 评论 -
Java泛型--PECS原则
转载自:https://blog.csdn.net/xx326664162/article/details/52175283先来看一个错误:List<? extends Foo> list1 = new ArrayList<Foo>();List<? extends Foo> list2 = new ArrayList<Foo>();...转载 2018-09-02 17:39:29 · 586 阅读 · 1 评论 -
类加载器--Java自定义类加载器与双亲委派模型
转载自:https://www.cnblogs.com/wxd0108/p/6681618.html其实,双亲委派模型并不复杂。自定义类加载器也不难!随便从网上搜一下就能搜出一大把结果,然后copy一下就能用。但是,如果每次想自定义类加载器就必须搜一遍别人的文章,然后复制,这样显然不行。可是自定义类加载器又不经常用,时间久了容易忘记。相信你经常会记不太清loadClass、findClass、...转载 2019-06-23 16:11:48 · 233 阅读 · 0 评论 -
JVM--CMS垃圾回收器详解
转载自:https://blog.csdn.net/zqz_zqz/article/details/70568819转载 2019-06-23 15:44:32 · 481 阅读 · 0 评论 -
线程--JVM中线程的状态转换图
转载自:https://blog.csdn.net/zolalad/article/details/38903179线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即...转载 2019-03-10 12:15:26 · 138 阅读 · 0 评论 -
kafka--Kafka 设计解析(六):Kafka 高性能关键技术解析
转载自:https://www.infoq.cn/article/kafka-analysis-part-6上一篇文章《Kafka 设计解析(五)- Kafka 性能测试方法及 Benchmark 报告》从测试角度说明了 Kafka 的性能。本文从宏观架构层面和具体实现层面分析了 Kafka 如何实现高性能。宏观架构层面利用 Partition 实现并行处理Partition 提供...转载 2018-12-05 14:05:43 · 256 阅读 · 0 评论 -
kafka--简介、使用场景、设计原理、主要配置及集群搭建
转载自:http://www.cnblogs.com/likehua/p/3999538.html问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么? 一、入门 1、...转载 2018-12-05 10:12:25 · 164 阅读 · 0 评论 -
kafka--如何选择Kafka的分区数和消费者个数
转载自:http://www.cnblogs.com/likehua/p/3999538.htmlKafka的分区数是不是越多越好?分区多的优点kafka使用分区将topic的消息打散到多个分区分布保存在不同的broker上,实现了producer和consumer消息处理的高吞吐量。Kafka的producer和consumer都可以多线程地并行操作,而每个线程处理的是一个分区的数据。因...转载 2018-12-05 10:12:08 · 2587 阅读 · 0 评论 -
RabbitMQ--入门 Helloworld
转载自:https://blog.csdn.net/lmj623565791/article/details/37607165本系列教程主要来自于官网入门教程的翻译,然后自己进行了部分的修改与实验,内容仅供参考。“Hello world” of RabbitMQ1、Windows下RabbitMQ的安装下载Erlang,地址:http://www.erlang.org/downlo...转载 2018-09-22 20:46:18 · 149 阅读 · 0 评论 -
try-with-resource--优雅Close及其异常抑制
转载自:https://www.cnblogs.com/itZhy/p/7636615.html一、背景我们知道,在Java编程过程中,如果打开了外部资源(文件、数据库连接、网络连接等),我们必须在这些外部资源使用完毕后,手动关闭它们。因为外部资源不由JVM管理,无法享用JVM的垃圾回收机制,如果我们不在编程时确保在正确的时机关闭外部资源,就会导致外部资源泄露,紧接着就会出现文件被异常占用...转载 2018-09-02 22:52:34 · 910 阅读 · 0 评论 -
Actor--模型原理
转载自:https://www.cnblogs.com/MOBIN/p/7236893.html1.Actor模型在使用Java进行并发编程时需要特别的关注锁和内存原子性等一系列线程问题,而Actor模型内部的状态由它自己维护即它内部数据只能由它自己修改(通过消息传递来进行状态修改),所以使用Actors模型进行并发编程可以很好地避免这些问题,Actor由状态(st转载 2017-11-21 14:10:43 · 2794 阅读 · 0 评论 -
Reactor--模式详解
转载自:http://www.blogjava.net/DLevin/archive/2015/09/02/427045.html前记第一次听到Reactor模式是三年前的某个晚上,一个室友突然跑过来问我什么是Reactor模式?我上网查了一下,很多人都是给出NIO中的 Selector的例子,而且就是NIO里Selector多路复用模型,只是给它起了一个比较fancy的名转载 2017-08-17 14:47:35 · 334 阅读 · 0 评论 -
kafka--Kafka设计解析(三):Kafka High Availability (下)
转载自:http://www.infoq.com/cn/articles/kafka-analysis-part-3Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。InfoQ一直在紧密关注Kafka的转载 2017-06-27 14:55:56 · 463 阅读 · 0 评论 -
Zookeeper--分布式服务框架 Zookeeper -- 管理分布式环境中的数据
转摘自:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将从使用者角度详细介绍 Zookeeper 的安转载 2016-09-18 21:50:41 · 1901 阅读 · 0 评论 -
log4j--常用配置字典
转载自:http://www.blogjava.net/alexprefect/articles/372959.html Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下:...转载 2016-02-20 16:05:26 · 524 阅读 · 0 评论 -
JVM--性能分析
转载自:http://blog.csdn.net/fenglibing/article/details/6411953JDK内置工具使用一、javah命令(C Header and Stub File Generator)二、jps命令(Java Virtual Machine Process Status Tool)三、jstack命令(Java St原创 2016-01-06 11:37:02 · 3362 阅读 · 0 评论 -
NIO--JAVA NIO之浅谈内存映射文件原理与DirectMemory
转载自:http://www.360doc.com/content/13/0502/23/7669533_282552666.shtml JAVA类库中的NIO包相对于IO 包来说有一个新功能是内存映射文件,日常编程中并不是经常用到,但是在处理大文件时是比较理想的提高效率的手段。本文我主要想结合操作系统中(OS)相关方面的知识介绍一下原理。 在传统的文件IO操作转载 2016-01-30 17:55:51 · 1689 阅读 · 0 评论 -
JVM--内存参数设置及常见错误总结
一、 JVM规范 JVM规范对Java运行时的内存划定了几块区域(详见这里),有:JVM栈(Java Virtual Machine Stacks)、堆(Heap)、方法区(Method Area)、常量池(Runtime Constant Pool)、本地方法栈(Native Method Stacks),但对各块区域的内存布局和地址空间却没有明确规定,而留给各JVM厂商发挥的空间。...原创 2016-01-06 08:28:53 · 20230 阅读 · 4 评论 -
正则表达式--常用用法及lookahead、lookbehind
本文主要提供常用的正则表达式模型,着重讨论下在非匹配字符串的解决方案。一、正则表达式语法元字符描述\将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。原创 2016-01-04 14:50:01 · 1794 阅读 · 0 评论 -
网站静态化--谈谈网站静态化
转摘自:http://www.cnblogs.com/yizhu2000/archive/2008/09/01/1281532.html写在前头静态化是解决减轻网站压力,提高网站访问速度的常用方案,但在强调交互的We2.0 时代,对静态化提出了更高的要求,静态不仅要能静,还要能动,下面我通过一个项目,谈谈网站静态化后的架构设计方案,同时和大家探讨一下,在开源产品大行其道,言架构必称Memb转载 2016-01-02 10:10:54 · 570 阅读 · 0 评论 -
NIO--JAVA NIO 入门
转摘自:http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.htmlJDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中转载 2015-12-30 16:14:48 · 483 阅读 · 0 评论 -
设计模式--Java 设计模式与建模专题
本模块暂只引入链接地址:http://www.ibm.com/developerworks/cn/java/design/?ca=j-r转载 2015-12-31 15:19:26 · 305 阅读 · 0 评论 -
Zookeeper--Apache ZooKeeper Watcher 机制源码解释
转摘自:https://www.ibm.com/developerworks/cn/opensource/os-cn-apache-zookeeper-watcher/本文首先讲解了 Apache ZooKeeperWatcher 机制的使用方式,通过一个集群内部状态监听、触发动作的实例以及回调函数的基本知识,引发对于 Watcher 机制内部实现原理和源代码的讨论,然后通过对实现原理的解转载 2016-09-19 20:49:30 · 1178 阅读 · 0 评论 -
AOP 的利器--ASM 3.0 介绍
转摘自:http://www.ibm.com/developerworks/cn/java/j-lo-asm30/随着 AOP(Aspect Oriented Programming)的发展,代码动态生成已然成为 Java 世界中不可或缺的一环。本文将介绍一种小巧轻便的 Java 字节码操控框架 ASM,它能方便地生成和改造 Java 代码。著名的框架,如 Hibernate 和转载 2016-11-01 22:29:47 · 683 阅读 · 0 评论 -
Base64编码--从原理上搞定编码(四)-- Base64编码
转载自:http://www.cnblogs.com/luguo3000/p/3940197.html前言:各位看官应该都是资深的网虫了,小弟斗胆在此问问大家,平时上网时,除了泡MM、到论坛灌水、扔版砖……之外,进行的最多的是什么活动?对了,你一定会说:是收发电子邮件!(谁敢说自己没收/发过电子邮件的?拉出去枪毙了!!) 收 /发E-mail的时候有一个安全性的问题转载 2017-04-27 10:48:59 · 389 阅读 · 0 评论 -
Unsafe--Java为什么会引入及如何使用Unsafe
转载自:http://www.importnew.com/14511.html综述sun.misc.Unsafe至少从2004年Java1.4开始就存在于Java中了。在Java9中,为了提高JVM的可维护性,Unsafe和许多其他的东西一起都被作为内部使用类隐藏起来了。但是究竟是什么取代Unsafe不得而知,个人推测会有不止一样来取代它,那么问题来了,到底为什么要使用Un转载 2017-04-26 20:05:35 · 425 阅读 · 0 评论 -
JVM-Minor GC、Major GC和Full GC之间的区别
转载自:http://www.open-open.com/lib/view/open1429883238291.html在 Plumbr 从事 GC 暂停检测相关功能的工作时,我被迫用自己的方式,通过大量文章、书籍和演讲来介绍我所做的工作。在整个过程中,经常对 Minor、Major、和 Full GC 事件的使用感到困惑。这也是我写这篇博客的原因,我希望能清楚地解释这其中的一转载 2017-05-17 16:58:33 · 452 阅读 · 0 评论 -
JVM——java 内存区域与内存溢出分析
转载自:http://matt33.com/2016/09/07/jvm-basic1/法区2.6. 运行时常量池 Runtime Constant Pool2.7. 直接内存 Direct Memory3. HotSpot虚拟机对象解密3.1. 对象的创建3.1.1. 创建过程3.1.2. 堆内存分配方法3.1.3. 线程安全3.2.转载 2017-05-17 15:38:49 · 1097 阅读 · 0 评论 -
JVM——垃圾收集器与内存分配策略
转载自:http://matt33.com/2016/09/18/jvm-basic2/本文主要是对《深入理解java虚拟机 第二版》第三章部分做的总结,文章中大部分内容都来自这章内容,也是博客 JVM 学习的第二部分。简述说到垃圾收集(Garbage Collection,GC),很多人可能会认为这是 Java 自有的特性,曾经我也一度这样想,后来才知道 GC 的历史转载 2017-05-17 15:34:28 · 420 阅读 · 0 评论 -
Unsafe--Java中Unsafe类详解
转载自:http://www.cnblogs.com/mickole/articles/3757278.htmlJava中Unsafe类详解java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、转载 2017-04-28 12:25:44 · 339 阅读 · 0 评论