摘要:原文地址:http://blog.csdn.net/fcbayernmunchen/article/details/8635427 Java类库中的NIO包相对于IO 包来说有一个新功能是内存映射文件,日常编程中并不是经常用到,但是在处理大文件时是比较理想的提高效率的手段。本文我主要想结合操作系统中(OS)相关方面的知识介绍一下原理。 在传统的文件IO操作中,我们都是调用操...
阅读全文
摘要:NIO java使用NIO的目的是为了提升性能,实际上老的io程序也已经优化过了,速度也有相应的提升。 NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer(缓冲区)进行操作,数据总
阅读全文
摘要:流 InputStream和OutputStream是所有的输入流和输出流的超类。他们两个都是抽象类。 read方法和write方法都是阻塞方法,这意味着如果不能里可以写入或者读取,比如因为网络问题,那么当前线程将会被阻塞。 InputStream的API: 方法摘要intavailable() 返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数。voidclose() ...
阅读全文
摘要:1、数组的协变性 数组的协变性(covariant)是指: 如果类Base是类Sub的基类,那么Base[]就是Sub[]的基类。 而泛型是不可变的(invariant),List不会是List的基类,更不会是它的子类。 数组的协变性可能会导致一些错误,比如下面的代码: public static
阅读全文
摘要:java类库的基本结构 Iterable public interface Iterable<T> 实现这个接口允许对象成为 "foreach" 语句的目标。 也就是说,只有实现了Iterable接口的类才能使用foreache语法。 其实java在编译的时候讲foreach编译成了iterator
阅读全文
摘要:泛型的作用 使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性.泛型对于集合类尤其有用. 说白了就是减少类型转换,增加可读性,同时避免代码中大量的Objcet的使用带来的转换安全隐患。 简单泛型类的定义 一个泛型类(generic cl
阅读全文
摘要:异常 java的异常层次结构 Error类层次结构描述了Java运行时系统的内部错误和资源耗尽错误.引用程序不应该抛出这种类型的对象.如果出现了这样的内部错误,除了通告给用户,并尽力使程序安全地终止之外,再也无能为力了. 在设计Java程序时,需要关注Exception层次结构.这个层次结构又分解为
阅读全文
摘要:接口的方法默认死public,接口的属性默认为public static final。 为什么要接口,而不是使用抽象类。一个对象只能继承一个类,却可以实现多个接口。 clone: Object的浅拷贝 Object类的默认拷贝机制是浅拷贝:对于拷贝对象的属性:基本类型属性,拷贝值,对象属性,拷贝引用
阅读全文
摘要:访问权限 可以使用super来访问超类的public属性或者protect属性。 子类不能使用超类的私有对象和私有方法。 super: this是当前对象的引用,super只是一个指示编译器去调用超类方法的关键字,不能把super作为参数传递。 使用super调用超类构造器的语句,必须是子类构造器的
阅读全文
摘要:类与类之间的关系 一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子
阅读全文
摘要:声明数组: int[] a; int a[]; 两种方式。一般选择第一种,比较一目了然。 初始化,必须指定长度: int[] a = new int[10]; int[] a = {1,2,3}; 初始化: package com.zjf; import java.util.Arrays; impo
阅读全文
摘要:大数操作 BigInteger 不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提
阅读全文
摘要:控制流程 java的控制流程和C和C++基本一致,只是不能使用goto语句,不过break语句可以带标签,实现从内层循环跳出的目的。标签可以放在for或者while前面。如下: package com.zjf; import java.io.Console; import java.util.Sca
阅读全文
摘要:读取输入: java.util.Scanner 一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器。 了解: Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。 例如,以下代码使用户能够从
阅读全文
摘要:char类型 char是2个字节,和short一样。 char用单引号来表示。 char可以通过数字来表示,也可以通过字母来表示,也可以通过unicode编码单元来表示,特殊字符还可以通过\+字符来表示。如下: package com.zjf; public class Test { public
阅读全文
摘要:整形: int 4字节 short 2字节 long 8字节 byte 1字节 int 4字节 short 2字节 long 8字节 byte 1字节 int的大小差不多是20亿。 整形计算 如果两个int进行加减乘除数学运算的时候,最终的结果仍然是int,有可能出现了溢出,那么结果就不是我们想要的
阅读全文
摘要:JSTL标签是一个实现web功能的定制标签库,包括输出功能,条件判断,循环等,使用JSTL标签,为动态编写WEB应用程序提供了很大的方便性,能很好的和Java语言和HTML进行结合。下面我们看看jstl标签的用法 1.环境搭建 下载jar包 http://archive.apache.org/dis
阅读全文