Java下笔记
2020-08-02 本文已影响0人
Anwfly
一、String、Scanner、API
1. API会查询
2. Scanner:
- hashNext(...) 、HashNextLine
- next(...) 、nextLine
3. String
- 构造方法:5个
- 成员方法:判断、获取、转换、其他
二、 StringBuffer
1. StringBuffer概念、特点
- 线程安全字符序列。
- 为什么?string每次修改都要新建一个对象,浪费控件、耗费时间。
- 特点:修改不会新建对象
- 与String的区别:①长度可变②如果使用前者做字符串的拼接,不会浪费太多的资源
2. StringBuffer构造方法:3个构造(无参、带容量参数、带默认值的参数)
3. StringBuffer成员方法:
- 添加:append(String str)、insert(int offset,String str)
- 删除:deleteCharAt(int index)、delete(int start,int end)
- 替换:replace(int start,int end,String str)
- 截取:
subString(int startIndex)包含下标index对应的字符
subString(int start,int end):左闭右开 - 反转:reverse()
4. StringBuffer和String的转换
- String转StringBuffer:
①sb.append(String str)
②new StringBuffer(String str) - StringBuffer转String
①new String(sb)
②sb.toString()
5.高级数组操作
①冒泡排序:相邻元素比较,大的后移,最后最大值到了最大索引处。
②选择排序:第一个元素和后边依次作比较,最小的放最小索引处。
③二分查找:目标元素和中间值比较,如果等于则查找成功,如果大于中间值则查找右边子表,如果小于中间值则查找左边子表。
三、包装类
- 什么是包装类及作用
- Integer
构造(2个):
成员方法(3个):toString()、parseInt()、valueOf() - int和string相互转化
int --> String:""、int.toString()、String.valueOf()
String--> int :Integer.parse() - 自动拆箱、装箱
- Character
构造方法(1个):
成员方法(5个):isDigit()、isUpperCase()、isLowerCase()、toLowerCase()、toUpperCase() - Math:
①两个常量:E 、PI
②N个方法:abs()、max()、min()、round()、random()、floor()、ceil()、sqrt()、pow()
2-5随机数:2+(int)(Math.random*(5-2+1)) - Random
- System
- Date:
两个构造:无参-有默认种子,当前系统时间毫秒值、有参(int seed)
两个方法:getTime()、setTime() - DateFormat
一个构造:Pattern-y、M、d、H、m、s
两个方法:format()-格式化、parse()-解析 - Calender
获取对象:单例设计模式提供对象-Calender.getInstance()
一个方法:get(String key)
key:Calendar.YEAR...
四、正则表达式
- 概念:符合某一规则字符串
- 规则
①字符:x \n \r
②字符类:[abc] [^abc] [0-9] [a-zA-Z]
③预定义字符类:. \. \d \w=[a-zA-Z_0-9]
④边界匹配器:^ $ \b
⑤数量词:x+ x? x* x{n} x{n,} x{n,m} - 身份证、手机号、邮箱、QQ、密码、验证码
QQ:"[1-9][0-9]{4,9}"
ID:"[1-9][0-9]{16}[0-9X]"
密码:"[A-Z]\w{6,12}"
验证码:"\d{4}"
邮箱:"\w+@\w{2,6}(\.[a-z]{2,3})+" - 正则功能:
①判断:String.mathes()
②分割:String[] arr = String.Split("x");
③替换:replaceAll()
五、集合
- 集合由来、特点
- Collection:单列集合根接口
add():添加元素
addAll():添加集合
remove(Object o):删除元素
clear():清除所有元素
removeAll(collection):删除与指定集合相同的元素
retainAll(Collection):删除与指定集合不同的元素
size():大小
contains():包含元素、集合
isEmpty():集合是否为空
toArray():集合转换为数组 - Iterator:集合专门迭代器,遍历集合
hasNext():判断是否有下一个元素
next():获取下一元素 - List:有序的Collection
add(index,object):插入
set(index,object):修改
remove(index):删除指定下表的元素
get(index):获取指定下表的元素
ListIterator:
ConcurrentModificationException: - 数据结构:储存数据的方式
①栈:先进后出
②队列:先进先出
③数组:有索引、长度不可变、查询快、增删慢
④链表:查询慢,增删快 - ArrayList
特点:查询快,增删慢,线程不安全,效率高
特有方法(2个构造):
ArrayList()
ArrayList(Collection)
List继承过来方法 - Vector
特点:底层是数组,查询快,增删慢,线程安全,效率低
特有方法(3):
addElement()
elementAt(int index)
elements() - LinkedList:
特点:查询慢,增删快,线程不安全,效率高
特有方法(7):
addFirst()
addLast()
getLast()
getFirst()
removeFirst()
removeLast()
add(int index,Object o) - 泛型
概念:一种把类型确定工作推迟到创建对象或者调用方法时确定的特殊类型,简称参数化类型。
格式:<任意大写字母>注意:必须是引用数据类型
分类
①泛型类:public class 类名<T> {}
②泛型方法:public <T> void 方法名(T t){}
③泛型接口:public interface 接口名<T>{} - TreeSet类概述和特点
六、Set
- Set概述、特点
无序、不重复 - HashSet
特点:无序、不重复
去重(string和自定义对象)
如果自定义对象:必须重写方法hashCode()、equals() - LinkedHashSet类概述和特点
特点:有序、元素不重复 - 静态导入:
一个类中定义几个静态方法,在测试类中调用不用类名调用,导入类名包,加*(通配符)
import static day06.FlyMath.*;
- 可变参数:
public void get(int... arr){}
- 注意:把可变参数写在参数列表最后。
- 工具类
Arrays(数组):sort()、fill()、toString()、binarySerach()、asList()
Collections(集合):sort()、reverse()、swrap()、max()、min()、reverseOlder()、shufle() - 增强For
格式:
for(数据类型 变量:集合/数组){}
好处:
①避免下标越界
②简化数组或者集合遍历
七、Map
- 概述与特点
概念:双列集合,存储键值对
特点:键唯一、值可重复 - 成员方法(11):
put(key,value)
remove(key)
isEmpty()
size()
get(key)
clear()
containsKey()
containsValue()
keySet()
values()
entrySet() - Map四种遍历
①ketSet():通过键获取值
②entrySet()
③values():只能获取值,无法通过值获取键 - HashMap特点、使用
特点:保证键的唯一性
使用:键和值可以是任意引用类型,键唯一 - LinkedHashMap
- TreeMap
- HashTable
八、异常
- 概念:程序在运行时发生不正常事件,打断程序执行流程
- 分类:
①编译时异常
②运行异常 - 常见异常
①ArithmeticException
②NullPointerException
③ClassCastException
④ArrayIndexOutOfBoundsException:数组越界
⑤IndexOutOfBoundsException:集合越界
⑥FileNotFoundException
⑦IOException
⑧SQLException
⑨NumFormatException
⑩NoSuchMethodException - 处理
①抛给JVM,不作处理,仅仅抛出来
②try...catch...finally
③自定义异常
九、File
-
概念:文件和文件夹
-
构造:
①File(String pathName)
②Fiel(File file)
③File(File paranet,Strinig fileName)
④File(String parent,String FileName) -
成员方法
①createNewFile()
②delete()
③reNmae()
④mkDir()
⑤mdDirs()
⑥isFile()
⑦isDirectory()
⑧isHidden()
⑨canRead()
⑩canWrite()
⑪exist()
⑫getName()
⑭getPath()
⑮getAbsolutePath()
⑯getParent()
⑰lenth()
⑱lastModified()
⑲listRoots()
⑳list()、list(fiilter)、listFiles()、listFiles(Filter) -
递归
概念
案例:阶乘、斐波那契数列、遍历文件
十、IO
- IO概念:设备之间传递数据
- IO基类
InputStream、outPutStream、Reader、Writer - FileOutPutStream:从内存(程序)写到硬盘
FileInPutStream:从硬盘读取到内存(程序) - 缓存字节流
BufferedOutputStream(outPutStream):
BufferedInputStream(InputStream): - 转换流(字符流)
原因:字节流操作字符不方便
组成:字节流+编码表
编码表:现实世界字符和对应的数值组成的一张表
六个流:
①InputStreamReader、outPutStreamWriter
②FileReader、FileWriter
③BufferedReader、BufferedWriter - 序列化流:java对象—>硬盘数据、网络节点
反序列化流:硬盘数据、网络节点—>java对象
Android中使用:界面之间传递数据、缓存 - 文件随机访问流:RandomAccessFile
概念: 对文件随机读和写
文件指针:获取、设置
模式:四种("rw")
十一、多线程
- 几个概念:程序、进程、线程
- 创建线程:
方式一:自定义类继承Thread,重写方法run,在run里执行操作,调用start开启;
方式二: