上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 23 下一页
摘要: 字节流与字符流的区别? 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如下图所示 下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。 案例1:使用字节流不关闭执行package byteStream;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;/** * 操作字节流 ... 阅读全文
posted @ 2014-03-11 20:03 NW_KNIFE 阅读(1364) 评论(0) 推荐(0) 编辑
摘要: System.in读取标准输入设备数据(从标准输入获取数据,一般是键盘),其数据类型为InputStream。方法: int read() // 返回输入数值的ASCII码,,该值为0到 255范围内的int字节值。若返回值为-1,说明没有读取到任何字节读取工作结束。 int read(byte[] b) // 读入多个字节到缓冲区b中,返回值是读入的字节数package InPackage;/** * System.in.read()返回值为输入数值的ASCII码,该值为0到 255范围内的int字节值 * 如果因为已经到达流末尾而没有可用的字节,则返回值 -1。 */public ... 阅读全文
posted @ 2014-03-11 14:09 NW_KNIFE 阅读(30980) 评论(0) 推荐(4) 编辑
摘要: 抽象类abstract class 包含抽象方法的类,叫抽象类。而抽象的概念就是抽象出共同属性:成员变量和方法。所以抽象类可以有private等多种权限的成员变量和非abstract的成员方法。当然抽象方法是一定要有的。 抽象类是用于单一继承的,不能实例化。而继承类一定要实现抽象方法,因为抽象方法在抽象类里是没有实现行为的,访问权限只能是public。而非抽象方法则可以赋予方法的默认行为,访问权限可以多种,但需要考虑非抽象方法是否需要被继承类访问。接口 interface 接口,用于多重继承,也不能实例化。只能包含static final的成员变量,不过在interface中一般不定义成... 阅读全文
posted @ 2014-03-10 19:23 NW_KNIFE 阅读(408) 评论(0) 推荐(0) 编辑
摘要: static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区或者方法区内找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象时,不生成static变量的副本,而是类的所有实例共享同一个static变量。 sta... 阅读全文
posted @ 2014-03-10 15:09 NW_KNIFE 阅读(16855) 评论(0) 推荐(1) 编辑
摘要: 根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是“这是无法改变的。”不想改变的理由有两种:一种是效率,另一种是设计。由于两个原因相差很远,所以关键子final可能被误用。 接下来介绍一下使用到final的三中情况:数据,方法,类final数据 许多编程语言都有某种方法,来向编译器告知一块数据是恒定不变的。有时数据的恒定不变是很有用的,例如:一个编译时恒定不变的常量一个在运行时初始化,而你不希望它被改变。 对于编译期常量的这种情况,编译器可以将该常量值代入任何可能用到它的计算式中,也就是说,可以在编译期就执行计算式,这减轻了一些运行时的负担。在java中,这类... 阅读全文
posted @ 2014-03-10 14:09 NW_KNIFE 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 编译器常量的特点就是:它的值在编译期就可以确定。比如: finalinti=5; 再傻的编译器也能在编译时看出它的值是5,不需要到运行时。对于运行时常量,它的值虽然在运行时初始化后不再发生变化,但问题就在于它的初始值要到运行时才能确定。 比如: Random rand = new Random(47); final int i4 = rand.nextInt(20); 虽然i4的值在定义并初始化后不会再发生变化(除非你使用一些不符合标准的小技巧),但再聪明的编译器也无法在编译时确定它的值呀。 为了更清楚的理解编译器常量的概念,我们引入【常量折叠】的概念:在编译器里进行语法分析的... 阅读全文
posted @ 2014-03-10 13:31 NW_KNIFE 阅读(4279) 评论(2) 推荐(2) 编辑
摘要: 对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序以此是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:package InitialOrder;/** * JAVA 初始化顺序 * @author Administrator * 初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)> 构造器。 */public class InitialOrderTest { // 静态变量 public static String staticField = "静态变量"; // 变量 阅读全文
posted @ 2014-03-10 13:19 NW_KNIFE 阅读(1881) 评论(0) 推荐(0) 编辑
摘要: Java中存在着两种Random函数:一、java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。例子如下:package IO;import java.util.Random;public class TestRandom { public static void main(String[] args) { // 案例1 System.out.println... 阅读全文
posted @ 2014-03-09 21:55 NW_KNIFE 阅读(451842) 评论(4) 推荐(27) 编辑
摘要: publicstaticvoidmain(String[]args) 这绝对不是凭空想出来的,也不是没有道理的死规定,而是java程序执行的需要。 jvm在试图运行一个类之前,先检查该类是否包含一个特殊方法。这个方法必须是公有的,以便在任何位置都能访问得到。这个方法必须是static的,因为这个方法不能依赖任何该类的实例即可运行,而非static的方法,在运行之前要先创建该类的实例对象。 这个方法没有返回值。和C/C++程序不一样,java的程序默认都以常态结束,所以main不返回int。如果要以非常态结束程序,可以用System.exit(1)。 这个方法必须可以接受数目不定的S... 阅读全文
posted @ 2014-03-09 19:59 NW_KNIFE 阅读(28929) 评论(0) 推荐(0) 编辑
摘要: equals如果没有被重写的话,和==的作用是一样的,都是判断两个对象引用是否指向同一个地址。一般重写了equals()方法就表示比较它们“实际意义上相等”,比较的是内容,而不是引用地址。Java中String重写了equals方法,所以此时比较的是两者的内容是否相等,而==比较的永远是地址。package testPage;/* * ==和equals有何区别 * 这是在网上偶然看到的一个帖子,如果让我说,还真说不清楚,所以决定一探究竟。 * */public class StringAndEquals { public static void main(String[] arg... 阅读全文
posted @ 2014-03-09 14:33 NW_KNIFE 阅读(970) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 23 下一页