Java下笔记

一、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.高级数组操作

①冒泡排序:相邻元素比较,大的后移,最后最大值到了最大索引处。
②选择排序:第一个元素和后边依次作比较,最小的放最小索引处。
③二分查找:目标元素和中间值比较,如果等于则查找成功,如果大于中间值则查找右边子表,如果小于中间值则查找左边子表。

三、包装类

  1. 什么是包装类及作用
  2. Integer
    构造(2个):
    成员方法(3个):toString()、parseInt()、valueOf()
  3. int和string相互转化
    int --> String:""、int.toString()、String.valueOf()
    String--> int :Integer.parse()
  4. 自动拆箱、装箱
  5. Character
    构造方法(1个):
    成员方法(5个):isDigit()、isUpperCase()、isLowerCase()、toLowerCase()、toUpperCase()
  6. Math:
    ①两个常量:E 、PI
    ②N个方法:abs()、max()、min()、round()、random()、floor()、ceil()、sqrt()、pow()
    2-5随机数:2+(int)(Math.random*(5-2+1))
  7. Random
  8. System
  9. Date:
    两个构造:无参-有默认种子,当前系统时间毫秒值、有参(int seed)
    两个方法:getTime()、setTime()
  10. DateFormat
    一个构造:Pattern-y、M、d、H、m、s
    两个方法:format()-格式化、parse()-解析
  11. Calender
    获取对象:单例设计模式提供对象-Calender.getInstance()
    一个方法:get(String key)
    key:Calendar.YEAR...

四、正则表达式

  1. 概念:符合某一规则字符串
  2. 规则
    ①字符: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}
  3. 身份证、手机号、邮箱、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})+"
  4. 正则功能:
    ①判断:String.mathes()
    ②分割:String[] arr = String.Split("x");
    ③替换:replaceAll()

五、集合

  1. 集合由来、特点
  2. Collection:单列集合根接口
    add():添加元素
    addAll():添加集合
    remove(Object o):删除元素
    clear():清除所有元素
    removeAll(collection):删除与指定集合相同的元素
    retainAll(Collection):删除与指定集合不同的元素
    size():大小
    contains():包含元素、集合
    isEmpty():集合是否为空
    toArray():集合转换为数组
  3. Iterator:集合专门迭代器,遍历集合
    hasNext():判断是否有下一个元素
    next():获取下一元素
  4. List:有序的Collection
    add(index,object):插入
    set(index,object):修改
    remove(index):删除指定下表的元素
    get(index):获取指定下表的元素
    ListIterator:
    ConcurrentModificationException:
  5. 数据结构:储存数据的方式
    ①栈:先进后出
    ②队列:先进先出
    ③数组:有索引、长度不可变、查询快、增删慢
    ④链表:查询慢,增删快
  6. ArrayList
    特点:查询快,增删慢,线程不安全,效率高
    特有方法(2个构造):
    ArrayList()
    ArrayList(Collection)
    List继承过来方法
  7. Vector
    特点:底层是数组,查询快,增删慢,线程安全,效率低
    特有方法(3):
    addElement()
    elementAt(int index)
    elements()
  8. LinkedList:
    特点:查询慢,增删快,线程不安全,效率高
    特有方法(7):
    addFirst()
    addLast()
    getLast()
    getFirst()
    removeFirst()
    removeLast()
    add(int index,Object o)
  9. 泛型
    概念:一种把类型确定工作推迟到创建对象或者调用方法时确定的特殊类型,简称参数化类型。
    格式:<任意大写字母>注意:必须是引用数据类型
    分类
    ①泛型类:public class 类名<T> {}
    ②泛型方法:public <T> void 方法名(T t){}
    ③泛型接口:public interface 接口名<T>{}
  10. TreeSet类概述和特点

六、Set

  1. Set概述、特点
    无序、不重复
  2. HashSet
    特点:无序、不重复
    去重(string和自定义对象)
    如果自定义对象:必须重写方法hashCode()、equals()
  3. LinkedHashSet类概述和特点
    特点:有序、元素不重复
  4. 静态导入:
    一个类中定义几个静态方法,在测试类中调用不用类名调用,导入类名包,加*(通配符)
