2017年2月17日

JVM的线程

摘要: 我们使用java命令来运行一个程序,那么就需要启动JVM , 而jvm的启动就相当于启动了一个进程 , 而这个进程在启动的时候会自动启动一个线程,由这个线程去调用main方法,而这个线程就是主线程 ; 并且我们JVM的启动时是多线程的 , 因为至少存在两个线程一个是主线程, 一个是垃圾回收线程 阅读全文

posted @ 2017-02-17 18:30 LoaderMan 阅读(179) 评论(0) 推荐(0) 编辑

多线程概述

摘要: 进程: 就是正在执行的应用程序 多进程的意义: 提高CPU的使用率 线程: 应用程序中的一个任务其实就是一个线程 多线程的意义: 提高应用程序的使用率 ; 我们应用在执行的时候都是依赖于线程去抢占CPU的执行权,谁抢占到了CPU的执行权,那么CPU就执行谁; 但是CPU的执行是具有随机性. 阅读全文

posted @ 2017-02-17 18:29 LoaderMan 阅读(104) 评论(0) 推荐(0) 编辑

2017年2月16日

IO注意事项

摘要: read()方法返回值为什么是int? 因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte,有可能在读到中间的时候遇到111111111,那么这11111111是byte类型的-1,我们的程序是遇到-1就会停止不读了,后面的数据就读 阅读全文

posted @ 2017-02-16 21:56 LoaderMan 阅读(200) 评论(0) 推荐(0) 编辑

Properties

摘要: Properties类对应.properties文件。文件内容是键值对,键值对之间使用"="或空格隔开。开头是"#"的表示注释 Properties类在加载.properties文件时使用的iso8859-1的编码。所以这个文件中的中文要特殊处理:如果这个配置文件中有中文就必须要进行转义,使用nat 阅读全文

posted @ 2017-02-16 21:53 LoaderMan 阅读(175) 评论(0) 推荐(0) 编辑

标准输入输出流

摘要: 什么是标准输入输出流(掌握) * System.in是InputStream, 标准输入流, 默认可以从键盘输入读取字节数据 * System.out是PrintStream, 标准输出流, 默认可以向Console中输出字符和字节数据 修 改标准输入输出流(了解) * 修改输入流: System. 阅读全文

posted @ 2017-02-16 21:52 LoaderMan 阅读(426) 评论(0) 推荐(0) 编辑

打印流

摘要: 分类: 字节打印流(PrintStream) , 字符打印流(PrintWriter) 特点: 1. 可以对任意数据进行操作 println(Object obj) 2. 只能操作目的地(只能用其进行写数据 , 不能读取数据) 3. 如果启动了自动刷新,那么在调用println方法的时候可以完成自动 阅读全文

posted @ 2017-02-16 21:51 LoaderMan 阅读(201) 评论(0) 推荐(0) 编辑

数据输入输出流

摘要: DataInputStream 和 DataOutputStream * 什么是数据输入输出流 * DataInputStream, DataOutputStream可以按照基本数据类型大小读写数据 * 例如按Long大小写出一个数字, 写出时该数据占8字节. 读取的时候也可以按照Long类型读取, 阅读全文

posted @ 2017-02-16 21:50 LoaderMan 阅读(257) 评论(0) 推荐(0) 编辑

对象操作流

摘要: 该流可以将一个对象写出, 或者读取一个对象到程序中. 也就是执行了序列化和反序列化的操作. ObjectInputStream new ObjectInputStream(InputStream), readObject() 对象操作流优化 阅读全文

posted @ 2017-02-16 21:49 LoaderMan 阅读(196) 评论(0) 推荐(0) 编辑

随机流

摘要: 特点: 父类是Object , 可以对数据进行读和写 ; 其中维护了一个文件指针,可以通过操作文件指针来进行位置的精确控制 构造方法: public RandomAccessFile(String filePathName , String mode) ; // mode: rw: 可读可写 成员方 阅读全文

posted @ 2017-02-16 21:42 LoaderMan 阅读(240) 评论(0) 推荐(0) 编辑

