自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

在风雨中奔跑

借助互联网的力量

  • 博客(331)
  • 资源 (10)
  • 收藏
  • 关注

原创 Java NIO和BIO读写简单比较

通过对文件的读写所花的时间来进行比较。一、读写的文件二、实例代码package nio;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.nio.ByteBuffer;import java.nio.channels.FileCha

2017-03-19 15:30:14 1827 2

原创 Java NIO笔记之Buffer

一个Buffer对象是固定数量的大小的数据容器,作用是一个存储器或者分段运输区。     缓冲区的工作与通道紧密联系。通道是I/O传输发生时通过的入口,而缓冲区是这些数据传输的来源或目标。对于离开缓冲区的传输,您想传递出去的数据被置于一个缓冲区,被传送到通道。对于传回缓冲区的传输,一个通道将数据放置在您所提供的缓冲区中。这种在协同对象(通常是您所写的对象以及一到多个Channel对象)之间进行的缓

2017-03-12 16:55:29 577

原创 Scalable IO in Java的代码实现

最近在学习NIO相关的知识部分,在学习的时候,发现Doug Lea大神的一个PPT地址,里面的内容写的非常好,很值得学习,具体内容可以参见PPT和网上的文章,自己根据PPT中的例子和描述,自己将代码补充了一下。下面主要是PPT中的代码和实例。1.Basic Reactor Designpackage basic;import java.io.IOException;imp

2017-03-10 22:30:58 1566 2

原创 Java NIO笔记之IO基础概念

1.缓冲区 缓冲区是所有IO的基础,”输入/输出”就是将数据移进或移除缓冲区。进程IO操作的执行也是向操作系统发送请求,让它要么将缓冲区的数据排干(写),要么将缓冲区的填满数据(读)。 图 1-1 简单描述了数据从外部磁盘向运行中的进程的内存区域移动的过程。进程使用 read()系统调用,要求其缓冲区被填满。内核随即向磁盘控制硬件发出命令,要求其从磁盘读取数据。磁盘控制器把数据直接写

2017-03-06 00:04:09 621

原创 Java NIO笔记之内存映射文件

大致的原理图如下: FileChannel提供了一个map()的方法,该方法可以在一个打开的文件和一个特殊类型的ByteBuffer之间建立一个虚拟内存映射。在FileChannel上调用map( )方法会创建一个由磁盘文件支持的虚拟内存映射(virtual memory mapping)并在那块虚拟内存空间外部封装一个MappedByteBuffer对象。 MappedByteBuffer

2017-03-02 00:00:36 673

原创 Java IO字符流常见类进行分析(四)

一、Reader 用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。 ready() 判断是否准备读取此流。 read() 读取单个字符,这个方法将会阻塞,直到字符可用。 二、BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而实现字

2017-02-23 22:46:46 411

原创 Java IO字节输出流常见类进行分析(三)

一、OutputStream 一个抽象类,所有字节输出流的父类,一个输出流可以接受要输出的字节和发送到目的位置。 write(int):将一个字节输出。 flush():刷出数据,将缓冲区的数据刷出到目的地。 close():关闭流,是否系统资源,关闭之后不能重复打开并接不能重复打开。 二、ByteArrayOutputStream 将数据写入到数组中,缓冲区自动的增长。关闭流没有影响,

2017-02-23 22:18:35 506

原创 Java IO字节输入流常见类进行分析(二)