import static day06.FlyMath.*;
  1. 可变参数:
    public void get(int... arr){}
  • 注意:把可变参数写在参数列表最后。
  1. 工具类
    Arrays(数组):sort()、fill()、toString()、binarySerach()、asList()
    Collections(集合):sort()、reverse()、swrap()、max()、min()、reverseOlder()、shufle()
  2. 增强For
    格式:
    for(数据类型 变量:集合/数组){}
    好处:
    ①避免下标越界
    ②简化数组或者集合遍历

七、Map

  1. 概述与特点
    概念:双列集合,存储键值对
    特点:键唯一、值可重复
  2. 成员方法(11):
    put(key,value)
    remove(key)
    isEmpty()
    size()
    get(key)
    clear()
    containsKey()
    containsValue()
    keySet()
    values()
    entrySet()
  3. Map四种遍历
    ①ketSet():通过键获取值
    ②entrySet()
    ③values():只能获取值,无法通过值获取键
  4. HashMap特点、使用
    特点:保证键的唯一性
    使用:键和值可以是任意引用类型,键唯一
  5. LinkedHashMap
  6. TreeMap
  7. HashTable

八、异常

  1. 概念:程序在运行时发生不正常事件,打断程序执行流程
  2. 分类:
    ①编译时异常
    ②运行异常
  3. 常见异常
    ①ArithmeticException
    ②NullPointerException
    ③ClassCastException
    ④ArrayIndexOutOfBoundsException:数组越界
    ⑤IndexOutOfBoundsException:集合越界
    ⑥FileNotFoundException
    ⑦IOException
    ⑧SQLException
    ⑨NumFormatException
    ⑩NoSuchMethodException
  4. 处理
    ①抛给JVM,不作处理,仅仅抛出来
    ②try...catch...finally
    ③自定义异常

九、File

  1. 概念:文件和文件夹

  2. 构造:
    ①File(String pathName)
    ②Fiel(File file)
    ③File(File paranet,Strinig fileName)
    ④File(String parent,String FileName)

  3. 成员方法
    ①createNewFile()
    ②delete()
    ③reNmae()
    ④mkDir()
    ⑤mdDirs()
    ⑥isFile()
    ⑦isDirectory()
    ⑧isHidden()
    ⑨canRead()
    ⑩canWrite()
    ⑪exist()
    ⑫getName()
    ⑭getPath()
    ⑮getAbsolutePath()
    ⑯getParent()
    ⑰lenth()
    ⑱lastModified()
    ⑲listRoots()
    ⑳list()、list(fiilter)、listFiles()、listFiles(Filter)

  4. 递归
    概念
    案例:阶乘、斐波那契数列、遍历文件

十、IO

  1. IO概念:设备之间传递数据
  2. IO基类
    InputStream、outPutStream、Reader、Writer
  3. FileOutPutStream:从内存(程序)写到硬盘
    FileInPutStream:从硬盘读取到内存(程序)
  4. 缓存字节流
    BufferedOutputStream(outPutStream):
    BufferedInputStream(InputStream):
  5. 转换流(字符流)
    原因:字节流操作字符不方便
    组成:字节流+编码表
    编码表:现实世界字符和对应的数值组成的一张表
    六个流:
    ①InputStreamReader、outPutStreamWriter
    ②FileReader、FileWriter
    ③BufferedReader、BufferedWriter
  6. 序列化流:java对象—>硬盘数据、网络节点
    反序列化流:硬盘数据、网络节点—>java对象
    Android中使用:界面之间传递数据、缓存
  7. 文件随机访问流:RandomAccessFile
    概念: 对文件随机读和写
    文件指针:获取、设置
    模式:四种("rw")

十一、多线程

  1. 几个概念:程序、进程、线程
  2. 创建线程:
    方式一:自定义类继承Thread,重写方法run,在run里执行操作,调用start开启;
    方式二:
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352