Java I/O 扩展】的更多相关文章

Java I/O 扩展 标签: Java基础 NIO Java 的NIO(新IO)和传统的IO有着相同的目的: 输入 输出 .但是NIO使用了不同的方式来处理IO,NIO利用内存映射文件(此处文件的含义可以参考Unix的名言一切皆文件)来处理IO, NIO将文件或文件的一段区域映射到内存中(类似于操作系统的虚拟内存),这样就可以像访问内存一样来访问文件了. Channel 和 Buffer是NIO中的两个核心概念: Channel是对传统的IO系统的模拟,在NIO系统中所有的数据都需要通过Cha…
java获得文件扩展名: public static void main(String[] args) throws Exception { String name = ""; String extention = ""; if(fileName.length()>0 && fileName!=null){ //--截取文件名 int i = fileName.lastIndexOf("."); if(i>-1 &am…
XML 是EXtensible Markup Language的缩写,它是一种类似于HTML的标记语言,称为可扩展标记语言,传输数据而不是显示数据,可以自定义标签,具有自我描述性是一种通用的数据交换格式,可以使数据在各种应用程序之间轻松地实现数据的交换. 1.XML语言和HTML语言在格式有点相似,HTML与XML比较: HTML中的标记是用来显示数据的,而XML中的标记用来描述数据的性质和结构. HTML是不区分大小写的,而XML是严格区分大小写的. HTML可以有多个根元素,而格式良好的XM…
byte b = -127; System.out.println(b); // -127 int b1 = b & 0xff; System.out.println(b1); // 129 b的二进制表示为:10000001 (1)符号位扩展: 11111111 11111111 11111111 10000001 = -127 (2)补零扩展: b&0xff为11111111 11111111 11111111 10000001              &   1111111…
java 的流的使用中,在字符缓冲输入流中,有一个每次读取一行数据的方法:readLine(): 在这里使用简单的继承方法对其继续扩展,使得返回每行前面添加序号 //需要导入的一些包 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.Reader; //使用继承的方法,对BufferedReader类的r…
http://www.imooc.com/video/5176 一.如何扩展Java并发知识 Java Memory Mode JMM描述了Java线程如何通过内存进行交互 happens-before原则 synchronized,volatile&final Locks &Conditon(Java1.5引入,加锁-同步通信) Java锁机制和等待条件的高层实现 java.util.concurrent.locks 线程安全性 原子性与可见性 java.util.concurrent.…
前提 最近在看JUC线程池java.util.concurrent.ThreadPoolExecutor的源码实现,其中了解到java.util.concurrent.Future的实现原理.从目前java.util.concurrent.Future的实现来看,虽然实现了异步提交任务,但是任务结果的获取过程需要主动调用Future#get()或者Future#get(long timeout, TimeUnit unit),而前者是阻塞的,后者在异步任务执行时间不确定的情况下有可能需要进行轮询…
一.java的虚拟机分为三大区域: 执行引擎, java运行内存, 类加载器 1.1.Java运行内存分为线程共享区域和线程私有区: 我们大多数初学者用的都是sun公司最早设计的Java HotSpot(TM)虚拟机 (IBM的J9也是java虚拟机, 还有openjdk也是java虚拟机) -堆常量池,方法区--都属于线程共享区域,池(公有区) -本地方法栈,虚拟机栈(我们一般关注的是这个栈),程序计数器--属于线程私有区 具体参考最下边的图 1.2.对象的回收: 可达扫描分析, 标记, 回收…
之前我说过,实现多线程的方式有4种,但是之前的文章中,我只介绍了两种,那么下面这两种,可以了解了解,不懂没关系. 之前的文章-->Java并发编程之多线程 使用ExecutorService.Callable.Future实现有返回结果的线程 使用ExecutorService.Callable.Future实现有返回结果的线程,也可以叫线程池方式. ExecutorService.Callable.Future三个接口都是属于**Executor框架.可返回值的任务必须实现Callable接口…
大家好,又见面了. 在JAVA做前后端分离的项目开发的时候,服务端需要提供接口文档供周边人员做接口的对接指导.越来越多的项目都在尝试使用一些基于代码自动生成接口文档的工具来替代由开发人员手动编写接口文档,而Swagger作为一款优秀的在线接口文档生成工具,以其功能强大.集成方便而得到了广泛的使用. 在项目中有一种非常常见的场景,就是接口的请求或者响应参数中会有一些字段的取值会限定为固定的几个可选值之一,而在代码中这些可选值往往会通过定义枚举类的方式来承载,比如: 根据操作类型,过滤对应类型的用户…