内存输出流

摘要: ByteArrayOutputStream 和 ByteArrayInputStream(理解) 特点: 都是在内存中对数据进行操作 , 不需要关闭 ByteArrayOutputStream * 构造方法: public ByteArrayOutputStream() ; * 成员方法: publ 阅读全文

posted @ 2017-02-16 21:41 LoaderMan 阅读(220) 评论(0) 推荐(0) 编辑

序列流

摘要: a) 序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推. b) 使用方式 ** 整合两个: 整合多个: 阅读全文

posted @ 2017-02-16 21:39 LoaderMan 阅读(296) 评论(0) 推荐(0) 编辑

转换流示例代码

摘要: package com.loaderman.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import jav... 阅读全文

posted @ 2017-02-16 21:38 LoaderMan 阅读(245) 评论(0) 推荐(0) 编辑

字符流的示例代码

摘要: FileReader类的read()方法可以按照字符大小读取 FileReader fr = new FileReader("aaa.txt"); //创建输入流对象,关联aaa.txt int ch; while((ch = fr.read()) != -1) { //将读到的字符赋值给ch Sy 阅读全文

posted @ 2017-02-16 21:37 LoaderMan 阅读(246) 评论(0) 推荐(0) 编辑

字符流

摘要: 字符流是可以直接读写字符的IO流 组成: 字节流 + 编码表 ** 常见的编码表: ASCII , GBK , UTF-8 ** 字符输入流 Reader ** 字符输出流 Writer InputStreamReader(转换输入流) * 构造方法: public InputStreamReade 阅读全文

posted @ 2017-02-16 21:31 LoaderMan 阅读(148) 评论(0) 推荐(0) 编辑

IO流的标准处理代码

