java
文章平均质量分 59
Inequality-Sign
这个作者很懒,什么都没留下…
展开
-
ReentrantLock原理分析
ReentrantLock原理分析概述可重入的自选锁,支持公平和非公平两种模式public void lock() { sync.lock(); }Sync的实现有NonfairSync 和 FairSync各自实现 lock 和 tryAcquire来实现不同的加锁机制加锁原理非公平锁使用无参构造的默认就是非公平锁public ReentrantLock() { sync = new NonfairSync(); } static f原创 2022-02-18 00:41:10 · 455 阅读 · 0 评论 -
RocketMq源码解读-producer发送消息
RocketMq源码解读-producer发送消息原创 2021-11-10 15:13:02 · 106 阅读 · 0 评论 -
RocketMq源码解读-producer启动
RocketMq源码解读-producerproducer注册1.ExtProducerResetConfiguration2.RocketMQAutoConfigurationproducer注册1.ExtProducerResetConfiguration注册额外的producer注册@ExtRocketMQTemplateConfiguration修饰的bean(必许继承RocketMQTemplate)2.RocketMQAutoConfiguration...原创 2021-11-09 14:34:00 · 494 阅读 · 0 评论 -
java 垃圾回收机制 详解整理
GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC机制 要准确理解Java的垃圾回收机制,就要从:“什么时候”,“对什么东西”,“做了什么”三个方面来具体分析。第一:“什么时候”即就是GC触发的...原创 2018-04-22 22:40:52 · 205 阅读 · 0 评论 -
java并发编程整理一
为什么使用多线程多任务的处理,提高处理速度,减少相应时间,更好的体验随着cpu的核心数量越来越多,提供了充足的硬件基础,使用多线程重复发挥机器的计算能力,合理利用资源上下文切换cpu通过给每个线程分配cpu时间片(时间片:一般几十毫秒,是cpu分配给每个线程的时间),实现多线程执行(无论单核与多核)。cpu通过不断切换线程,已达到多个线程执行的效果。每次切换到另一个线程时,...原创 2018-04-23 15:14:33 · 217 阅读 · 0 评论 -
java并发编程整理二
摘要:我们已经知道,synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸多局限性,比如响应中断等。Lock 提供了比 synchronized更广泛的锁操作,它能以更优雅的方式处理线程同步问题。本文以synchronized与Lock的对比为切入点,对Java中的Lock...原创 2018-04-23 15:15:25 · 249 阅读 · 0 评论 -
java 关于 Integer初始化
代码片段public class Test03 { public static void main(String[] args) { Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150; System. out.println( f1 == f2); //true System. o...转载 2018-04-25 15:30:23 · 13390 阅读 · 0 评论 -
java 表达式的数据类型自动提升规则
①所有的byte,short,char型的值将被提升为int型; ②如果有一个操作数是long型,计算结果是long型; ③如果有一个操作数是float型,计算结果是float型; ④如果有一个操作数是double型,计算结果是double型; 而声明为final的变量会被JVM优化,例题:byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6; ...原创 2018-04-21 16:38:42 · 331 阅读 · 0 评论 -
java内部类中间可以用super访问父类的私有方法
A B是两个内部类@Test public void testttt(){ new B().bFunc(); } class A { private void aFunc(){ System.out.println("a"); } } class B extends A{ ...原创 2018-04-27 21:43:16 · 4158 阅读 · 0 评论 -
Java动态代理之jdk动态代理和cglib
一:代理模式(静态代理) 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。 静态代理由 业务实现类、业务代理类 两部分组成。业务实现类 负责实现主要的业务方法,业务代理类负责对调用的业务方法作拦截、过滤、预处理,主要是在方法中首先进行预处理动作,然后调用业务实现类的方法,还可以规定调用后的操作。我们在需要调用业务时...转载 2018-07-30 11:39:54 · 187 阅读 · 0 评论 -
剑指offer 求1+2+3+...n
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。一下子还真没想出来,看来解答说用递归和&&的短路特点,一下子就明白了代码超级简单public int Sum_Solution(int n) { boolean value = ((n > 1) &&am...原创 2018-04-06 20:47:44 · 126 阅读 · 0 评论 -
java中遍历map的集中方法
map的遍历是经常用到的,今天就总结一下java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点先初始化一个mappublic class TestMap { public static Map<Integer, Integer> map = new Has...原创 2018-03-18 20:15:08 · 509 阅读 · 2 评论 -
java类初始化的顺序
先从最简单的说起,我们一般是这样理解的: 先初始化静态 成员/块 然后是构造代码块,最后是构造函数 看一个例子这是两个类ShunXu 和 Otherpublic class ShunXu { public ShunXu() { System.out.println("构造函数"); } public static Other othe...原创 2018-03-27 15:26:21 · 187 阅读 · 0 评论 -
java流 学习资料
Java IO流学习总结Java流操作有关的类或接口:Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据转载 2017-05-19 20:13:01 · 170 阅读 · 0 评论 -
Java中Runnable和Thread的区别
Java中Runnable和Thread的区别在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。作者:wwww1988600来源:wwww1988600的博客|转载 2017-05-22 13:09:16 · 207 阅读 · 0 评论 -
Java中Comparable和Comparator区别小结
一、Comparable简介 Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。该接口定义如下:package java.lang;impo转载 2017-12-19 00:57:10 · 163 阅读 · 0 评论 -
关于 原码 反码 与 补码
今天做leetcode 405. Convert a Number to Hexadecimal要求把一个数转化成二进制十六进制,是补码形式的正数的时候很容易,但到了负数就有点懵逼了.然后恶补了一下原码 反码 补码 的知识,成功解题1. 原码所谓原码就是符号位加上数字的二进制表示,int为例,第一位表示符号 (0正数 1负数)简单期间一个字节表示+7的原码为: 000...原创 2018-03-17 14:31:14 · 643 阅读 · 0 评论 -
Java中数组复制的几种方法
/** * @author zhengbinMac */public class Test { public static void main(String[] args) { int[] array1 = {1,2,3,4,5}; // 1.通过for循环 int[] array2 = new int[5]; for(...转载 2018-03-12 01:08:15 · 150 阅读 · 0 评论 -
java复习之 String,StringBuffer,StringBuilder
最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正。 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,在这...原创 2018-03-20 00:01:00 · 155 阅读 · 0 评论 -
java复习之 Vector、ArrayList和LinkedList 的区别
ArrayList 和Vector他们底层的实现都是一样的,都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢。Vector中的方法由于添加了synchronized修饰,因此Vector是线程安全的容器,但性能上较ArrayList差,因此已经是Java中的遗留容器。...转载 2018-03-20 00:05:40 · 159 阅读 · 0 评论 -
java复习之HashMap和Hashtable的区别
1.两者继承结构不同 虽然都实现了Map、Cloneable、Serializable三个接口。但是HashMap继承自抽象类AbstractMap,而HashTable继承自抽象类Dictionary。其中Dictionary类是一个已经被废弃的类,这一点我们可以从它代码的注释中看到:以下代码及注释来自java.util.Dictionary* <strong>NOTE...转载 2018-03-20 00:29:14 · 143 阅读 · 0 评论 -
SSM框架pom配置文件
<properties> <!-- 设置项目编码编码 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reportin...原创 2018-03-20 14:28:41 · 277 阅读 · 0 评论 -
java中的Iterator和Iterable 区别
java.lang.Iterable java.util.Iterator 来自百度知道: Iterator是迭代器类,而Iterable是接口。 好多类都实现了Iterable接口,这样对象就可以调用iterator()方法。 一般都是结合着用,比如 HashMap类就实现了Iterable接口,而要访问或打印出Map中所有内容时,就可以这样: HashMap hashMap;转载 2017-11-19 00:27:25 · 163 阅读 · 0 评论