[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
编程语言
> 详细
[Java] HOW2J(Java中级)
时间:
2020-03-16 01:54:59
阅读:
83
评论:
0
收藏:
0
[点我收藏+]
异常
定义:导致程序正常流程被中断的事件
异常处理常见手段
try catch:将可能抛出异常的代码放在try的块中,一旦出现异常就跳转到catch的块中处理
throws/throw:不在本模块处理异常,而是交给调用者处理
finally:无论是否出现异常,都会执行(保证能正常结束)
使用异常的父类进行catch:可以,但可能不精确
多异常捕捉:分别进行catch,或放在一个catch里统一捕捉
throws出现在方法声明上(可能出现异常),而throw通常出现在方法体内(一定抛出异常)
异常分类
可查异常(CheckedException):必须进行处理的异常,否则编译不通过
运行时异常(RuntimeException):不是必须进行try catch的异常,不try catch也不会有编译错误,如下标越界或空指针
错误(Error):系统级别的异常,不要求强制捕捉,如内存耗尽
文件
文件类(java.io.File):文件和文件夹对象都是File,有File对象不代表硬盘里有文件
流(Stream)就是一系列数据(文件、数据库、网络),用于不同介质之间的数据交互
操作文件用File,操作文件的内容用Stream
字节流
字节输入流(InputStream):读取文件的数据到程序中(硬盘->JVM内存),为抽象类,只提供方法声明
字节输出流(OutputStream)
java.io.FileInputStream是InputStream的子类,用于对文件的读取
java.io.FileOutputStream是OutputStream的子类,用于向文件写数据
字符流
字符输入流(java.io.Reader)
字符输出流(java.io.Writer)
java.io.FileReader是Reader的子类,用于从文件读数据
java.io.FileWriter是Writer的子类,用于向文件写数据
用完后,在finally中关闭流
字节流与字符流的区别:字节流直接与终端文件进行数据交互,字符流需将数据经过缓冲区处理才与文件进行数据交互,字符流处理中文更方便
常见编码
ASCII:数字和字母
GBK:中文
UNICODE:所有文字,Java采用的编码方式
UTF-8:UNICODE的简化版,节省内存
ANSI:本地码,中文操作系统就是GBK
缓存流
一次性读较多的数据到缓存,缓存中数据读完后再到硬盘取数据,以减少硬盘的访问次数(用大碗吃饭)
与用户交互时,键盘输入完了再读数据
缓存流必须建立在一个存在的流的基础上
缓冲字节输入流(java.io.BufferedInputStream)
缓冲字节输出流(java.io.BufferedOutputStream)
缓存字符输入流(java.io.BufferedReader):一次读取一行数据
缓存字符输出流(java.io.PrintWriter):一次写一行数据
readLine():读取一行数据,默认以“\n”作为分隔符
flush():立即把数据写到硬盘
数据流
数据输入流(java.io.DataInputStream)
数据输入流(java.io.DataOutputStream)
readUTF()、writeUTF():格式化读写
对象流
序列化:一个对象以流的形式进行传输。要求该对象对应的类必须实现Serializable接口
序列化操作类(java.io.ObjectOutputStream):将对象序列化为指定格式的二进制数据
反序列化操作(java.io.ObjectInputStream):将序列化的二进制对象信息转换回对象内容
writeObject():序列化对象
readObject():从序列流中读取对象
如果对象中某些属性的内容不需要被保存,定义为transient
扫描流
Scanner:逐行读取数据,比System.in.read()更方便
System类中的IO常量
System.in:InputStream类对象,用于接收键盘的数据输入
System.out:PrintStream类对象,用于显示器上的信息输出,可调用PrintStream类中的println()
System.err:PrintStream类对象,用于显示器上的错误输出
集合框架
java.util.Collection
Set、List、Queue、Deque的接口
常用方法
public boolean add(E e)
public Iterator<E> iterator()
java.util.List
扩充方法(父接口:Collection)
public E get(int index):取得索引标号的内容(重要)
public E set(int index, E element):修改指定索引编号的内容
public ListIterator<E> listIterator():为ListIterator接口实例化
java.util.ArrayList
实现了接口java.util.List
大小随对象增加而增长,可代替数组
数据按照保存顺序存放,允许重复
常用方法
add():增加
contains():是否存在对象,需要覆写equals()
get():获取指定位置
indexOf():获取对象位置
remove():删除,需要覆写equals()
set():替换
size():获取大小
toArray():转换为数组,不指明类型则转为Object数组
addAll():把另一个容器的所有对象加进来
clear():清空
遍历方法
for
iterator:在while或for循环中使用
for::无法进行ArrayList的初始化,无法得知当前是第几个元素
java.util.LinkedList
实现了List<E>、Queue<E>接口
线性表,分为Queue(FIFO)、Stack(FILO)、Deque(双向链表)等
java.util.HashMap<K,V>
实现了Map<K,V>接口
以key-value对的方式存储数据
key的值是唯一的,以相同的key插入的value会覆盖原有的值,同一个value可以以不同key插入
与List<E>相比,可以实现极为高效的查找操作
java.util.HashTable<K,V>
与hashMap<K,V>相比
不能存放null
线程安全
java.util.LinkedHashSet<K,V>
实现了Set<E>接口
元素按插入顺序排序
java.util.HashSet<E>
实现了Set<E>接口
封装了Map<E>
value不能重复
元素没有顺序
不同于List<E>,不提供get()获取指定元素位置,遍历需用迭代器,或增强for
java.util.Collections
容器的工具类
泛型(Generic)容器
不指定泛型的容器可存放任意类型元素,指定了泛型的容器只能存放指定类型元素(保证元素类型一致)
前后都要使用泛型,如List<Hero> genericheros = new ArrayList<Hero>();
[Java] HOW2J(Java中级)
原文:https://www.cnblogs.com/cxc1357/p/12401342.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!