一、FileInputStream 从文件系统中读取一个文件转换成的字节 数据结构:public class FileInputStream extends InputStream{ /* File Descriptor - handle to the open file */ private final FileDescriptor fd; /* The path of

2017-02-21 23:17:45 907

原创 Java IO字节输入流常见类进行分析(一)

一、InputStream 所有字节输入的父类,是一个抽象类。 public abstract int read() throws IOException从流中读取下一个字节的数据,返回的数据是int类型的范围在0~255之间,如果流中没有数据,将会返回-1,这个方法将会阻塞直到流中有数据可用,这是一个抽象方法,子类必须提供方法的实现。 public int read(byte b[]) thr

2017-02-19 23:55:42 1183

转载 Java IO流整体结构

Java IO 部分类图结构:IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流字节流和字符流的区别读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。结论:只要是处理纯文本数据

2017-02-14 09:03:21 526

原创 java的四种引用

在java中引用分为4中,强引用(Strong Reference),弱引用(WeakReference),软引用(SoftReference),虚引用(PhantomReference)1.强引用        强引用是我们在编程过程中使用的最简单的引用,如代码String s=”abc”中变量s就是字符串对象”abc”  的   一个强引用。任何被强引用指向的对象都不能被垃圾回收器回收

2017-02-11 20:54:54 451

原创 Java并发之工具类CyclicBarrier

CyclicBarrier是java并发的工具类,它允许一组线程互相等待,直到到达某个公共屏障点。因为该barrier 在释放等待线程后可以重用,所以称它为循环的barrier。CyclicBarrier 支持一个可选的 Runnable 命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次。若在继续所有参与线程之前更新共享状态。 看一下使用实例imp

2017-01-05 00:28:08 471

原创 Java并发之阻塞队列(三)

SynchronousQueue是阻塞队列的一种,每一次insert操作必须等在另外一个线程的remove操作,同步队列没有任何容器,甚至一个队列容器都没有.同步队列类似于 CSP 和 Ada 中使用的 rendezvous 信道。它非常适合于传递性设计,在这种设计中,在一个线程中运行的对象要将某些信息、事件或任务传递给在另一个线程中运行的对象,它就必须与该对象同步。对于正在等待的生产者和使用

2017-01-02 19:10:34 407

原创 Java并发之阻塞队列(二)

LinkedBlockingQueue一个由链表组合而成的有界阻塞队列. 1.LinkedBlockingQueue的数据结构 采用的是单链表结构 2.LinkedBlockingQueue源码分析 - 2.1继承关系public class LinkedBlockingQueue<E> extends AbstractQueue<E> implements Block

2017-01-01 12:45:52 363

原创 Java并发之阻塞队列(一)

1.阻塞队列是一个增加了2个附加操作的队列,这2个操作是:当队列中元素为空时,获取元素线程会等待队列不为空,当队列满时,存储线程会等待队列中有空闲才会操作.这种操作常用于生产者和消费者的场景。阻塞队列提供了四种处理方法: 方法\处理方式 抛出异常 返回特殊值 一直阻塞 超时退出 插入方法 add(e) offer(e) put(e) offer(e,time,u

2016-12-31 12:49:38 557 1

原创 Java并发之线程池(三)

一、前言2016年即将过去,要抓紧时间,夯实java基础知识部分,为以后学习的新的知识做准备。二、线程池基本原理图                               三、ThreadPoolExecutor的内部结构 1.Worker在里面是一个核心的内部类 private final class Worker extends Abst

2016-12-24 23:07:29 628

原创 Java并发之线程池Executors(二)

Executors: 一个工厂类和提供了一些工具方法,提供了返回ExecutorService,ScheduledExecutorService,ThreadFactory,Callable方法 提供了返回线程池的方法,都是静态方法例如: 一、部分方法列表public static ExecutorService newFixedThreadPool(int nThreads); //创建一个

2016-12-22 23:32:50 389

原创 Java并发之线程池(一)

1.线程池的继承关系图2.线程池架构图 3.部分结构和类的分析 3.1Executor 从上图可以看出Executor线程池的根接口,代码如下:public interface Executor { /** * Executes the given command at some time in the future. The command *

2016-12-21 22:46:24 439

原创 Thread中的interrupt(),interrupted(),isInterrupted()方法的详解

1.interrupt()   使用来中断线程作用的。除非当前线程处于中断状态,这个方法总是可以被执行的。如果当前线程被Object#wait() wait(long)或者Thread#join() join(long),sleep()方法所阻塞时,然而中断状态将被清空变成false,如果被IO/NIO阻塞,使用该方法,中断状态将被设置成true,未中断状态为false,中断状态为truepub

2016-12-18 20:44:25 1039

原创 linux下安装mysql5.7

在linux(centos)下有2种方式安装,第一种使用rpm安装在网上可以搜到,第二种使用压缩包方式,我这里是采用压缩包方式。1.这里我将mysql安装在/usr/local/mysql目录里面,也可以安装在其他地方mkdir /usr/local/mysql2.下载mysql压缩包 wget http://dev.MySQL.com/get/Downloads/MySQL-5.

2016-12-03 22:10:17 12317

原创 mysql中排序再分页遇到的重复数据

用一个简单实例,对遇到的问题复盘一下。  1.新建测试表 test_ordercreate table test_order( id int(11) not null auto_increment primary key, name varchar(10) not null, create_time datetime not null, state int(1) default '1

2016-11-30 22:50:55 6150 2

原创 项目部署到Tomcat中classes目录中配置文件不存在问题

注:主要是是根据我个人的情况来解决,并不是通用的方法。主要将output设置为projectName/target/classes,就可以解决。

2016-11-10 00:55:34 2742

原创 Java并发之AtomicInteger源码分析

一、AtomicInteger的数据结构二、构造方法

2016-10-29 22:22:26 514

翻译 Java原子变量

在 java.util.concurrent.atomic包下的类,在单个变量操作是支持原子操作的。其中的类有get和set方法和volatile变量的read和write方法一样,然而,一个set方法和随后的get方法在操作同一个变量的时候有一种happens-before关系原子的compareAndSet方法保证了内存的一致性的特性,然而在做一些简单的算术操作应用于integer原子

2016-10-29 19:24:33 353

原创 Thread源码浅析

一、Thread类的数据结构class Thread implements Runnable { //... private char name[];//线程的名字 private int priority;//线程的优先级 //... /* Whether or not the thread is a daemon thr

2016-10-29 00:09:25 397

原创 Java并发之CountDownLatch源码分析

CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。内部采用的公平锁和共享锁的机制实现。一、CountDownLatch的构造函数(采用的是一种公平锁机制)public CountDownLatch(int count) { if (count < 0) throw new IllegalArgumen

2016-10-07 23:50:58 4693 4

原创 Java并发之Semaphore的源码分析

Semaphore是一个计数信号量,采用的是共享锁的方式来控制。主要对下面2个方法进行分析:acquire(int)来获取信号量,直到只有一个可以用或者出现中断。release(int)用来释放信号量,将信号量数量返回给Semaphorepublic void acquire(int permits) throws InterruptedException {

2016-10-06 23:06:11 1492

原创 Java并发之synchronized的解析

在JDK中没有太多的对synchronzied的解析,主要是同步作用。下面通过jvm的中synchronizer.cpp的源码来分析在这里可以下载jvm源码:http://hg.openjdk.java.net/synchronzier.cpp的目录在:hotspot-9646293b9637\src\share\vm\runtimesynchronized同步底层使用JNI调用Obj

2016-10-06 16:56:07 1146

原创 Java动态代理Proxy类的解析

Java动态代理Proxy类的解析使用过代理的,对Proxy不会感到陌生,主要分析Proxy类的内部结构。一、Proxy类的结构 /** * a cache of proxy classes * 缓存java代理类 */ private static final WeakCache<ClassLoader, Class<?>[], Class<?>>

2016-09-17 11:28:24 3675 1

原创 Java反射中getXXX和getDeclaredXXX的解析

今天复习一下Java反射部分知识,想获得一写新的知识点,在网上搜了一遍基本差不多的内容。讲讲getDeclaredXXX()和getXXX(),从网上搜的知识来看说,getDeclaredXXX()能访问私有的方法或属性,getXXX()只能访问公有的方法或属性,我之前也停留在这种水平,下面分享一下今天的学习。分析getFields VS getDeclaredFields,其他的类似。

2016-09-14 00:25:36 1234

原创 使用Ant与Junit进行自动化测试

使用Ant与Junit组合进行测试。1.项目结构图:2.文件代码Calculator.javapackage com.test.junit;public class Calculator{ public int add(int a, int b) { return a+b; } public int substact(int a, int b) { re

2016-08-14 23:55:02 3623

原创 使用Ant自动构建Java项目成jar包配置

使用Ant很方便将Java项目打成jar包,下面是自己写的一些配置。build.properties#set configurationtarget.dir=targettargetclasses.dir=target/classestargetlib.dir=target/libsourceclasses.dir=binsourcelib.dir=libsrc.dir=src

2016-08-14 21:57:49 2711

原创 使用Cobertura的命令行方式测试代码覆盖率

一、简介               Cobertura 是一种开源工具,它通过检测基本的代码,并观察在测试包运行时执行了哪些代码和没有执行哪些代码,来测量测试覆盖率。     下载Cobertura    http://cobertura.github.io/cobertura/二、实例            1.新建一个项目junit01,结构如下:

2016-08-13 11:19:29 4525

原创 使用JDBC遇到SQL关键字in的问题

今天使用JDBC遇到SQL关键字in的问题String sql = "select sum(oil_mass),count(oil_id) from oil_bill where oil_id in (?) ";...PreparedStatement ps = conn.prepareStatement(sql);ps.setString(stationIds);//11,12,1

2016-08-03 22:46:39 4485 1

原创 Junit4部分注解

@BeforeClass:这个注解修饰public static void无参数的方法。修饰的方法运行在所有方法之前(包括@Before修饰的方法和类的默认构造方法前),而且只运行一次,同时会先执行父类的@BeforeClass修饰的方法(PS:子类不能重写父类方法)。@Before:从文档和源码中可以知道,作用范围是运行时(@Retention(value=RUNTIME)),目标是在方法上

2016-08-01 21:30:56 546

原创 MySQL使用like出现 操作MySQL数据库报出:Parameter index out of range (1 > number of parameters

...sql = "...where 1=1  and s.content like '%?%'";sqlValue.add(content);...一直出现错误Parameter index out of range (1 > number of parameters, which is 0)自己修改 sql = "...where 1=1  and s.content li

2016-08-01 08:56:23 1164

原创 Class类源码浅析

在java运行的应用中,类和接口代表着Class的实例。枚举是类的一种,注解是接口的一种,数组是属于类。Class的构造函数//只允许JVM创建Class对象private Class() {} Class的部分函数通过全类名,获取ClassClass forName(String className) 通过Class对象获取类的实例T newInstance() 获取类的名称,

2016-07-12 19:32:37 610

翻译 java泛型通配符

考虑到常规打印集合所有元素的问题,然而你将写一个比较好的版本(jdk1.5以前)void printCollection(Collection c) { Iterator i = c.iterator(); for (k = 0; k < c.size(); k++) { System.out.println(i.next()); }}然而有一个幼稚的

2016-07-09 14:36:19 557

原创 Java中的反射和内省简单实例

1.反射和内省         反射式在运行状态把Java类中的各种成分映射成相应的Java类,可以动态的获取所有的属性以及动态调用任意一个方法,强调的是运行状态。      内省机制是通过反射来实现的,BeanInfo用来暴露一个bean的属性、方法和事件,以后我们就可以操纵该JavaBean的属性。2.反射和内省的图一个简

2016-05-22 17:23:47 547

原创 [LeetCode]Flatten Binary Tree to Linked List

Given a binary tree, flatten it to a linked list in-place.For example,Given 1 / \ 2 5 / \ \ 3 4 6The flattened tree should look like: 1

2016-04-27 11:19:45 352

cobertura测试代码

cobertura测试代码

2016-08-13

apache-cxf-2.2.3.zip

apache-cxf-2.2.3.zip

2015-12-18

Struts2帮助文档

struts2帮助文档,一个全面的struts2的帮助文档,包含了所有的struts2中的类。

2014-11-17

谷歌黑板报数学之美

课件中有关于数学方面的知识,讲述了有关计算机算法方面的知识一个不错的资料

2013-09-11

c++思想编程

c++ 相关资料,里面有4个压缩包 有不同的章节。

2013-09-11

c++ 背包算法九讲

里面含有c++背包算法,是一个不错的学习资料。

2013-07-28

c++自学资料

c++自学资料

2013-05-28

c++资料课件

c++资料课件

2013-05-28

空空如也

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

TA关注的人

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