自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (3)
  • 收藏
  • 关注

原创 【Reflect】动态类加载和重载

Java允许你在运行期动态加载和重载类,这个功能并没有看上去哪么简单。类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载的时机类被加载到虚拟级内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(loading)、验证(Verification)、

2018-02-23 23:19:38 371

原创 【Reflect】动态代理(Proxy)

动态代理概述利用Java反射机制你可以在运行期动态的创建接口的实现。java.lang.reflect.Proxy类就可以实现这一功能。这个类的名字就是为什么把动态接口实现叫做动态代理。动态的代理的用途十分广泛,比如数据库连接和事物管理(transaction management)还有单元测试时用到的动态mock对象以及AOP中的方法拦截功能等等都使用到了动态代理。创建代

2018-02-23 22:17:50 787

原创 【Reflect】数组(Array)

java.lang.reflect.ArrayJava反射机制通过java.lang.reflect.Array这个类来处理数组。不要把这个类与Java集合套件(Collections suite)中的java.util.Arrays混淆,java.util.Arrays是一个提供了遍历数组,将数组转化为集合等工具方法的类。创建一个数组Java反射机制通过java.la

2018-02-23 21:49:11 480

原创 【Reflect】泛型(generics)

Java泛型概述 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的"任意化","任意化"带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际

2018-02-23 21:23:04 440

原创 【Reflect】注解(Annotation)

利用Java反射机制可以在运行期获取Java类的注解信息。什么是注解注解是Java5的一个新特性。注解是插入你代码中的一种注释或者说是一种元数据(meta data)。这些注解信息可以在编译期使用预编译工具进行处理(pre-compiler tools),也可以在运行期使用Java反射机制进行处理。下面是一个类注解的例子:package com.lanhuigu.refle

2018-02-23 20:35:43 919

原创 【Reflect】私有变量和私有方法

在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是Java反射机制可以做到这一点。使用这个功能并不困难,在进行单元测试时这个功能非常有效。注意:这个功能只有在代码运行在单机Java应用(standalone Java application)中才会有效,就像你做单元测试或者一些常规的应用程序一样。访问私有变量要想获取私有变量你可以调用Class.getDecla

2018-02-23 12:39:06 555

原创 【Reflect】Getters和Setters

使用Java反射你可以在运行期检查一个方法的信息以及在运行期调用这个方法,使用这个功能同样可以获取指定类的getters和setters,你不能直接寻找getters和setters,你需要检查一个类所有的方法来判断哪个方法是getters和setters。getters和setters的特性如下:GetterGetter方法的名字以get开头,没有方法参数,返回一个值。

2018-02-23 12:15:41 1162

原创 【Reflect】方法(Method)

