Java基础系列<一>
2016-12-08 18:33
316 查看
1、 泛型 的好处:
2、在泛型中没有多态的概念,两边的数据必须要一致。 或者是只写一边 的泛型类型。
推荐使用: 两边的数据类型都写上一致的。
3.线程安全问题出现 的根本原因:
1> 必须要存在两个或者两个以上的线程共享着一个资源。
2> 操作共享资源的代码必须有两句或者两句以上。
4、1>同步代码块的锁可以是任意的对象。 同步函数的锁是固定 的,非静态函数的锁对象是this对象。 静态函数的锁对象是class对象。
2> 锁对象必须是多线程共享的对象,否则锁不住。
3> 在同步代码块或者是同步函数中调用sleep方法是不会释放锁对象的,如果是调用了wait方法是会释放锁对象的。
5、 IO解决问题: 解决设备与设备之间 的数据传输问题。 比如: 硬盘—>内存 内存—–>硬盘.
6、字节流:
输入字节流:
————| InputStream 所有输入字节流的基类。 抽象类。
————| FileInputStream 读取文件的输入字节流。
————| BufferedInputStream 缓冲输入字节流。 该类内部其实就是维护了一个8kb字节数组而已。该类出现的目的是为了提高读取文件数据的效率。
输出字节流:
————| OutputStream 所有输出字节流的基类。 抽象类。
————| FileOutputStream 向文件输出数据 的输出字节流。
————| BufferedOutputStream 缓冲输出字节流。 该类出现的目的是为了提高向文件写数据的效率。 该类内部其实也是维护了一个8kb的字节数组而已。
什么情况使用字节流: 读取到数据不需要经过编码或者解码的情况情况下这时候使用字节流。比如:图片数据;
字符流 = 字节流 + 编码(解码)
字符流:
输入字符流
——–| Reader 所有输入字符流的基类。 抽象类。
———–| FileReader 读取文件字符的输入字符流。
———–| BufferedReader 缓冲输入字符流。 该类出现的目的是为了提高读取文件字符的效率并且拓展了功能(readLine()),它内部 其实就是维护了一个8192个长度的字符数组。
输出字符流
——-| Writer 所有输出字符流的基类。 抽象类。
————| FileWriter 向文件输出字符数据的输出字符流。
—————| BufferedWriter 缓冲输出字符流。该类出现的目的是为了提高写文件字符的效率并且拓展了功能(newLine())。
什么情况下使用字符流:如果读写的都是字符数据,这时候我们就使用字符流。
转换流:
输入字节流的转换流 输入字节流———输入字符流
InputSrteamReader
输出字节流的转换流
OutputStreamWriter
转换流的作用:
1. 可以把对应的字节流转换成字符流使用。
2. 可以指定码表进行读写文件的数据。
7、JUnit
不用JUnit单元测试,如果方法需要测试,都需要在main方法上调用,得到的接果还需要人工对比。
junit要注意的细节:
如果使用junit测试一个方法的时候,在junit窗口上显示绿条那么代表测试正确,如果是出现了红条,则代表该方法测试出现了异常不通过。
如果点击方法名、 类名、包名、 工程名运行junit分别测试的是对应的方法,类、 包中 的所有类的test方法,工程中的所有test方法。
@Test测试的方法不能是static修饰与不能带有形参。
如果测试一个方法的时候需要准备测试的环境或者是清理测试的环境,那么可以@Before、 @After 、@BeforeClass、 @AfterClass这四个注解。
@Before、 @After 是在每个测试方法测试的时候都会调用一次, @BeforeClass、 @AfterClass是在所有的测试方法测试之前与测试之后调用一次而已。
junit使用规范:
1> 一个类如果需要测试,那么该类就应该对应着一个测试类,测试类的命名规范 : 被测试类的类名+ Test.
2> 一个被测试的方法一般对应着一个测试的方法,测试的方法的命名规范是: test+ 被测试的方法的方法名.
8.内省
内省的本质就是反射;
内省作用:把对象的属性数据封装到对象中。
9.XML
XML文件以xml后缀名结尾。
XML文件需要使用xml解析器去解析。浏览器内置了xml解析器。
特殊字符 转义字符
“<” “<”;
“>” “>”;
” ” ” “"”;
“&” ” &”;
“空格” “&nsbp”;
CDATA块:可以让一些需要进行包含特殊字符的内容统一进行原样输出。
XML解析方式: DOM解析 ; SAX解析。
10.DOM解析 vs SAX解析:
1> 把运行时出现 的问题提前至了编译时。 2>避免了无谓的强制类型转换。
2、在泛型中没有多态的概念,两边的数据必须要一致。 或者是只写一边 的泛型类型。
推荐使用: 两边的数据类型都写上一致的。
3.线程安全问题出现 的根本原因:
1> 必须要存在两个或者两个以上的线程共享着一个资源。
2> 操作共享资源的代码必须有两句或者两句以上。
4、1>同步代码块的锁可以是任意的对象。 同步函数的锁是固定 的,非静态函数的锁对象是this对象。 静态函数的锁对象是class对象。
2> 锁对象必须是多线程共享的对象,否则锁不住。
3> 在同步代码块或者是同步函数中调用sleep方法是不会释放锁对象的,如果是调用了wait方法是会释放锁对象的。
5、 IO解决问题: 解决设备与设备之间 的数据传输问题。 比如: 硬盘—>内存 内存—–>硬盘.
6、字节流:
输入字节流:
————| InputStream 所有输入字节流的基类。 抽象类。
————| FileInputStream 读取文件的输入字节流。
————| BufferedInputStream 缓冲输入字节流。 该类内部其实就是维护了一个8kb字节数组而已。该类出现的目的是为了提高读取文件数据的效率。
输出字节流:
————| OutputStream 所有输出字节流的基类。 抽象类。
————| FileOutputStream 向文件输出数据 的输出字节流。
————| BufferedOutputStream 缓冲输出字节流。 该类出现的目的是为了提高向文件写数据的效率。 该类内部其实也是维护了一个8kb的字节数组而已。
什么情况使用字节流: 读取到数据不需要经过编码或者解码的情况情况下这时候使用字节流。比如:图片数据;
字符流 = 字节流 + 编码(解码)
字符流:
输入字符流
——–| Reader 所有输入字符流的基类。 抽象类。
———–| FileReader 读取文件字符的输入字符流。
———–| BufferedReader 缓冲输入字符流。 该类出现的目的是为了提高读取文件字符的效率并且拓展了功能(readLine()),它内部 其实就是维护了一个8192个长度的字符数组。
输出字符流
——-| Writer 所有输出字符流的基类。 抽象类。
————| FileWriter 向文件输出字符数据的输出字符流。
—————| BufferedWriter 缓冲输出字符流。该类出现的目的是为了提高写文件字符的效率并且拓展了功能(newLine())。
什么情况下使用字符流:如果读写的都是字符数据,这时候我们就使用字符流。
转换流:
输入字节流的转换流 输入字节流———输入字符流
InputSrteamReader
输出字节流的转换流
OutputStreamWriter
转换流的作用:
1. 可以把对应的字节流转换成字符流使用。
2. 可以指定码表进行读写文件的数据。
7、JUnit
不用JUnit单元测试,如果方法需要测试,都需要在main方法上调用,得到的接果还需要人工对比。
junit要注意的细节:
如果使用junit测试一个方法的时候,在junit窗口上显示绿条那么代表测试正确,如果是出现了红条,则代表该方法测试出现了异常不通过。
如果点击方法名、 类名、包名、 工程名运行junit分别测试的是对应的方法,类、 包中 的所有类的test方法,工程中的所有test方法。
@Test测试的方法不能是static修饰与不能带有形参。
如果测试一个方法的时候需要准备测试的环境或者是清理测试的环境,那么可以@Before、 @After 、@BeforeClass、 @AfterClass这四个注解。
@Before、 @After 是在每个测试方法测试的时候都会调用一次, @BeforeClass、 @AfterClass是在所有的测试方法测试之前与测试之后调用一次而已。
junit使用规范:
1> 一个类如果需要测试,那么该类就应该对应着一个测试类,测试类的命名规范 : 被测试类的类名+ Test.
2> 一个被测试的方法一般对应着一个测试的方法,测试的方法的命名规范是: test+ 被测试的方法的方法名.
8.内省
内省的本质就是反射;
内省作用:把对象的属性数据封装到对象中。
9.XML
XML文件以xml后缀名结尾。
XML文件需要使用xml解析器去解析。浏览器内置了xml解析器。
特殊字符 转义字符
“<” “<”;
“>” “>”;
” ” ” “"”;
“&” ” &”;
“空格” “&nsbp”;
CDATA块:可以让一些需要进行包含特殊字符的内容统一进行原样输出。
XML解析方式: DOM解析 ; SAX解析。
解析工具: 1)JAXP (oracle-Sun公司官方) 2)JDOM工具(非官方) 3)Dom4J工具(非官方) 三大框架(默认读取xml的工具就是Dom4j) ....... SAX解析原理:[传送门](http://blog.csdn.net/xradio/article/details/9323875)
10.DOM解析 vs SAX解析:
相关文章推荐
- Java基础知识
- java基础(一)
- 怎样学习java,漫谈java学习之路
- 设置jdk环境变量时lib中的rt.jar ,dt.jar ,tool.jar是什么,作用是什么
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
- 学习日志---treemap
- java基础知识笔记
- java中web应用中重定向与转发的区别
- java基础篇---枚举详解
- java基础第七天
- java基础第十天
- java基础第十二天
- java基础第十三天
- java基础第十四天
- java基础第十六天
- java基础第十七天
- Java 基础:浅析Java中的final关键字
- java基础数据类型包装类
- equals与null
- java基础第三天_数组