JAVA学习笔记(常用API)

常用API

Math

abs,ceil,floor,round,max,pow
random()返回[0.0,1.0)
工具类,没必要创建对象时,其内部就可以定义为静态方法,静态方法性能也好一些

System

exit()终止JVM
currentTimeMilis()返回系统时间

时间原点是1970年1月1日00:00:00,unix诞生
arraycopy()数组拷贝

Runtime

getRuntime() 当前系统的运行环境对象
exit() 停止虚拟机
availableProcessors()CPU线程数
maxMemory() JVM可获取的内存大小
totalMemory() Jvm已获取的内存大小
freeMemory() jvm剩余内存大小
exec() 运行cmd

Object&Objects

所有类都直接或间接继承于Object
只有无参构造,没有成员变量
toString()返回字符串便是形式
底层逻辑,println()语句,打印时,调用toString()返回字符串,打印地址值
字符的默认值是null
equals()比较两个对象是否相等
clone() 对象克隆,浅拷贝和深拷贝
第三方clone脚本实现深克隆
想要按自己的意愿去实现Object,只需要重写

BigInteger

BigDecimal

正则表达式

qq.matches(“[1-9]\d{5,19}”)//校验是否满足规则,返回值是true,false
作用

  • 校验字符串是否满足规则
  • 在一段文本中查找满足要求的内容
    字符类
    [abc]只能是a,b,c
    [^abc]除了a,b,c之外的任何字符
    [a-z&&[^bc]]a-z和非bc集的交集

“ab”.matches(“[abc][abc]”),这样返回值才是true
“0”.matches(“[a-zA-Z0-9]”)//true
“0”.matches(“[0-9]”)//true
“a”.matches([a-d[m-p]]),a-d和m-p的并\或集

预定义字符
. 任何字符
\d 一个数字:[0-9]
\D 非数字:[^0-9]
\s 一个空白字符[\t\n\x0B\f\r]
\S 非空白字符[^\s]
\w [a-zA-Z_0-9]
\W [^\W]非单词字符

\是转移字符
“0”.matches(“\d”)//true
数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
“2442fsfsf”.matches(“\w{6,}”)//true

爬虫

正则化->在一段文本中查找满足要求的内容
Pattern类,正则表达式
Matcher类,文本匹配器
有条件的爬取

"(?i)java"忽略大小写,Java,java,JAva都满足
"((?i)java)(?=8|11|17)"后面跟8或11或17,但不爬取后面的数字
"((?i)java)(?:8|11|17)"后面跟8或11或17,爬取后面的数字
"((?i)java)(?!8|11|17)"后面跟8或11或17,就不爬取这个段

贪婪爬取尽可能多获取数据

非贪婪爬取,尽可能少获取数据
如果数据中有abbbbbbbbb
"ab+"字段,爬取结果为abbbbbbbbb 贪婪(java默认是贪婪)
"ab+?"字段,爬取结果为ab 非贪婪

replaceALL()按正则表达式规则替换
split()按正则表达式规则切割字符串
捕获分组
规则1:从1开始,连续不间断
规则2:以左括号为基准,最左边的是第一组,其次是第二组,依次类推

如判断一个字符串的开始部分和结束部分是否一致,abc123abc b234b 123789123
“(.+).+\1”//(.+)开始部分一组,\1结束部分与开始部分(第一个分组同规则)
非捕获分组
(?=8|11|17)(?:8|11|17)(?!8|11|17)都属于非捕获分组
不占用组号,仅仅把数据括起来

JDK7之前的时间相关类

Date 时间
Greenwich mean time(格林威治时间)GMT
原子钟世界标准时间 UTC
创建:Date = new Date();||Date = new Date(指定毫秒值);
修改:setTime(毫秒值);
获取:getTime();

Date dd = new Date();因为System.out.println()输出的是对象的toString();
一般如果这个类不重写toString()方法,那么输出的将是对象的地址值,而Date重写了这个方法
使System.out.println(dd),输出内容为日期信息

SimpleDateFormat类
与Date联用,格式化和解析
SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss”)格式化
Date time=stdf.parse(str)解析
Canlendar类
表示当前时间的日历对象,可单独修改\获取时间中的年月日
但Canlendar是抽象类,通过静态方法获取子类对象
Canlendar c = Canlendar.getInstance();创建对象
c.set()//修改c.set(Calendar.YEAR,2023),Calendar.YEAR或其他变量的作用直接去查源码
c.get()//获取
c.add()//在原基础上增加或减少时间
JDK8新增的时间类
代码层面,简化了之前代码的编写
安全层面,时间日期对象都是不可变的,解决了多线程数据安全的问题
Date类
ZoneId类(时区),Instant类(时间戳),ZoneDateTime类(带时区的时间)
日期格式化类
DateTimeFormatter(用于时间的格式化和解析)
日历类
LocalDate(年\月\日),LocalTime(时\分\秒),LocalDateTime(年\月\日\时\分\秒)
工具类
Duration(时间间隔(秒\纳秒)),Period(时间间隔(年\月\日)),ChronoUnit(时间间隔(所有单位))

包装类

基本数据类型对应的引用数据类型对象
JDK5新增自动拆箱和装箱
可直接通过Integer i=10;获取包装类对象

Integer中成员方法
public static String toBinaryString() 转为二进制
public static String toHexString() 转为十进制
public static int parseInt(String s)将字符串解析为int类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值