- 博客(19)
- 资源 (45)
- 收藏
- 关注
原创 使用DelayQueue 和 FutureTask 实现java中的缓存
使用DelayQueue、ConcurrentHashMap、FutureTask实现的缓存工具类。DelayQueue 简介DelayQueue是一个支持延时获取元素的无界阻塞队列。DelayQueue内部队列使用PriorityQueue来实现。队列中的元素必须实现Delayed接口,在创建元素时可以指定多久才能从队列中获取当前元素。只有在延迟期满时才能从队列中提取元素。DelayQueue非常
2017-08-01 18:11:44 2821
原创 Java 使用 endorsed 覆盖jdk提供的类
在分析 Tomcat catalina.bat 原理解析时候,我们发现在启动tomcat的参数中存在 -Djava.endorsed.dirs 参数 如下图: -Djava.endorsed.dirsjava提供了endorsed技术: 关于 endorsed :可以的简单理解为 -Djava.endorsed.dirs 指定的目录面放置的jar文件,将有覆盖系统API的功能。但是能够覆盖的类
2017-08-27 14:31:18 4022
原创 Tomcat catalina.bat 原理解析
tomcat 的真正启动是在 catalina.bat 设置并启动的。startup.bat 只是找到catalina.bat 然后执行catalina.bat 来启动tomat的。下面我们来分析下catalina.bat验证CATALINA_HOME 环境变量验证CATALINA_HOME 设置是否正确,如果不正确,重新设置CATALINA_HOME 环境变量。如果在CATALINA_HOME
2017-08-27 14:30:06 4011
原创 Tomcat startup.bat 原理分析
startup.bat 解析验证CATALINA_HOME 环境变量是否设置,如果没有设置则通过CATALINA_HOME/bin目录下查找catalina.bat文件来确定CATALINA_HOME环境变量是否有效,如果没有找到catalina.bat 则goto end,结束。 验证catalina.bat是否存在,如果不能存在则结束。 判断启动 startup.bat 是否有参数,如果有参
2017-08-27 14:29:16 1780
原创 使用 NIO 实现 echo 服务器
NIO相关知识点IO、NIO、AIO 内部原理分析 NIO 之 Selector实现原理 NIO 之 Channel实现原理 NIO 之 ByteBuffer实现原理服务器使用NIO来实现一个echo协议的服务器。 echo协议简单也很有用,可以测试网络连接。消息的格式为:消息长度(int)+消息内容通过消息长度来进行socket分包,防止读取出现半包、粘包等问题。服务端import jav
2017-08-21 15:53:10 1855
原创 IO、NIO、AIO 内部原理分析
相关文章NIO 之 Selector实现原理 NIO 之 Channel实现原理 NIO 之 ByteBuffer实现原理阻塞IO所有的读写IO都是阻塞操作。多路复用模型select/poll 从程序的角度解释: 将 channel 注册到 seletor 上,通过轮询channel是否就绪,将就绪的channel返回。epoll 将 channel 注册到 selector 上,基于
2017-08-21 15:52:07 5677
原创 NIO 之 Selector实现原理
相关文章NIO 之 ByteBuffer实现原理 NIO 之 Channel实现原理 NIO 之 Selector实现原理概述Selector允许单线程处理多个 Channel。如果你的应用打开了多个连接(通道),但每个连接的流量都很低,使用Selector就会很方便。例如,在一个聊天服务器中。这是在一个单线程中使用一个Selector处理3个Channel的图示: 要使用Selector
2017-08-21 15:50:52 2279
原创 NIO 之 Channel实现原理
相关文章IO、NIO、AIO 内部原理分析 NIO 之 Selector实现原理 NIO 之 ByteBuffer实现原理NIO概述Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors在传统IO中,流是基于字节的方式进行读写的。 在NIO中,使用通道(Channel)基于缓冲区数据块的读写。Channel 和 IO 流的区别Java NIO的通道类
2017-08-21 15:50:04 2519
原创 NIO 之 ByteBuffer实现原理
相关文章IO、NIO、AIO 内部原理分析 NIO 之 Selector实现原理 NIO 之 Channel实现原理前言Java NIO 主要由下面3部分组成:BufferChannelSelector在传统IO中,流是基于字节的方式进行读写的。 在NIO中,使用通道(Channel)基于缓冲区数据块的读写。流是基于字节一个一个的读取和写入。 通道是基于块的方式进行读取和写入。Buf
2017-08-21 15:48:57 3601
原创 高亮标红
简单实用,哈哈。 转载原文地址:点击这里import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.util.Comparator;import java.util.HashSet;import j
2017-08-21 15:47:25 1969
原创 Socket 实现聊天功能
需要提前了解知识点 java.net.Socket 解析 java.net.ServerSocket 解析使用socket实现一个端对端聊天系统。消息的格式为:消息长度(int)+消息内容通过消息长度来进行socket分包,防止读取出现半包、粘包等问题。服务端代码import java.io.IOException;import java.io.InputStream;import java
2017-08-15 10:41:58 1916
原创 java.net.ServerSocket 解析
构造public ServerSocket() 构造一个ServerSocket,但不绑定任何端口,所以也不能接受任何的请求连接。以后可以通过bing()方法来进行绑定。public ServerSocket(int port) 通过一个端口来构造一个ServerSocket对象。 默认的tcp队列大小为50. 默认监听本地所有的ip地址(如果有多个网卡)。 TCP分为全连接队列和半连
2017-08-15 10:41:15 1868
原创 java.net.Socket 解析
Socket构造public Socket() 构造一个Socket,因为没有指定目标主机和端口,所以不会通过网络进行连接。public Socket(Proxy proxy) 通过一个代理构建一个未连接的Socket。public Socket(String host, int port) 通过一个主机和端口构建一个Socket。构造Socket的时候会连接目标主机,如果连接不到目标主
2017-08-15 10:40:19 2097
原创 HttpURLConnection 中Cookie 使用
如果想通过 HttpURLConnection 访问网站,网站返回cookie信息,下次再通过HttpURLConnection访问时,把网站返回 cookie信息再返回给该网站。可以使用下面代码。CookieManager manager = new CookieManager();CookieHandler.setDefault(manager);通过这两行代码就可以把网站返回的cookie信
2017-08-10 23:00:30 18903
原创 CookiePolicy 原理解析
CookiePolicy策略可以精确控制程序接收那些cookie,拒绝接受那些cookie。CookiePolicy 策略机制解析public interface CookiePolicy { public static final CookiePolicy ACCEPT_ALL = new CookiePolicy(){ public boolean shouldAccept
2017-08-10 22:59:31 7872
原创 java中设置网络代理
代理服务器概述许多系统通过代理服务器访问Web,有时还会访问Internet的其它非HTTP部分。代理服务器接收到本地客户端到远程服务器的请求。代理服务器向远程服务器发出请求,再将结果转发回本地客户端。代理服务器作用:1.防止攻击 隐藏自己的真实地址信息,还可隐藏自己的IP,防止被黑客攻击。 2.缓存 把经常访问的一些文档、页面缓存到代理服务器上,这样,可以减少访问从远程服务器上下载文档、页面
2017-08-10 22:58:08 31528 1
原创 InetAddress 解析
IP地址分为IPv4 和IPv6。IPv44字节长的ip称为IPv4.目前大部分ip都是IPv4。 IPv4地址一般写为四哥无符号的字节,每个字节范围从0到255,最高字节在前面。为方便人们查看,各字节用点号分割。 例如:192.168.1.100.这称为点分四段格式。IPv616字节长的ip成为IPv6. IPv6地址通常些微冒号分割的8个区块,每个区块4个十六进制数字。 例如:2400:c
2017-08-09 16:07:54 5742
原创 HTTP 方法
HTTP协议 所有的方法 方法 说明 支持的HTTP协议版本 GET 获得资源 1.0、 1.1 POST 传输实体主体 1.0、 1.1 PUT 传输文件 1.0、 1.1 DELETE 删除文件 1.0、 1.1 HEAD 获得HTTP协议首部 1.0、 1.1 OPTIONS 询问HTTP服务器支持的HTTP协议的方
2017-08-04 09:48:09 1938
原创 URL 源码分析
需要了解的知识点: URI、 URL 和 URN 的区别 URI 源码分析URL 和URI的最大区别是: URL可以定位到一个资源,也就是说,URL类可以访问URL指定的资源信息。 URI只是标识一个对象,所以URI类无法获取URI标识的对象。下面通过源码来分析URL类的实现细节:构造public URL(String spec);public URL(String protocol, S
2017-08-01 17:09:03 3145
HTML5 世界地图 划分世界区域并显示国家名
2017-12-20
jdk源码share.rar
2017-09-07
openjdk8 源码 包括 jvm的实现
2017-09-07
JAVA网络编程 第4版.pdf
2017-09-07
MySQL必知必会(文字版).pdf
2017-09-07
Java数据结构和算法.(第二版).pdf
2017-09-07
Java RESTful Web Service实战.pdf
2017-09-07
MySQL性能调优与架构设计--全册.pdf
2017-09-07
mysql技术内幕InnoDB存储引擎.pdf
2017-09-07
深入java虚拟机 周志明
2017-09-07
javaFX 基础教程
2015-05-26
GB8567-2006计算机软件文档编制规范
2014-05-06
axis 实现 webservice 例子
2012-08-24
web 编译器
2011-12-06
JNI实例 Java调用DLL c++调用Java
2010-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人