随笔分类 -  Java语言基础

摘要:1.创建和启动线程 线程类必须实现Runnable接口或者扩展Thread类,并且实现run方法,run方法没有参数没有返回值不允许抛出异常。调用start实例方法启动一个线程。调用该方法后,线程准备启动,只有获得CPU时,start将自动调用run,线程才真正启动。public class DefineThread { /** * 通过继承java.lang.Thread类定义线程 */ class ThreadA extends Thread{ /** * 当线程被运行时调用此方法 */ public... 阅读全文
posted @ 2011-10-19 11:39 liuping 阅读(194) 评论(0) 推荐(0)
摘要:在某些编程语言中,枚举仅仅被当做是一个具名整型值的集合;但是在Java编程语言中,枚举是一种特殊类型的类,其枚举的每一个值都由一个实例来表示。1.枚举声明 枚举声明与类声明的两处差异:关键字是enum而不是class;声明任何成员之前,必须 首先声明其所有的枚举常量。如果一个枚举除了枚举常量之外还声明了其他的东西,那么枚举常量列表必须以一个分号结尾。2.枚举常量的声明 如果枚举常量声明中的每个字段只包含一个名字,系统将用无参构造器创建该枚举类型的一个对象。通过提供与构造器参数类型匹配的实参可以选择使用哪个构造器创建枚举常量。枚举常量的声明不能有任何的修饰符作用其上,注解除外。/** * J.. 阅读全文
posted @ 2011-10-17 16:40 liuping 阅读(264) 评论(0) 推荐(0)
摘要:集合,有时也被称作容器(container),是对象的持有者,它们可以以有助于高效访问的形式来存储和组织对象。1.Collection接口:集合的根接口。 Set:不包含重复元素的集合,不维护元素的顺序。加入Set的元素必须定义equals方法来确保对象的唯一性。它有3个实现类:HashSet、LinkedHashSet和TreeSet。 HashSet采用散列函数对元素进行排序,是为快速查询设计的。存入其中的元素要定义hashCode方法。TreeSet采用红黑树的数据结构进行元素排序。存入自定义类时,TreeSet需要维护元素的存储顺序,因此自定义类要实现Comparable接口并定义.. 阅读全文
posted @ 2011-10-16 13:57 liuping 阅读(433) 评论(0) 推荐(0)
摘要:创建文件与目录。createNewFile方法:当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。mkdir方法创建此抽象路径名指定的目录。mkdirs创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。import java.io.File;import java.io.IOException;/** * 创建新文件和目录 */public class CreateFileUtil { /** * 创建单个文件 * @param destFileName 目标文件名 ... 阅读全文
posted @ 2011-10-15 15:43 liuping 阅读(263) 评论(0) 推荐(0)
摘要:1.流 java.io包有两个主要部分:字符流和字节流。字符是指16位的UTF-16字符,而字节通常是8位的。字符流主要用于基于文本的I/O,而字节流主要用于基于二进制数据的I/O。字节流被称为输入流(input stream)与输出流(output stream),而字符流被称为读取器(reader)与写入器(writer)。 InputStream类是java.io包中大多数字节输入流的超类。主要方法有: public abstract int read()throw IOException:从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经... 阅读全文
posted @ 2011-10-15 14:41 liuping 阅读(251) 评论(0) 推荐(1)
摘要:1.String类 字符串是不可变(只读)的字符序列。字符串可以隐式地创建: String str = "string";也可以使用new来显式地创建一个String对象。String对象的两个基本方法是:length()和charAt()。indexOf()和lastIndexOf()方法用来查找指定字符或者字符串在字符串中第一次或最后一次出现的位置。找到的话返回索引值,否则返回-1。 equals方法用来比较两个String对象是否相等(相同的长度以及完全相同的Unicode字符序列)。equalsIgnoreCase()会忽略大小写。 对于两个相同内容的字符串字面常量 阅读全文
posted @ 2011-10-13 12:15 liuping 阅读(208) 评论(0) 推荐(0)
摘要:1.创建异常类型 异常都是对象。所有的异常类型,即所有为可抛出(throwable)对象设计的类,都必须扩展Throwable或者它的某个子类。 异常主要是检查型异常(checked exception),这意味着编译器将检查我们的方法是否只抛出了它们声明自己会抛出的异常。标准运行时异常和错误扩展了RuntimeException或者Error,它们是不受检查型异常(unchecked exception)。 检查型异常表示的情形是:虽然这种情况是异常的,但是在一定程度上它的发生是可以预计的,而且一旦这种情况发生了,就必须以某种方式来处理。要使这种异常能够被检查到,必须表明这种异常的存在... 阅读全文
posted @ 2011-10-12 17:49 liuping 阅读(227) 评论(0) 推荐(0)
摘要:类和接口可以在其他的类和接口的内部进行声明,它们要么声明为成员,要么声明在代码块内部。因为嵌套类是包围类的一个成员,所以嵌套类可以访问包围类的所有其他成员,包括包围类继承而来的所有成员。1.静态嵌套 嵌套类被声明为其包围类的静态成员,作用于它们的可访问性规则和作用于包围类的其他成员的规则是相同的,可以具有private,package,protected,public的访问权限。2.内部类 非静态嵌套类称作内部类(inner class)。内部类的实例总是与其包围类的实例相关联的。 public class CreateInnerClass { class InnerClass... 阅读全文
posted @ 2011-10-11 17:41 liuping 阅读(308) 评论(0) 推荐(0)
摘要:1.扩展类的构造器 扩展类的构造器必须通过隐式地或显式地调用其超类的构造器,将继承而来的字段的构造工作委托给超类。可以使用super来显式地调用超类的某个构造器。如果扩展类构造器的第一条可执行语句不是调用超类构造器的语句,那么扩展类的构造方法会自动调用超类的无参构造器。也就是说,扩展类构造器的第一条语句被认为是如下语句:super();。如果超类没有无参构造器,就必须显式地调用其他构造器。 创建一个(扩展类)对象的过程:为对象的所有字段分配存储空间并初始化为各自类型的默认值。此后,构造过程分为三个阶段。1.调用超类的构造器;2.初始化继承而来的相应的字段;3.执行构造器其他语句。(先进行超.. 阅读全文
posted @ 2011-10-10 13:44 liuping 阅读(231) 评论(0) 推荐(0)
摘要:1.数组 数组只是相同类型的、用一个标识符名称封装到一起的一个对象序列或者基本数据类型序列。 数组本身是对象,Java中的对象是存储在堆中的,因此数组无论保存基本数据类型还是对象类型,数组对象本身是存储在堆中的。 声明一个数组对象时不允许指定它的大小(例如:int[5] arr;是错误的),int[] arr;此时获得一个数组对象的引用,JVM只是给这个引用分配了存储空间,为了给数组创建相应的存储空间,必须初始化它。 创建(定义)一个数组时需要指定数组的大小,JVM要在堆上为数组对象分配存储空间。例如:int[] arr = new int[5]。注意:这里数组中的int变量可以使用n... 阅读全文
posted @ 2011-10-09 10:04 liuping 阅读(279) 评论(0) 推荐(0)
摘要:1.基本数据类型 Java中的基本数据类型有8种:boolean(-),char(16-bits),byte(8-bites),short(16-bites),int(32-bites),long(64-bites),float(32-bites),double(64-bites)。 boolean类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true或者false。 Java字符采用Unicode编码。前128个字符编码与ASCII编码兼容,char类型变量的存储范围\u0000-\uffff。 基本类型都具有与之对应的包装器类型(Boolean, Character, B... 阅读全文
posted @ 2011-10-09 09:00 liuping 阅读(347) 评论(0) 推荐(0)