JAVA
文章平均质量分 77
G-罗
土著
展开
-
Groovy的类加载机制
Java的双亲委派模型:Java的ClassLoader除了Bootstrap ClassLoader外,每个ClassLoader都有一个parent的ClassLoader,沿着parent最终会追索到Bootstrap ClassLoader;当一个ClassLoader要加载一个类时,会首先委派给parent,如果parent能载入这个类,则返回,否则这个ClassLoader才会尝试去载...原创 2018-03-08 20:26:55 · 5653 阅读 · 0 评论 -
Java Concurrentmodificationexception异常原因和解决方法
问题: 在对集合迭代的时候,如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常; 原因分析:进入报错信息,定位LinkedHashMap719行,modCount != expectedModCount 抛异常。modCount是HashMap类中的一个成员变量,表示对Map的修改次数,每次调用put()方法或者remove()方...原创 2018-03-06 10:20:58 · 1154 阅读 · 0 评论 -
Java NIO
NIO通信模型JDK1.4引入,目的是让Java支持非阻塞I/O。与Socket和ServerSocket相对应,NIO提供了SocketChannel和ServerSocketChannel两种套接字通道实现,并且支持阻塞和非阻塞两种模式。下面介绍NIO的一些概念和功能。1. 缓冲区BufferBuffer是一个对象,任何时候访问NIO中的数据,都要通过缓冲区进行操作,它包含了一些要写入或要读出...原创 2018-05-08 18:27:17 · 154 阅读 · 0 评论 -
Java BIO
BIO通信模型 BIO通信服务端,通常有一个独立的Acceptor线程负责监听客户端的连接。接收到客户端连接请求后会为每个客户端创建一个新的线程进行链路处理,处理完成后返回应答给客户端,也就是经典的请求-应答通信模型。但是随着客户端并发量上升,服务端的线程数膨胀,系统性能急剧下降,最终会导致系统不可用。Server端代码:import java.io.IOException;impor...原创 2018-05-08 11:21:52 · 1038 阅读 · 0 评论 -
五种网络I/O模型
UNIX提供了5种I/O模型分类:1. 阻塞I/O模型 最常用的模型就是阻塞I/O模型,默认情况下,所有文件的操作都是阻塞的。应用进程调用recvfrom获取数据,系统调用直到数据包被复制到用户进程的缓冲区或发生错误时返回。从调用recvfrom到系统返回的整段时间内,应用进程都是被阻塞的,因此被称为阻塞I/O模型。2. 非阻塞I/O模型 应用进程调用recvfrom获取数据,...原创 2018-05-07 16:02:04 · 874 阅读 · 0 评论 -
Objenesis,另一种实例化对象的方式
简介Objenesis是一个Java的库,主要用来创建特定的对象。由于不是所有的类都有无参构造器又或者有的类构造器是private等,在这样的情况下,如果我们还想实例化对象,class.newInstance是无法满足的。使用public class Test { private int i; public Test(int i){ this.i = i; ...原创 2018-05-27 23:10:44 · 6183 阅读 · 0 评论 -
JAVA SPI
概述SPI(Service Provider Interface),服务提供者接口,它是JDK提供的一种服务发现机制。目前在很多开源项目中使用,如common-logging,JDBC等。举个例子,我们在项目开发中经常会用到各种序列化,一般情况下,我们会定义好接口,再继承接口实现具体逻辑,如hession。如果一段时间后想替换成protobuffer,使用SPI机制,就可以通过配置文件可以...原创 2018-07-16 14:49:06 · 277 阅读 · 0 评论 -
对日志规范的思考
概述 系统上线之后,一旦发生异常,第一件事就是要弄清楚当时发生了什么,用户当时做了什么操作,环境有无影响,数据有什么变化,是不是反复发生等,然后再进一步的确定大致是哪个方面的问题。这时,日志就给我们提供了第一手的资料。基本原则● 不影响系统正常运行;● 不允许产生安全问题;● 不允许输出机密信息;● 日志可供开发人员定位问题的真正原因;● 日志可供监控系统自动...原创 2018-09-16 18:37:51 · 5013 阅读 · 1 评论