使用Java反射你可以在运行期检查一个方法的信息以及在运行期调用这个方法,通过使用java.lang.reflect.Method类就可以实现上述功能。以下实例涉及的MyObject.java公用代码:package com.lanhuigu.reflect.common;public class MyObject { /** 公开成员变量 */ public St

2018-02-23 11:44:10 557

原创 【Reflect】变量(Field)

使用Java反射机制你可以运行期检查一个类的变量信息(成员变量)或者获取或者设置变量的值。通过使用java.lang.reflect.Field类就可以实现上述功能。以下涉及实例通用代码MyObject.java:package com.lanhuigu.reflect.common;public class MyObject { /** 公开成员变量 */ pub

2018-02-22 23:14:37 570

原创 【Reflect】造器(Constructor)

利用Java的反射机制你可以检查一个类的构造方法,并且可以在运行期创建一个对象。这些功能都是通过java.lang.reflect.Constructor这个类实现的。获取Constructor对象通过Class对象来获取Constructor类的实例:Class myClass = ...//获取Class对象Constructor[] constructors = my

2018-02-22 22:08:49 666

原创 【Reflect】Class 对象

使用Java反射机制可以在运行时期检查Java类的信息,检查Java类的信息往往是你在使用Java反射机制的时候所做的第一件事情,通过获取类的信息你可以获取以下相关的内容:.Class对象.类名.修饰符.包信息.父类.实现的接口.构造器.方法.变量.注解除了上述这些内容,还有很多的信息你可以通过反射机制获得。Class对象在你想检查一

2018-02-22 18:18:13 482

原创 【Reflect】概述

什么是java反射反射是java中的非常重要的一项机制,也称做Reflection。反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射是可以让我们在运行时获取类的函数、属性、父类、接口等Class内部信息的机制。

2018-02-22 16:14:19 803

原创 【NIO】Pipe(管道)

前言Github:https://github.com/yihonglei/java-allProject:java-nio一 Java NIO概述Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。Pipe原理图:二 创建管道通过Pipe.open()方法打开...

2018-02-19 12:24:22 6173 1

原创 【NIO】DatagramChannel

前言Github:https://github.com/yihonglei/java-allProject:java-nio一 DatagramChannel概述Java NIO中的DatagramChannel定义在java.nio.channels包中,是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。二...

2018-02-19 11:04:08 3149

原创 【NIO】ServerSocketChannel

前言Github:https://github.com/yihonglei/java-allProject:java-nio一 ServerSocketChannel概述Java NIO中的ServerSocketChannel类定义在java.nio.channels包中。ServerSocketChannel是一个可以监听新进来的TCP连接的通道,就像标准IO中的Serve...

2018-02-18 21:56:39 18265 3

原创 【NIO】SocketChannel

前言Github:https://github.com/yihonglei/java-allProject:java-nioJava NIO中的SocketChannel是一个连接到TCP网络套接字的通道。如下2种方式创建SocketChannel:1)打开一个SocketChannel并连接到互联网上的某台服务器。2)一个新连接到达ServerSocketChannel时,会...

2018-02-18 21:22:06 4733

原创 【NIO】FileChannel

前言Github:https://github.com/yihonglei/java-allProject:java-nioJava NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。一 打开FileChannel在使用FileChannel之前,必须先打开它。但是,我们无法...

2018-02-18 20:23:09 5091 1

原创 【NIO】Selector(选择器)

前言Github:GitHub - yihonglei/jdk-source-code-reading: JDK source code reading(java-nio)一 Selector (选择器)概述Selector(选择器)是 Java NIO 中能够检测到一到多个 NIO 通道,并能够知道通道是否为读写事件做好准备。这样,一个单独的线程可以管理多个 Channel,从而管理多个网络连接。仅用单个线程来处理多个 Channel的好处是,只需要更少的线程来处理通道。事实上,.

2018-02-17 13:09:48 5754

原创 【NIO】通道之间数据传输

前言Github:https://github.com/yihonglei/java-allProject:java-nio在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(通道)传输到另外一个channel。通道之间数据传输方法:transferFrom(),transferTo()。一 transferFromF...

2018-02-16 23:08:17 1267

原创 【NIO】Buffer(缓冲区)

Buffer 缓冲区功能,capacity,limit,position 属性以及 flip 等方法说明。

2018-02-16 21:41:22 3508 2

原创 【NIO】Channel(通道)

FileChannel,DatagramChannel,SocketChannel,ServerSocketChannel

2018-02-16 00:37:52 2335 1

原创 【NIO】概述

前言Github:https://github.com/yihonglei/java-allProject:java-nioJava NIO全称java non-blocking IO,是JDK1.4及以上版本里提供的可以替代标准Java IO API的新IO API(New IO),为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性...

2018-02-14 23:53:34 472

原创 【IO】BufferedWriter

一 BufferedWriter概述BufferedWriter是缓冲字符输出流,它继承于Writer。BufferedWriter的作用是为其他字符输出流添加一些缓冲功能。BufferedWriter通过字符数组来缓冲数据,当缓冲区满或者用户调用flush()函数时,它就会将缓冲区的数据写入到输出流中。使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先

2018-02-12 23:35:40 1191

原创 【IO】BufferedReader

一 BufferedReader概述BufferedReader是缓冲字符输入流,它继承于Reader。BufferedReader的作用是为其他字符输入流添加一些缓冲功能。创建BufferedReader时,我们会通过它的构造函数指定某个Reader为参数。BufferedReader会将该Reader中的数据分批读取,每次读取一部分到缓冲中,操作完缓冲中的这部分数据之后,再从Reader中读...

2018-02-12 23:32:18 3886

原创 【IO】BufferedOutputStream

一 BufferedOutputStream概述BufferedOutputStream是一个缓冲输出流,通过建立这样一个缓冲输出流,应用程序可以将字节写入底层输出流,而不必为每一个字节编写一个对底层系统的调用,能够提高文件的写入效率。二 BufferedOutputStream构造器和方法分析主要字段:protected byte[] buf; // 提供内部缓冲区存储数据。protected ...

2018-02-12 22:08:28 1591

原创 【IO】BufferedInputStream

一 BufferedInputStream概述在FileInputStream中read()方法读取一个文件,每读取一个字节就要访问一次硬盘,这种读取的方式效率是很低的。即便使用read(byte b[])方法一次读取多个字节,当读取的文件较大时,也会频繁的对磁盘操作。为了减少访问磁盘的次数,提高文件读取性能,Java提供了BufferedInputStream类。BufferedInputStr...

2018-02-12 20:42:05 2092 1

原创 【IO】File

一 File概述存储在变量、数组和对象中的数据是暂时的,当程序终止时他们就会丢失,为了能够永久的保存程序中创建的数据,需要将他们存储到硬盘或光盘的文件中。而File类关心的是在磁盘上文件的存储,File类描述的是一个文件或文件夹。File类的出现是对文件系统的中的文件以及文件夹进行对象的封装。可以通过对象的思想来操作文件以及文件夹,用面向对象的方式处理问题,通过该对象的方法

2018-02-11 22:57:46 540

原创 【IO】RandomAccessFile

一 RandomAccessFile概述RandomAccessFile允许随机读写文件操作,可以读取指定位置的内容,或在指定位置写入内容。二 RandomAccessFile使用分析构造方法:public RandomAccessFile(File file, String mode)throws FileNotFoundException;public RandomAcce

2018-02-11 16:01:57 637

原创 【IO】FileOutputStream

一 FileOutputStream概述FileOutputStream往文件中写入字节流,父类为OutputStream,所以可以将FileOutputStream赋值给OutputStream使用。二 FileOutputStream使用分析FileOutputStream父类为OutputStream,其源码结构如下,构造器:public FileOutputStre

2018-02-11 12:52:10 5051

原创 【IO】FileInputStream

一 FileInputStream概述FileInputStream为文件输入流,以字节流的形式读取文件内容,比如图片文件等等。FileInputStream是InputStream的子类,我们可以把FileInputStream赋值给InputStream使用。如果我们要以字符流形式读取文件内容,可以使用FileReader类处理。二 FileInputStream实例分析

2018-02-11 11:01:09 1367

原创 【IO】OutputStream

前言GitHub:https://github.com/yihonglei/java-all一 概述OutputStream类是Java IO API中所有字节输出流的基类。二 OutputStream作用OutputStream是一个抽象类,作为所有字节输出流的基类,OutputStream作为输出流,将输出流数据写入到目标媒介。当写入到输出流的数据逐渐输出完毕时,目...

2018-02-10 21:27:37 982

原创 【IO】InputStream

InputStream类是Java IO API中所有输入流的基类。大概类图如下:一 InputStream实例根据File指定构建文件,通过FileInputStream将文件构建为输入流,FileInputStream为InputStream的子类,所以,可以将FileInputStream赋值给InputStream。然后通过InputStream的read(byte b[])方法从输入流中...

2018-02-09 13:59:47 1154

原创 【IO】字节和字符数组(ByteArrayInputStream、ByteArrayOutputStream、CharArrayReader、CharArrayWriter)

一 字节和字符数组概述在java应用程序中常用字节和字符数组临时存储数据。而这些数组通常作为数据的读取来源或者写入目的地。如果在程序运行时需要大量读取文件里的内容,可以把一个文件加载到数组中。当然也可以通过直接指定索引来读取这些数组。我们可以通过ByteArrayInputStream(字节数组输入流)、ByteArrayOutputStream(字节数组输出流)、CharArrayReader(...

2018-02-08 14:46:53 1632

原创 【IO】管道(PipedInputStream、PipedOutputStream、PipedReader、PipedWriter)

管道(PipedInputStream、PipedOutputStream、PipedReader、PipedWriter)

2018-02-07 21:10:40 3106

原创 【IO】读写文件(FileInputStream、FileOutputStream、FileReader、FileWriter、RandomAccessFile)

读写文件(FileInputStream、FileOutputStream、FileReader、FileWriter、RandomAccessFile)

2018-02-07 13:43:09 19392 3

原创 【IO】概述

一输入和输出原理Java的核心库java.io提供了全面的IO接口,但是并不是所有的IO接口。Java的IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读取。术语"输入"和"输出"一般让人很迷惑,输入是什么?输出又是什么?要理解输入和输出需要选择一个参考点,才能确定动的方向,我们可以选择内存作为参考点来理解输入和输出,则输入就可以理解为向内存输入,而输出就可以理解为从内...

2018-02-06 15:12:37 639

redis客户端管理工具

redis客户端管理工具

2017-08-16

nexus.war形式私服下载

maven私服nexus.war形式启动私服

2017-01-23

jenkins服务

2016-12-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除