摘要: FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream("aaa.txt"); fos = new FileOutputStream("bbb.txt"); int b; while((b = fis.read()) != -1) { f... 阅读全文

posted @ 2017-02-16 21:30 LoaderMan 阅读(339) 评论(0) 推荐(0) 编辑

小数组的读写和带Buffer的读写哪个快

摘要: 定义小数组如果是8192个字节大小和Buffered比较的话 定义小数组会略胜一筹,因为读和写操作的是同一个数组 而Buffered操作的是两个数组 阅读全文

posted @ 2017-02-16 21:29 LoaderMan 阅读(346) 评论(0) 推荐(0) 编辑

字节流的示例代码

摘要: read()一次读取一个字节 FileInputStream fis = new FileInputStream("aaa.txt"); //创建一个文件输入流对象,并关联aaa.txt int b; //定义变量,记录每次读到的字节 while((b = fis.read()) != -1) { 阅读全文

posted @ 2017-02-16 21:26 LoaderMan 阅读(559) 评论(0) 推荐(0) 编辑

字节流

摘要: FileInputStream 构造方法 public FileInputStream(String filePathName) public FileInputStream(File file) 成员方法 public int read() ; 一次读取一个字节 public int read(b 阅读全文

posted @ 2017-02-16 21:15 LoaderMan 阅读(183) 评论(0) 推荐(0) 编辑

IO流概述

摘要: 作用: 处理设备之间的数据传输的 I: Input(输入) , O: Output(输出) 什么是输入和输出? 我们说输入和输出问题是站在内存的角度而言 , 如果我们程序读取硬盘上的数据那么就是输入 , 如果我们程序往硬盘上写数据那么就是输出 分类 流按操作类型分为两种 字节流 字节输入流 Inpu 阅读全文

posted @ 2017-02-16 21:13 LoaderMan 阅读(220) 评论(0) 推荐(0) 编辑

自定义注解

摘要: 它类似于新创建一个接口文件,但为了区分,我们需要将它声明为@interface,如下例: 阅读全文

posted @ 2017-02-16 21:11 LoaderMan 阅读(223) 评论(0) 推荐(0) 编辑

@SuppressWarnings

摘要: 其参数有: deprecation,使用了过时的类或方法时的警告 unchecked,执行了未检查的转换时的警告 fallthrough,当 switch 程序块直接通往下一种情况而没有 break 时的警告 path,在类路径、源文件路径等中有不存在的路径时的警告 serial,当在可序列化的类上 阅读全文

posted @ 2017-02-16 21:10 LoaderMan 阅读(164) 评论(0) 推荐(0) 编辑

@Deprecated注解

摘要: 它的作用是对不应该再使用的方法添加注解,当编程人员使用这些方法时,将会在编译时显示提示信息,它与javadoc里的@deprecated标记有相同的功能,准确的说,它还不如javadoc @deprecated,因为它不支持参数,使用@Deprecated的示例代码示例如下: /** * 测试Dep 阅读全文

posted @ 2017-02-16 21:08 LoaderMan 阅读(338) 评论(0) 推荐(0) 编辑

@Override注解

摘要: 它的作用是对覆盖超类中方法的方法进行标记,如果被标记的方法并没有实际覆盖超类中的方法,则编译器会发出错误警告。 阅读全文

posted @ 2017-02-16 21:06 LoaderMan 阅读(335) 评论(0) 推荐(0) 编辑

注解的概述

摘要: 定义: 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 作用分类: 编写文档:通过代码里标识的元数据生成文档【生成文档d 阅读全文

posted @ 2017-02-16 21:02 LoaderMan 阅读(218) 评论(0) 推荐(0) 编辑

自定义泛型

摘要: 自定义泛型 * 自定义泛型类 public class 类名<数据类型> {} * 自定义泛型方法 public <数据类型> 返回值类型 方名称(数据类型 变量名) {} * 自定义泛型接口 public interface 接口<数据类型> {} public class Demo_Generi 阅读全文

posted @ 2017-02-16 21:01 LoaderMan 阅读(216) 评论(0) 推荐(0) 编辑

泛型

摘要: 泛型的格式: <数据类型1 , 数据类型2 , ...> 泛型的作用: 用来限定集合中存储元素的数据类型 泛型的使用:<>中放的必须是引用数据类型,前后的泛型必须一致,或者后面的泛型可以省略不写(1.7的新特性菱形泛型) 好处: * 将运行的错误提前到了编译期 * 省略了向下转型 * 除去黄色警告线 阅读全文

posted @ 2017-02-16 20:59 LoaderMan 阅读(198) 评论(0) 推荐(0) 编辑

final和finally和finalize的区别

摘要: final 修饰类,不能被继承 修饰方法,不能被重写 修饰变量,只能赋值一次 finally 是try语句中的一个语句体,不能单独使用,用来释放资源 finalize 是一个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 阅读全文

posted @ 2017-02-16 20:57 LoaderMan 阅读(148) 评论(0) 推荐(0) 编辑

异常处理注意事项

摘要: 如果catch里面有return语句,请问finally的代码还会执行吗?如果会,请问是在return前还是return后? 答:会执行,在return前,准确的说在return中执行 阅读全文

posted @ 2017-02-16 20:57 LoaderMan 阅读(253) 评论(0) 推荐(0) 编辑

如何使用异常处理

摘要: 原则:如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这是用throws 区别: 后续程序需要继续运行就try 后续程序不需要继续运行就throws 如果JDK没有提供对应的异常,需要自定义异常。 区别: 后续程序需要继续运行就try 后续程序不需要继续运行就throws 如果 阅读全文

posted @ 2017-02-16 20:56 LoaderMan 阅读(168) 评论(0) 推荐(0) 编辑

自定义异常

摘要: 自定义异常:自己定义一个类,然后让该类去继承 RuntimeException 或者 Exception ; 然后提供指定的构造方法(两个) ; 阅读全文

posted @ 2017-02-16 20:55 LoaderMan 阅读(260) 评论(0) 推荐(0) 编辑

异常的注意事项

摘要: * a:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏) * b:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常 * c:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方 阅读全文

posted @ 2017-02-16 20:52 LoaderMan 阅读(133) 评论(0) 推荐(0) 编辑

编译期异常和运行期异常

摘要: 编译期异常: 我们必须要对其进行处理,如果不处理程序无法编译通过 运行期异常: 我们可以对其进行处理,也可以不处理 阅读全文

posted @ 2017-02-16 20:51 LoaderMan 阅读(224) 评论(0) 推荐(0) 编辑

throws和throw的使用

摘要: throws 用在方法定义上 后面跟一个或者多个异常名称 如果是多个异常名称,之间使用","隔开 , 表达的意思是给该方法添加一个或者多个异常声明; 告诉调用者该方法可能会出现问题 throw 用在方法定义中,后面跟一个异常对象,这个异常对象可以是编译期异常对象也可以是运行期异常对象,表示的意思是抛 阅读全文

posted @ 2017-02-16 20:50 LoaderMan 阅读(287) 评论(0) 推荐(0) 编辑

JV默认是如何处理异常

摘要: main函数收到这个问题时,有两种处理方式: a:自己将该问题处理,然后继续运行 b:自己没有针对的处理方式,只有交给调用main的jvm来处理 jvm有一个默认的异常处理机制,就将该异常进行处理. 并将该异常的名称,异常的信息.异常出现的位置打印在了控制台上,同时将程序停止运行 JVM对异常的默认 阅读全文

posted @ 2017-02-16 20:49 LoaderMan 阅读(225) 评论(0) 推荐(0) 编辑

异常处理

摘要: 概述: 就是在java程序的运行过程中很有可能会出现的错误 分类: Throwable Ø Error Ø Exception l 编译期异常 非 RuntimeException l 运行期异常 RuntimeException 以及 RuntimeException 的子类 异常处理方案 try 阅读全文

posted @ 2017-02-16 20:22 LoaderMan 阅读(151) 评论(0) 推荐(0) 编辑

数据结构

摘要: 概述: 就是存储数据的方式 分类: 栈 , 队列 , 数组 , 链表 , 哈希表 , 树 数据结构的特点: 栈: 先进后出 队列: 先进先出 数组: 查询块 , 增删慢 链表: 查询慢 , 增删快 阅读全文

posted @ 2017-02-16 20:20 LoaderMan 阅读(172) 评论(0) 推荐(0) 编辑

集合面试题

摘要: 获取数组的长度使用什么?获取字符串使用什么?获取集合使用什么? 答: 获取数组的长度使用length属性 获取字符串使用length()方法 获取集合使用size()方法 HashMap和HashTable的区别? 相同点 HashMap 和 HashTable 都是基于哈希表实现的,其内部每个元素 阅读全文

posted @ 2017-02-16 20:20 LoaderMan 阅读(173) 评论(0) 推荐(0) 编辑

集合遍历

摘要: set集合遍历: 1.迭代器 2.增强for循环:只能遍历 List集合的遍历: 1. 迭代器 2. 增强for循环 3. 普通for循环 get(index) 和size() map集合的遍历: 1. 迭代器 2. 增强for循环 注:增强for循环:只能遍历,不能删除,迭代器遍历可以删除,但必须 阅读全文

posted @ 2017-02-16 20:19 LoaderMan 阅读(195) 评论(0) 推荐(0) 编辑

集合汇总

摘要: List(存取有序,有索引,可以重复) ArrayList 底层是数组实现的,线程不安全,查找和修改快,增和删比较慢 LinkedList 底层是链表实现的,线程不安全,增和删比较快,查找和修改比较慢 Vector 底层是数组实现的,线程安全的,无论增删改查都慢 如果查找和修改多,用ArrayLis 阅读全文

posted @ 2017-02-16 20:18 LoaderMan 阅读(160) 评论(0) 推荐(0) 编辑

HashMap和hashTable的区别

摘要: * Hashtable是JDK1.0版本出现的,是线程安全的,效率低,HashMap是JDK1.2版本出现的,是线程不安全的,效率高 * Hashtable不可以存储null键和null值,HashMap可以存储null键和null值 阅读全文

posted @ 2017-02-16 20:11 LoaderMan 阅读(227) 评论(0) 推荐(0) 编辑

导航