java基础系列二_第1页
java基础系列二_第2页
java基础系列二_第3页
java基础系列二_第4页
java基础系列二_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

= = Java SE (I) = = 1. String 字符串是不可变对象,字符串内容一旦创建,就不可变,只要改变字符串内容,就会创 建新的字符串对象。 int length(); / 返回此字符串的长度 int indexOf(String str); / 返回给定字符串在此字符串中第一次出现处的索引 int indexOf(String str, int fromIndex); / 返回给定字符串在此字符串中从给定位置后第一次 出现处的索引 int lastIndexOf(String str); / 返回给定字符串在此字符串中最后一次出现的索引 String substring(int beginIndex, int endIndex); / 返回此字符串指定索引范围之间的子字符 串 String substring(int beginIndex); / 返回此字符串指定开始索引到末尾之间的子字符串 String trim(); / 返回此字符串去除前后空白后的字符串 char charAt(int index); / 返回此字符串指定索引处的字符 boolean startsWith(String str); / 测试此字符串是否以指定的前缀开始 boolean endsWith(String str); / 测试此字符串是否以指定的后缀结束 String toUpperCase(); / 将此字符串中的所有字符转换为大写 String toLowerCase(); / 将此字符串中的所有字符转换为小写 String valueOf(T t); / 返回给定参数的字符串表示形式 boolean matches(String regex); / 测试此字符串是否匹配给定的正则表达式 String split(String regex); / 将此字符串按照满足正则表达式的部分进行拆分 String replaceAll(String regex, String str); / 将当前字符串中所有满足给定的正则表达式的 部分替换为给定的字符串 2. StringBuilder 和 StringBuffer StringBuilder 和 StringBuffer 是可变的字符序列,解决 String 字符串操作时会创建新对象 的效率问题。 StringBuilder 是从 JDK1.5 版本后才有的,不是线程安全的,效率比 StringBuffer 要快。 StringBuilder append(T t); / 将指定的内容追加到此字符串的末尾 StringBuilder replace(int start, int end, String str); / 将此字符串中指定范围的字符串替换 为给定的字符串 StringBuilder insert(int offset, T t); / 在此字符串中指定的位置开始插入给定的内容 StringBuilder delete(int start, int end); / 删除此字符串中指定范围的子字符串 StringBuilder reverse(); / 将此字符串反转 3. 正则表达式 正则表达式就是使用一系列预定义的特殊字符来描述一个字符串的格式规则,然后使用 该格式规则匹配某个字符串是否符合格式要求。 3.1)字符集合: /用来描述单一字符,方括号内部可以定义这个字符的内容,也可以描述一个范围 abc /a、b、c 中任意一个字符 abc /除了 a、b、c 的任意字符 a-z /az 之间的任意一个字符 a-z0-9A-Z /az、09、 AZ 中任意一个字符 a-z /用一个字符串来描述当前对象 boolean equals(Object obj); /判断两个对象间的内容比较是否一致 4.2)equals 与 = 的区别 “=“是值比较,对于引用类型变量而言,该变量保存的是对象的地址,所以使用“=“ 比较时,意思为两个变量的地址是否相等,换句话说就是看两个变量引用的是否为同一个 对象 equals 是内容比较,对于两个引用变量而言,是比较两个变量所引用的对象内容是否 相同。 5. 包装类型 5.1)包装类解决的问题是基本类型不能参与面向对象开发,解决办法就是把基本类型转 换成引用类型。 基本类型 包装类型 byte java.lang.Byte short java.lang.Short int java.lang.Integer long java.lang.Long float java.lang.Float double java.lang.Double char java.lang.Character boolean java.lang.Boolean 5.2)想将一个基本类型当做引用类型使用时,编译器会自动加上代码,使得基本类型转 换为引用类型,这个过程称为“自动装箱“ 5.3)当编译器发现我们需要将一个引用类型转换为基本类型时,自动添加代码进行转换, 这种从引用类型转换为基本类型的过程称之为“自动拆箱 “ 5.4)那么 java 是如何实现的自动拆装箱呢 ? 事实上 JVM 不支持该特性,自动拆装箱只是编译器在编译过程中的“预处理“ 操作。编 译器在看到需要在包装类与基本类型之间转换时,会在编译为字节码时进行改变: 源代码中 编译后的字节码中 Integer a = 100 = Integer a = Integer.valueOf(100); Integer b = 200 = Integer b = Integer.valueOf(200); Integer c = a+b = Integer c = Integer.valueOf(Value() + Value(); double d = c = double d = c.doubleValue(); 5.5)方法 int Integer.MAX_VALUE / 获取 int 类型的最大值 int Integer.MIN_VALUE / 获取 int 类型的最小值 static int parseInt(String str); / 将给定的字符串转换为 int 基本类型 static Integer valueOf(int n); / 将给定的 int 基本类型转换为对应的包装类型(自动装箱 调用的方法) int intValue(); / 将当前包装类型整数转换成对应的 int 基本类型( 自动拆箱调用的方法) 6. Date 日期类,可以表示日期,默认为当前系统的日期 long getTime(); / 获取此日期的毫秒值 Date setTime(long millisecond); / 将给定毫秒值转换为日期格式 7. SimpleDateFormat 简单日期格式化类,可以将一个日期对象格式化为指定格式的字符串,也可以将一个指 定格式的字符串解析为一个日期对象 String format(Date date); / 将给定的日期转换成指定格式的字符串 Date parse(String str); / 解析字符串的文本,生成 Date 8. Calendar 日历类,可以方便对日期进行操作 Calendar getInstance(); / 根据当前系统所在地区,获得 Calendar 的实际类型对象 Date getTime(); / 返回 Calendar 的日期格式 Calendar setTime(Date date); / 将给定日期设置到 Calendar 中 int get(int field); / 返回给定日历字段的值 void set(int field, int value); / 将指定的日历字段设置为给定值 void add(int field, int value); / 根据日历的规则,为指定的日历字段添加或减去指定的时 间量 9. Collection 集合接口,该接口是所有集合的根接口 boolean add(Object obj); / 将给定的元素添加到集合中,返回是否添加成功 boolean addAll(Collection c); /将指定集合中的所有元素都添加到此集合中 boolean contains(Object obj); / 判断此集合是否包含指定元素,equals 比较 boolean containsAll(Collection C); /判断此集合中是否包含指定集合中的所有元素 int size(); / 返回此集合中元素的数量 void clear(); / 清空此集合中所有元素 boolean isEmpty(); / 判断此集合中是否不包含元素 Iterator iterator(); / 返回此集合的元素上进行迭代的迭代器 boolean remove(Object o); / 从此集合中删除与指定元素 equals 为 true 的第一个元素 boolean removeAll(Collection c); / 删除此集合中包含指定集合中的所有元素 Object toArray(); / 返回此集合中所有元素的数组 T toArray(T a); / 返回包含此集合中所有元素的数组 10. List 列表集合类,是有序的,可以对列表中每个元素的插入位置进行精确地控制,可以根据 元素的整数索引访问元素、并搜索列表中的元素。 通常允许重复的元素,更确切地讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。 常用的实现类有: ArrayList, LinkedList void add(int index, T e); / 在此集合中的指定位置插入指定元素,原位置及后续元素顺序 向后移动 T remove(int index); / 移除列表中指定位置的元素,返回从列表中移除的元素 T get(int index); / 返回集合中指定位置的元素 T set(int index, T t); / 用指定元素替换集合中指定位置的元素 int indexOf(Object o); / 返回此集合中第一次出现指定元素的索引,若不存在该元素返回 -1 List subList(int fromIndex, int toIndex); / 返回此集合中指定位置(fromIndex 到 toIndex) 之间的部分视图 11. Set Set 是不包含重复元素的集合,也就是不包含满足 e1.equals(e2) 的元素对 e1 和 e2, 并且最多包含一个 null 元素。 常用的实现类有: HashSet, LinkedHashSet, TreeSet 常用方法参考 Collection 接口。 12. Map Map 接口没有继承 Collection 接口,Map 提供 key 到 value 的映射。 常用的实现类有: HashMap, LinkedHashMap, TreeMap boolean containsKey(Object key); /如果此映射包含指定键的映射关系,则返回 true。 boolean containsValue(Object value); /如果此映射将一个或多个键映射到指定值,则返回 true。 Set entrySet(); /返回此映射中包含的映射关系的 Set 视图。 V get(Object key); /返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。 Set keySet(); /返回此映射中包含的键的 Set 视图。 V put(K key, V value); /将指定的值与此映射中的指定键关联(可选操作) void putAll(Map m); /从指定映射中将所有映射关系复制到此映 射中(可选操作) 。 V remove(Object key); /如果存在一个键的映射关系,则将其从此映射中移除(可选操作) 。 int size(); /返回此映射中的键-值映射关系数。 Collection values(); /返回此映射中包含的值的 Collection 视图。 13. Comparable 和 Comparator 的区别 Comparable / 返回此抽象路径名表示的文件或目录的名称 long length(); / 返回由此抽象路径名表示的文件的长度(占用的字节) boolean exists(); / 判断此抽象路径名表示的文件或目录是否存在 boolean isFile(); / 判断此抽象路径名表示的是否为一个文件 boolean isDirectory(); / 判断此抽象路径名表示的是否为一个目录 boolean createNewFile(); / 当且仅当不存在具有此抽象路径名指定名称的文件时,不可 分地创建一个新的空文件 boolean mkdir(); / 创建此抽象路径名指定的目录 boolean mkdirs(); / 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录 boolean delete(); / 删除此抽象路径名表示的文件或目录 File listFiles(); / 返回此抽象路径名表示的目录中的子项数组 2. RandomAccessFile RandomAccessFile(File file, String mode); / 创建从中读取和向其中写入的随机访问文件流, 该文件由 File 参数指定(mode=“r“:只读/“rw“: 读写) RandomAccessFile(String name, String mode); / 创建从中读取和向其写入的随机访问文件 流,该文件具有指定名称 void write(int d); / 根据当前指针所在位置处写入一个字节,是将参数 d 的“低 8 位“写 出 void write(byte d); / 根据当前文件指针所在位置处连续写出给定数组中的所有字节 void write(byte d, int offset, int length); / 根据当前文件指针所在位置处连续写出给定数 组中的所有字节,从数组的 offset 处开始,连续 length 个字节 int read(); / 从文件中读取一个 byte(8 位)填充到 int 的低 8 位,高 24 位为 0,返回值范 围正数:0255,返回-1 表示读取到了文件末尾,每次读取后自动移动文件指针,准备下 次读取 int read(byte b); / 从指针位置处尝试最多读取给定数组的长度的字节量,并从给定的 字节数组的第一个位置开始,将持续读取到的字节顺序存放至数组中,返回值为实际读取 到的字节量 void close(); / 用于释放与其关联的所有系统资源 long getFilePointer(); / 返回当前 RandomAccessFile 的指针位置 void seek(long pos); / 用于移动当前 RandomAccessFile 的指针位置 int skipBytes(int n); / 用于尝试跳过指定 n 个字节以丢弃跳过的字节 3. InputStream InputStream 是所有字节输入流的父类,定义了基础的读取方法 int read(); / 读取一个字节,以 int 形式返回,该 int 值的低 8 位有效,若返回-1 则表示 EOF int read(byte d); / 尝试读取给定字节数组的长度个字节并存入该数组,返回值为实际 读取到的字节量 4. OutputStream OutputStream 是所有字节输出流的父类,定义了基础的写出方法 void write(int d); / 写出一个字节,写出的是给定的 int 的低 8 位 void write(byte d); / 将给定的字节数组中的所有字节全部写出 5. FileInputStream FileInputStream 是文件的字节输入流,可以以字节为单位从文件中读取数据 FileInputStream(File file) / 创建一个从给定 File 对象表示的文件中读取数据的文件输入流 FileInputStream(String filename) / 创建一个从给定文件名指向的文件的文件输入流 6. FileOutputStream FileOutputStream 是文件的字节输出流,可以以字节为单位将数据写入文件 FileOutputStream(File file) /创建一个向给定 File 对象表示的文件中写出数据的文件输出 流 FileOutputStream(String filename) / 创建一个向具有指定名称的文件中写出数据的文件输 出流 FileOutputStream(File file, boolean append) / 创建一个向给定 File 对象表示的文件中写出 数据的文件输出流,append 为 true 则向文件末尾追加 FileOutputStream(String filename, boolean append) / 创建一个向具有指定名称的文件中 写出数据的文件输出流 7. BufferedInputStream BufferedInputStream 缓冲字节输入流,其内部维护着一个缓冲区(字节数组),在读取一 个字节时,会尽可能多的一次性读取若干字节并存入缓冲区,然后逐一的将字节返回,知 道缓冲区的数据全部被读取完毕,会再次读取若干字节从而反复。 8. BufferedOutputStream BufferedOutputStream 缓冲输出流,其内部维护着一个缓冲区,当向该流写出数据时, 都会先将数据存入缓冲区,当缓冲区已满时,缓冲流会将数据一次性全部写出 void flush(); / 清空缓冲区,将缓冲区中的数据强制写出 9. ObjectInputStream ObjectInputStream 将对象进行反序列化的输入流 Object readObject(); / 从流中读取字节并转换为对应的对象 10. ObjectOutputStream ObjectOutputStream 将对象进行序列化的输出流 void writeObject(Object o); / 将给定的对象转换为一个字节序列后写出 11. Reader Reader 是字符输入流的父类 字符流是以字符(char)为单位读写数据的,一次处理一个 unicode,底层仍然是基本的字 节流,字符流只能读取文本数据 int read(); / 读取一个字符,返回 int 值低 16 位有效 int read(char chs); / 从该流中读取指定字符数组的长度个字符并存入数组,返回值为实 际读取到的字符量 12. Writer Writer 是字符输出流的父类 void write(int c); / 写出一个字符,写出给定 int 值的低 16 位表示的字符 void write(char chs); / 将给定的字符数组中所有字符写出 void write(String str); / 将给定的字符串写出 void write(char chs, int offset, int length); / 将给定的字符数组从给定的位置 offset 处连 续的 length 个字符写出 13. InputStreamReader InputStreamReader 字符输入流,可以设置字符集,并按照指定的字符集从流中按照该编 码将字节数据转换为字符并读取 InputStreamReader(InputStream in) / 创建指定字节流的字符输入流,采用系统默认编码 InputStreamReader(InputStream in, String charsetName) / 创建指定字节流和字符编码的 字符输入流 14. OutputStreamWriter OutputStreamWriter 字符输出流,可以设置字符集,并按照指定的字符集将字符转换为 对应的字节后通过该流写出 OutputStreamWriter(OutputStream out) / 创建指定字节输出流的字符输出流,采用系统 默认编码 OutputStreamWriter(OutputStream out, String charsetName) / 创建指定字节输出流和字符 编码的字符输出流 15. BufferedReader BufferedReader 是缓冲字符输入流,内部提供了缓冲区,可以提高读取效率 BufferedReader(Reader reader) String readLine(); / 连续读取一行字符串,直到读取到换行符为止,返回的字符串中不包 含该换行符 16. PrintWriter PrintWriter 是具有自动行刷新的缓冲字符输出流 PrintWriter(File fiel) PrintWriter(String fileName) PrintWriter(OutputStream out) PrintWriter(OutputStream out, boolean autoFlush) PrintWriter(Writer writer) PrintWriter(Writer writer, boolean autoFlush) void print(int i); / 打印整数 void print(char c); / 打印字符 void print(boolean b); / 打印布尔值 void print(char chs); / 打印字符数组 void print(double d); / 打印 double 小数 void print(float f); / 打印 float 小数 void print(long l); / 打印 long 整数 void print(String str); / 打印字符串 【异常处理】 17. Throwable, Error, Exception Java 异常处理结构中定义有 Throwable 类,Exception 和 Error 是其派生的两个子类 其中 Exception 表示由于网络故障、文件损坏、设备错误、用户输入非法等情况导致的异 常 而 Error 表示 Java 运行时环境出现的错误,例如 JVM 内存资源耗尽等 18. try catch( ) try. 语句指定了一段代码,该段代码就是一次捕获并处理例外的范围 catch(.). 语句块中是对异常进行处理的代码 19. finally finally 语句为异常处理提供一个统一的出口,使得在控制流程转到程序其它部分之前, 能够对程序的状态做统一管理 无论 try 所指定的程序块中是否抛出异常, finally 所指的代码都要被执行 通常在 finally 语句中可以进行资源的释放工作,如关闭打开的文件,删除临时文件等 final, finally, finalize 的区别及作用 final 是一个关键字,可以用来修饰类、属性、方法。当修饰类时,该类不能被继承; 修饰属性时,该属性初始化后不能第二次赋值;当修饰方法时,该方法在子类中不能被重 写 finally 是异常捕获机制中的一个语句块,无论 try 所指定的程序块中是否抛出异常, finally 所指的代码都要被执行。常用来进行资源的释放工作,如关闭打开的文件,删除临 时文件等 finalize 是 Object 类中定义的一个方法,该方法由 JVM 调用。当 GC 回收没有任何引用 指向的对象时,该对象会调用自己的 finalize 方法 20. throw 当程序发生错误而无法处理的时候,会抛出相应的异常对象,在某些时刻,可能会想要 自行抛出异常,可以使用 throw 关键词,并生成指定的异常对象后抛出 21. throws throws 关键词用来声明这个方法将会抛出异常 如果使用继承时,在父类的某个方法上声明了 throws 某些异常,在子类中重写该方法 时可以: 1)不处理异常( 重写时不声明 throws) 2)可仅 throws 父类中声明的部分异常 3)可 throws 父类方法中抛出异常的子类异常 不可以: throws 出额外的异常 throws 父类方法中抛出异常的父类异常 22. 可检测异常 与 非检测异常 1)可检测异常:可检测异常经编译器验证,对于声明抛出异常的任何方法,编译器将强 制执行处理或声明规则,不捕捉这个异常,编译器就通不过,不允许编译 2)非检测异常:非检测异常不遵循处理或者声明规则。在产生此类异常时,不一定非要 采取任何适当操作,编译器不会检查是否已经解决了这样一个异常 RuntimeException :运行时异常属于非检查异常,因为普通 JVM 操作引起的运行时异 常随时可能发生,此类异常一般是由特定操作引发。但这些操作在 java 应用程序中频繁出 现。因此它们不受编译器检查与处理或声明规则的限制。 常见 RuntimeException : IllegalArgumentException / 向方法传递了一个不合法或不正确的参数 NullPointerException / 空指针异常 ArrayIndexOutOfBoundsException / 数组下标越界异常 ClassCastException / 类造型异常 NumberFormatException / 数字格式化异常 23. Exception 常见 API void printStackTrace(); / 跟踪异常事件发生时执行堆栈的内容,输出错误信息 String getMessage(); / 返回此异常事件的信息 Throwable getCause(); / 获取此异常出现的原因 【多线程】 进程和线程 一般操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程 序被称为一个进程,当一个程序运行时,内部可能包含多个顺序执行流,每个顺序执行流 就是一个线程。 24. 什么是进程(process)? 1)进程是操作系统中运行的一个任务(一个应用程序运行在一个进程中) 2)进程是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功 能单元 3)进程中所包含的一个或多个执行单元称为线程。进程拥有一个私有的虚拟地址空间, 该空间仅能被它所包含的线程访问 4)线程只能归属于一个进程并且它只能访问该进程所拥有的资源。当操作系统创建一个 进程后,该进程会自动申请一个名为主线程或首要进程的线程 25. 什么是线程(thread)? 1)一个线程是进程的一个顺序执行流 2)同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的 堆栈。线程在切换时负荷小,因此线程也被称为轻负荷进程。一个进程可以包含多个线程 26. 进程与线程的区别 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有 独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程的区别在于每个独立的线程有一个程序运行的入口、顺序执行 序列和程序的出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多 个线程执行控制。 从逻辑的角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。 但操作系统并没有将多个线程看做多个独立的应用来实现进程的调度和管理以及资源分配。 27. 并发原理 多个线程“同时”运行只是感官上的一种表现。事实上线程是并发运行的,OS 将时间划 分为很多时间段,尽可能均匀分配给每一个线程,获取时间片段的线程被 CPU 运行,而其 他线程全部等待。所以微观上是走走停停,宏观上都在运行。这种现象叫并发,但不是绝 对意义上的“同时发生“ 28. 线程状态 new -start()- Runnable Running Dead Running -sleep(long l)/wait()/yield()- Runnable 29. Thread void run(); / 定义该线程要执行的逻辑 void start(); / 将当前线程纳入线程调度 Thread currentThread(); / 获取运行当前代码片段的线程 long getId(); / 返回该线程的表示符 String getName(); / 返回该线程的名称 int getPriority(); / 返回该线程的优先级 Thread.state getState(); / 获取线程的状态 boolean isAlive(); / 测试线程是否处于活动状态 boolean isDaemon(); / 测试线程是否为守护线程 boolean isInterrupted(); / 测试线程是否已经中断 static void sleep(lon

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论