![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java源码分析
文章平均质量分 66
深入分析jdk源码
jiangfullll
这个作者很懒,什么都没留下…
展开
-
ReentrantLock 实现原理解析
ReentrantLock1.定义了一个抽象静态同步类Sync1. 继承了AQS2. 定义了抽象方法lock()3. 定义了非公平锁的tryLock,nonfairTryAcquire(int acquires) 3.1 获取当前线程 3.2 获取QAS的state 3.3 如果state为0,那么尝试通过CAS去加锁,如果加锁成功,就设置锁被当前线程独占, 如果加锁失败,返回false 3.4 如果state不为0,比较当前线程与独占线程是否相同,.原创 2021-06-26 21:32:03 · 229 阅读 · 0 评论 -
关于HashMap的一些深入探索与理解
关于HashMap的一些深入探索与理解原创 2014-06-17 23:00:01 · 1211 阅读 · 0 评论 -
HashMap,LinkedHashMap和Hashtable类的深入剖析与理解
HashMap,LinkedHashMap和Hashtable类的深入剖析与理解原创 2014-06-18 16:32:48 · 1115 阅读 · 0 评论 -
java 正则匹配提取html纯文本
java 正则匹配提取html纯文本原创 2014-07-30 10:08:11 · 5228 阅读 · 0 评论 -
多线程计算数据,然后合并数据
多线程计算数据,然后合并数据原创 2014-09-22 19:19:32 · 10337 阅读 · 0 评论 -
java注解
java注解原创 2014-09-12 10:40:59 · 1683 阅读 · 0 评论 -
java使用闭环数组自定义高性能队列
java使用闭环数组自定义高性能队列原创 2014-09-23 15:31:50 · 2852 阅读 · 0 评论 -
如何在java REST API中用GZip和Jersey压缩相应
如何在java REST API中用GZip和Jersey压缩相应翻译 2014-11-24 10:55:41 · 5240 阅读 · 0 评论 -
java反射教程(最全)
java反射教程翻译 2014-11-27 14:49:30 · 10545 阅读 · 4 评论 -
在Android实现客户端授权
在Android实现客户端授权翻译 2014-11-07 14:58:33 · 2357 阅读 · 0 评论 -
实现一个最小栈的push(int x),pop(),top(),min()方法,要求都是常量时间
实现一个最小栈的push(int x),pop(),top(),min()方法,要求都是常量时间原创 2014-12-05 14:49:35 · 2137 阅读 · 0 评论 -
找出数组中有元素比它的邻居大的元素下标
找出数组中有元素比它的邻居大的元素下标原创 2014-12-06 10:27:17 · 996 阅读 · 0 评论 -
在一个数组中找到连续的子数组最大的乘积
在一个数组中找到连续的子数组最大的乘积原创 2014-12-08 20:09:26 · 2084 阅读 · 0 评论 -
java实现蛇和梯子的游戏(单一玩家和多玩家)
java涉嫌蛇和梯子的游戏原创 2015-05-14 10:15:11 · 3173 阅读 · 0 评论 -
java的nio包的SelectionKey,Selector,SelectableChannel三者的缠绵关系概述
java的nio包的SelectionKey,Selector,SelectableChannel三者的缠绵关系概述原创 2014-07-20 13:23:54 · 1613 阅读 · 0 评论 -
关于多线程编程您不知道的 5 件事
1. 同步方法或同步代码块?您可能偶尔会思考是否要同步化这个方法调用,还是只同步化该方法的线程安全子集。在这些情况下,知道 Java 编译器何时将源代码转化为字节代码会很有用,它处理同步方法和同步代码块的方式完全不同。当 JVM 执行一个同步方法时,执行中的线程识别该方法的 method_info 结构是否有 ACC_SYNCHRONIZED 标记设置,然后它自动获取对象的锁,调用方法,最转载 2014-05-25 00:31:06 · 706 阅读 · 0 评论 -
java HashMap和HashTable的爱恨情仇
大家经常使用HashMap和HashTable,但是很少人对这两个集合的原理有一个清楚的理解,我前面翻译了这两个类的类描述,如果没有看过,先看看那撇脚的翻译。一,对于HashMap和HashTable,最直观的区别有两点:1.HashMap的key和value可以为null,HashTable的不能(抛出NullPointerException异常)2.HashMap不是线程安全的,H原创 2013-11-26 00:51:05 · 904 阅读 · 0 评论 -
mina的初始化过程分析(一)
这几天决定研究一下mina,也是我决定研究apache下面的第一个项目,我会持续更新的。研究一个框架时,有一个牛人给我说过,先找到几个主要的接口,然后先了解这几个接口提供的方法大体上都用在什么地方,然后通过写测试程序走一遍,也就基本上可以掌握其中的原理了,于是我按照他说的开始研究mina了....先来介绍一下mina的几个暴露的主要接口的作用:一,IoAcceptor:该接口的描述如下原创 2013-12-08 00:41:59 · 1392 阅读 · 0 评论 -
mina的初始化过程分析进阶(二)
AbstractIoService在初始化NioSocketAcceptor类时,会给父类AbstractPollingIoAccept的构造方法传递两个参数,即DefaultSocketSessionConfig类的实例和NioProcessor这个类对象,这个类是一个通信基类,它使用轮询来检查底层socket,并且唤醒被处理的socket。这个类在被绑定后,会操作接收和释放server s原创 2013-12-08 22:10:50 · 1097 阅读 · 0 评论 -
apache mina初学,绘制的socket初始化时依赖的类图
上图是本人刚学研究mina画的初始化连接时的部分类图关系,这两天会在把初始化的原理或者一些理解补上来原创 2013-12-06 00:54:29 · 1556 阅读 · 0 评论 -
apache mina客户端初始化分析(三)
距离上一次更新mina好长时间了,今晚把mina的client初始化补上了,快来一睹为快吧.....先调用NioSocketConnector类的构造方法,然后在这个构造方法中又初始化父类AbstractPollingIoConnector的构造方法AbstractPollingIoConnector(IoSessionConfig sessionConfig, Executor ex原创 2013-12-15 00:34:48 · 877 阅读 · 0 评论 -
apache mina 基础类研究(一)
IoService: /*Base interface for all IoAcceptor and IoConnector that provide I/O service and manage IoSession. */ 上面的英文是这个接口的描述,大概意思是:这是个一IoAcceptor和IoConnector的基础接口,它提供了一个I/O服务,并且管理着每一个连接的IoS原创 2013-12-15 23:16:29 · 829 阅读 · 0 评论 -
apache mina 基础类分析(二):AbstractService
AbstractIoService: /*Base implementation of IoService. An instance of IoService contains an Executor which will handle the incoming events. */ 上面这段英文是这个抽象类的描述,大概意思是说它是IoService的一个实现类,IoSer原创 2013-12-15 23:57:22 · 1740 阅读 · 0 评论 -
apache mina基础类分析(四): AbstractPollingIoConnector
AbstractPollingIoConnector:/** * A base class for implementing client transport using a polling strategy. The * underlying sockets will be checked in an active loop and woke up when an * socke原创 2013-12-22 17:05:58 · 1191 阅读 · 0 评论 -
apache mina 基础类分析(三):AbstractIoConnector
AbstractIoConnector:这个类继承了AbstractIoService,实现了IoConnector接口,AbstractIoService已经介绍过了,在这个类中,主要实现了一个connect()(以及重载)方法:public final ConnectFuture connect(SocketAddress remoteAddress, SocketAddress loca原创 2013-12-22 16:06:48 · 1519 阅读 · 0 评论 -
java 反射实现实体类的属性赋值
/*** * 功能: 实例化一个指定的实体,(调用该方法以前,必须调用rs.next())* 作者: jiangfuqiang* 创建日期:2014-1-10* 修改者: mender* 修改日期: modifydate* @param clazz* @param rs* @return* @throws SQLException * @throws I原创 2014-01-10 21:55:40 · 4562 阅读 · 0 评论 -
java 计算两个大数之间的乘积(非BigDecimal版)
public class JFQ_Number {/*** @param args*/public static void main(String[] args) {System.out.println("I'm sorry, you have to input a number:");BufferedReader br1 = new BufferedReader(原创 2014-03-20 11:19:25 · 1981 阅读 · 0 评论 -
算出number(一行保存一个数字)文件中和最大的连续行数,打印开始结束行号,打印最大的和
import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashMap;import java.util.Map;原创 2014-04-03 17:27:23 · 881 阅读 · 0 评论 -
巧妙的邻接表(数组实现)
文章转自:http://www.cnblogs.com/ahalei/p/3651334.html 之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。 4 51 4 94 3 81 2 52 4 61 3 7转载 2014-04-10 09:17:18 · 862 阅读 · 0 评论 -
程序员必知的8大排序(java实现)(http://www.admin10000.com/document/794.html)
8种排序之间的关系: 1、 直接插入排序 (1)基本思想: 在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 (2)实例 (3)用java实现1234转载 2014-05-10 17:45:35 · 1026 阅读 · 0 评论 -
Java 理论与实践: 正确使用 Volatile 变量
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要特性:转载 2014-05-22 23:03:17 · 570 阅读 · 0 评论 -
java HashTable的类描述翻译
这个类实现了一个hashtable,它映射键来找到相应的值。这个类中不能存入给键或者值存入空对象。要想从hashtable中存储、获取对象,该键的对象必须实现hashcode和equals方法有两个参数会影响HashTable的性能:初始化容器和载入因子。容量是hashtable容器的数量,初始化容量只用在初始化hashtable的时候。注意hashtable是开着的:防止"hash冲突"翻译 2013-11-24 19:19:09 · 997 阅读 · 0 评论