![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 85
zoQ
取次花丛懒回顾,半缘修道半缘君。
展开
-
java 多种文件复制方式(1g文件和4g文件)
java8,测试1g文件copy和4g文件拷贝时效率vm参数设置: -XX:+PrintGCDetails -Xmx1G -Xms1G源码import java.io.*;import java.nio.IntBuffer;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel;impor...原创 2018-09-01 14:45:48 · 829 阅读 · 0 评论 -
Java粗浅认识-容器简介
容器简介java.util.Collection java 1.2集合,表示一组对象,在里面的对象称为元素,有些有序,有些无序,有些可以重复,有些不能重复,有些可以添加null,有些不能添加null,有些是线程安全的,有些线程不安全contains(Object o),调用元素的equals(e)线性集合:数组,链表,数据随机访问时间复杂度O(1),链表访问元素O(n)Collect...原创 2018-12-21 14:40:42 · 150 阅读 · 0 评论 -
Java粗浅认识-并发编程(一)-线程简介
线程简介进程,操作系统中分配资源的基本单元,线程,操作系统中运行的基本单元,在一个进程中可以包含一个或多个线程,进程间通信,资源共享效率低,在同一个进程中,所有线程共享资源。线程在使用时,也存在各种问题,线程安全性,线程活跃性,线程性能线程安全性在多线程环境中,能够正确地处理多个线程之间的共享变量,使程序功能正确完成,这里的正确完成,就是每个线程得到预期值。示例代码中,thre...原创 2018-12-21 17:32:09 · 183 阅读 · 0 评论 -
Java粗浅认识-I/O(二)-NIO
NIO简介什么是Java NIO,nio在java1.4时新增,叫做new I/O,就是新的I/O,既是在基于1.0出现的I/O Stream操作之上的新改变,包括,新的 I/O通信模型,如Buffer,Channels,多路复用(Selector);基于Perl样式正则表达式的模式匹配工具。java.nio.Buffer一个特点原始数据类型(并不包括如String等类)的集合,提供...原创 2018-12-17 17:29:12 · 151 阅读 · 0 评论 -
Java粗浅认识-并发编程(二)-线程状态
线程状态线程状态在windows,linux和android等OS中状态都是不一致的,Java对线程状态做了一个抽象。在java中线程状态由Thread内部内State表示java.lang.Thread.StateThese states are virtual machine states which do not reflect any operating system th...原创 2018-12-22 22:49:47 · 242 阅读 · 0 评论 -
Java粗浅认识-I/O(三)-NIO2
Nio2什么是Java Nio2,java Nio2是在java 7新增内容,在java1.4 nio的基础上再次对I/O模型的增强,新增Path类,Files工具类,Paths工具类,主要是为了方便文件、目录的操作。java.nio.file.Path一个Path代表了一个在本地文件系统的一个路径1.创建一个path类 /** * 创建一个Path类 ...原创 2018-12-17 23:23:46 · 203 阅读 · 0 评论 -
Java粗浅认识-并发编程(三)-线程启动
线程启动实现java.lang.Runnable常用方式 public static class Task implements Runnable { @Override public void run() { System.out.println("执行任务。"); } }启动线程 ...原创 2018-12-23 13:12:10 · 172 阅读 · 0 评论 -
Java粗浅认识-并发编程(四)-线程间通信
线程间通信 线程间通信,就是对同进程类共享资源的安全访问,Java中通过AQS(java.util.concurrent.locks.AbstractQueuedSynchronizer)同步器来实现资源安全访问,常见基础工具类型,java.util.concurrent.CountDownLatch(java1.5)、java.util.concurrent.Semaphore(java1....原创 2018-12-23 15:20:30 · 200 阅读 · 0 评论 -
Java粗浅认识-I/O(四)-AIO
AIO什么是AIO,既是异步IO,这里的异步对照io第一篇里面异步IO流程图,在请求数据和回传数据两个阶段都是交给操作系统内核态异步处理,无需用户态阻塞等待,Java1.7中新增处理异步IO的类,AsynchronousFileChannel、AsynchronousServerSocketChannel、AsynchronousSocketChannel、AsynchronousChanne...原创 2018-12-18 12:52:33 · 222 阅读 · 0 评论 -
Java粗浅认识-网络编程(二)-网络通信
单线程模型服务端绑定一个端口,然后接收请求,每次请求就处理,后续请求进来时,等待之前的任务处理完成,如果任务处理非常快,也是不会有明显阻塞的。单线程模型服务端代码展示文件上传后处理逻辑,在一个while(true)中阻塞等待accept,由于是演示网络通信,这里的文件I/O缓存直接使用的是一个byte[1<<14] = 16k的容量,在项目中可以写成循环使用的方式。p...原创 2018-12-20 16:52:30 · 147 阅读 · 0 评论 -
Java粗浅认识-I/O(一)-I/O简介
I/OIO到底是什么?I/O是(Input和Output)输入输出,在操作系统层面,Input就是从输入设备(磁盘驱动器、网络和终端)读取数据到内存中,Output就是从内存中把数据输出到输出设备中(磁盘驱动器、网络和终端),而这些输入输出设备都是在Linux系统当中,所有的输入、输出设备都被抽象化为文件,二文件就是一个n个字节的序列,文件又被分类为普通文件(二进制和文本),目录,套接字(用...原创 2018-12-14 22:43:32 · 303 阅读 · 0 评论 -
MappedByteBuffer 读取超过2G文件
MappedByteBuffer处理大文件,一次只能读2G内容到内存中,为了读取大文件,需要循环读取处理。protected void head() { //512m long length = 1L << 29; //4g long _4G = 1L << 32; long cur =...原创 2018-08-31 14:36:05 · 5010 阅读 · 3 评论 -
Mybatis插件源码解读
一、责任链模式Mybatis插件按照`责任链模式`实现。[责任链,菜鸟教程](http://www.runoob.com/design-pattern/chain-of-responsibility-pattern.html)最核心的每个Logger的logMessage()方法都可以选择自己执行或者传递给下一个执行,从而形成了一个链。package cn.baopz.mod...原创 2018-09-13 22:02:42 · 458 阅读 · 0 评论 -
Java粗浅认识-Java 8 lambda 表达式
一、lambda表达式实例提到lambda表达式,我们一般用的最多的就是foreach遍历List、Set、Queue、Map等。/** * 容器forEache遍历 */ public static void forEach() { //list List<String> list = new ArrayList&...原创 2018-09-24 11:15:05 · 231 阅读 · 2 评论 -
logback.xml模版
一、maven导入必要的包必要包,包含三个(logback-classic、logback-core、slf4j-api),高版本的logback-classic默认导入了logback-core和slf4j-api,所以,在maven导入后,可以自行确认是否默认导入 <dependency> <groupId>ch.qos....原创 2018-10-30 15:44:39 · 557 阅读 · 0 评论 -
Java粗浅认识-java简介
简介java 是1991年是为了交互式电视设计,sun公司在1996年发布java1.0版本,java的特点是“一次编译,到处执行”,借助于在浏览器上可执行java apple,渐渐流行起来,在1999年发布java1.2,分为javaee、javase、javame。2006年11月,sun,通过GPL条款,开源了大部分jvm源码2009年oracle收购了javaJava的版本的...原创 2018-12-14 13:56:33 · 4191 阅读 · 2 评论 -
Java粗浅认识-网络编程(一)-网络通信模型简介
网络通信网络通信,就是进程间的一种通信方式,网络通信都采用客户端-服务端模型,当然与之相对的就是进程内部的通信(就是后面要讲的多线程编程里面的东西,包括同步,信号量)。unix网络通信关于网络通信I/O多路复用,select(基于轮询,支持少数文件描述符)、poll(基于轮询,支撑大量文件描述符)、epoll(系统计算文件描述数量,基于回调)select 在初始化时,指定描述符...原创 2018-12-20 13:30:24 · 273 阅读 · 0 评论 -
Java粗浅认识-并发编程(五)-线程池
线程池先来总揽一下线程池结构以上是线程池结构,常用的工具java.util.concurrent.Executors结构如下在Executors中常用的方法Executors.newCachedThreadPool()创建线程池核心poolSize = 0,最大poolSize=Integer.MAX_VALUE,线程任务执行完后,如果没有新任务,会在60s后被回收...原创 2018-12-24 11:12:47 · 253 阅读 · 0 评论