关闭

java基础视频25days(毕老师)学习日志(day17、day18、day19)

136人阅读 评论(0) 收藏 举报

day17

★01
集合,不需要保证唯一,用List。可是想对集合中元素进行排序,不能用Tree,Tree是set集合中的,List里面没有直接排序的方式。可是提供了工具:collections。集合框架的工具类方法。List中的元素想要排序,都要进行比较。直接存入的Student对象2个以上不能进行比较,因为Student本身不具备比较性,加泛型T,可以任意,但必须具备比较性,T extends Comparable<? super T>T 必须是Comparable的子类。用父类方法比。
★12
binarySearch  查找的集合必须是有序的。
★13
练习:fill方法可以将list集合中所有元素替换成指定元素。
将list集合中部分元素替换成指定元素。 lqle¥
replaceAll 反转的原理
★14
TreeSet 集合中元素按照自然顺序排序,自定义一个Comparator,如果是:int num = s1.compareTo(s2);
则依然是按照自然顺序排序。
反转元素排序:集合框架工具类有没有提供这个方法?
reverseOrder
按照长度排序的比较器:强行逆转现有比较器的顺序。
★15
Collections 的方法将不同步的变成同步的。
swap
★16
Arrays:用于操作数组的工具类。
里面都是静态方法。
集合有二分,数组也有二分。
查找直接调用这些方法即可。
equals  比较两个数组里面的内容是否一样?
deepEquals
比较容器和容器中的内容是否一样
fill  替换值  from to ;
sort方法  排序的方法。还可以局部排序fromIndex
toString

把数组变成list集合有什么好处?
可以使用集合的思想和方法来操作数组中的元素。
数组是一个对象,但是它的方法比较少。List中则含有很多已经存在的方法可以调用。
注意:将数组变成集合,不可以使用集合的增删方法。
因为数组的长度是固定的。
contains
get
indexOf()
subList();
如果你增删,那么会发生UnsupportedOprerationException.
凡是支持迭代器的集合,都支持高级for。

方法名和变量名 第一个字母小写。
类名第一个字母要大写。
★19
JDK1.5 新特性:可变参数
show(int...arr)
方法的可变参数。
在使用时注意:可变参数一定要定义在参数列表的最后面
★20  StaticImport 静态导入。
一个类里面的成员包含成员方法和成员变量(成员属性)。

day18:

★01 其他方法
不能被实例化,代表对象没有提供构造函数。
java.util 下的类:Properties中的Hashtable被Map替代了,但是保留了子类Properties
虚拟机在加载时默认的系统信息;
虚拟机启动的时候能发动态地加载一些指定值?
java -Dhaha=qqqqq SystemDemo

value = windws XP
v = qqqqq

★02 Runtime 对象
当一个类没有构造函数摘要的时候,表示它不能直接去创建对象。
不给我建对象,却提供了操作对象的方法。通过一个静态方法获取对象,这个方法的返回类型一定是本类类型。
★03 04
En:
pattern  模式
Gregorian 格林威治
getInstance 返回默认日历
Calendar.YEAR  
★05 math
java.lang
类 Math
★06
IO流概述。
java用于操作流的对象都在IO包中。
ASCII码 美国信息标准交换码。
GB2312 扩容后叫GBK。
国际标准化组织。把各个国家的文字都进行了编排:Unicode码表。其中无论什么字符都用两个字节表示。
UTF-8 :A就用一个字节表示。
字符流的好处
可以在内部去融合编码表,到底查那个码表,由其自身指定。
字符流的对象里面融合了编码表。
图片处理:字节流
★07
如何使用IO流的这些体系呢?
从字符流 开始。
学习体系的时候先看顶层类。Writer类的方法摘要中有很多abstract方法,需要子类去做不同功能实现。
该类主要方法是Write
有了父类方法,我们找子类对象,应该找一个与文件相关的。
直接已知子类中没有可以直接操作文件的。
FileWriter  可以写入文件。该流对象一被初始化,就应该有可以被操作的对象(文件)存在。
Java能够像Window系统的文件中写入数据,就代表着java在调用windows的写动作。
linux和windows写数据的方式不同,java会调用不同系统的写资源,使用完这些资源后,会被释放出来。即执行close动作,关闭流之前,会先调用一次flush。

三个方法:write flush  close
这些方法都涉及到了IO异常,一定要作一些处理动作,那么怎么去处理产生的这些异常呢?请看下一节视频:
★08 IO异常的处理方式。
unlock放到finally中去。
在try外面建立引用,在内部进行初始化。这样fw变量就作用整个函数。
目录分割符:windows中要写\\  2个。因为转义字符的关系。
&初始化抛出异常,代表初始化对象不存在。没有创建成功。
fw还是null。不能调用close,为了提高代码的健壮性,需要避免。
★09  IO  文件的续写
windows记事本不识别\n 的换行符,需要换行写法:
\r\n
★10 文本文件读取方式一
字符流都有编码。encoding = GBK
读一个文件,先要有这个文件。构造文件名。
★11 文本文件读取方式二
★12 文本文件读取练习
★14  copy文本文件图例。

day19:

★01
windows换行:\r\n.
在linux系统中:\n为换行符号,
所以在字符串中加入换行符需要一个通用的方式:newLine() 它存在于缓冲区对象中。
&记得day18的视频中没有讲buffer的时候
fw.write ,有这种写法。
现在又了缓冲区15:30分,需要再次确认。
★02 BufferedReader
除了字符、数组之外,还可以读取行。
FileReader是一个一个地读。
line=fr.lineReader()
★03同安缓冲区复制文本文件。
行终止符
readLine()的原理
★04
定义一个存储单位,把一行中的数据临时存储起来,然后再一起返回这些数据。
做一个类,同buffer功能一样。
MyBufferedReader
其中sb.append((char)ch)有疑问:
初,ch定义为int型,这里可以将int转为char型吗?
★08
每个流对象对于close实现方式不一样。
★09
带行号的装饰类。

★10
同时在构造函数里面将被包装的对象传递进来:
Reader r。

字符串变成字符:
getBytes().
toCharArray.
★14
自定义字节流的缓冲区;
★15 读取键盘录入:
/r 13  /n 10
★16读取转换流
★17 写入转换流
InputStreamReader 字节通向字符的桥梁
OutputStreamReader 字符通向字节的桥梁

以前我们写输出语句,现在我们知道了输出语句原来底层用的就是流对象。我们学了流以后,可以对其进行装饰。
键盘录入最常见写法:
BufferedReader bufr =
   new BufferedReader(new InputStreamReader(System.in));

★18 IO流 流操作规律
字节输出流能操作文件的对象是哪一个?

★22 
打印出系统信息到文档。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6209次
    • 积分:218
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论