Java学习第十七、十八、十九天总结

常用类及一些常用方法

在这里插入图片描述

常用类
系统相关的两个类
1.System(代表了系统运行平台)
System.currentTimeMillis()是获得系统当前时间的函数
返回的是系统当前时间和1970-01-01午夜时间的差值得毫秒值
System.nanoTime()这个函数并非是获取系统当前时间的函数,它是一个获得系统计时器的函数,该函数不能表示具体的日期,它只能表示从某一个不确定的时间,到当前时间的时间差,返回的是最准确的可用系统当前值(以毫微秒为单位)。
System.exit(n);//关闭虚拟机
System.gc( );//垃圾回收
2.Runtime(获得jvm运行环境)
Runtime.getRuntime().maxMemory//得到最大的jvm虚拟机内存
Runtime.getRuntime().freeMemory();//得到jvm虚拟机中的空闲内存
Runtime.getRuntime().totalMemory();//当前程序正在使用的内存
Runtime.getRuntime(). availableProcessors();//得到处理器的数量
Runtime.getRuntime().exec(””);//执行一些可执行文件

字符串相关的类
1.String
String字符串一旦确定,那么这个字符串无论是长度还是内容都不能改变了。
使用构造器创建的字符串数据直接存放在堆中,而不是通过构造器创建的字符串放置在常量池
String str = new String(abc);代码实际上创建了两个代码,一个在队中(str),一个在常量池中abc
Str.charAt(index)//按照字符在字符串中,所在的位置获取对应的字符数据
Str.comeareTo(”abcd”);//主要用于字符串拼接(创建3个对象),不是在原有字符串后面去追加,而是创建一个新的字符串
Str.contains(”bc”)//判断字符串中,是否存在某一个字符串
Str.contentEquals(”abc”)//判断两个字符串内容是否相同
String [] names = str.split("-");//拆分字符串
Str.indexOf(”a”);//返回字符串a第一次出现的下标,没有则返回-1
Char [] arrs = “abcd”.toCharArray();//将字符串转换为字符数组
“ a d ”.trim();//trim(),可以忽略字符串前后的空白(空格)
String.valueOf(1);//让基本数据类型和引用数据类型以字符串的形式展现
2.StringBuffer
StringBuffer类操作字符串的很多方法与String类相同,但是StringBuffer主要偏重于对字符串的变化。虽然二者都可以代表字符串,但是二者内部的实现方式有所不同。StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上优于String。
StringBuffer = new StringBuffer();//StringBuffer实际上类似于超级数组对数组中数据进行增加、删除、查询、修改的作用
buffer.delete(int a);删除a号位的字符数据
buffer.insert(int a, “1”);//在指定位置加入指定数据
buffer.delete(int a, int b);删除a号位至b号位之间的字符数据,包括a号位但不包括b号位
buffer.replace(int start, int end,String str);从start位置开始到 end-1 位置之间替换原数据为str
buffer.reverse();//StringBuffer类中数组倒叙排列
buffer.setCharAt(int index, Char ch);//使用ch字符去替代下标为index的字符
3.StringBulider
StringBulider与StringBuffer用法是一样的。
String操作的是不可变的字符串,StringBuffer与StringBulider操作的是内容可变的(与前面超级数组一样,通过数组复制来完成动态扩容和动态缩容以及修改和删除),不同的是StringBuffer是线程安全的(一次只能一个线程使用),而StringBulider则不是线程安全的

日期相关类
1.Date类
Date date = new Date();//得到当前的系统时间
date.getTime();//得到date时间据1970-01-01 00:00:00的时间差的毫秒值
日期的输出格式采用的是格林威治时间
2.DateFormat类
是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间
3.SimpleDateFormat类
SimpleDateFormat是DateFormat的子类
将日期转换为字符串叫格式化,字符串转换为日期叫解析
SimpDateFormat df = new SimpDateFormat(”yyyy-mm-dd”);//
df.applyPattern(”yyyy-mm-dd”);//
应用模板格式格式化日期格式为年-月-日
df.format(date);//按照模板格式化日期为字符串型数据
date = df.parse(datestr);//parse将字符串解析为日期

4.Calerdar类
由于Date类在编写的时候并没有考虑到各个国家的实际情况,在国际化方面考虑不够周到,所以从JDK1.1版本开始,Java中推荐使用Calendar类来处理日期时间
Calendar calendar = calendar.getInstance();//获得calendar抽象类的子类的实例。(默认获得当前的系统时间)
calendar.setTime(date);//将一个以前的时间,装给calendar类
calendar.add();根据当前时间,推算以后的时间,或者是以前的时间
calendar.compareTo(Calendar anothercalend);//比较两个日期时间的前后

数学计算相关类
1.Math类
Math.abs(num);//取一个数的绝对值
Math.pow( num,N);//计算num的N次方
Math.rint();//返回最接近参数并等于某一整数的double值。如果两个同为整数的double值同样接近,那么结果取偶数
Math.round();//四舍五入求值
Math.sqrt(num);//求正的平方根
2.随机数
在Java中,产生随机数的方法有三种:
1.通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字,我们可以把这个数字当作随机数
2.通过Math类的静态方法random()返回一个0到1之间的double值。我们可以将这个值乘以一定的数,比如100,那么它就是一个100以内的随机数
3.通过Random类来产生一个随机数
Random类
Random random = new Random(num);//如果两次产生随机数的种子(num)是相同的,那么,两次生成的随机数的序列也是一样的
Random random = new Random();
int a = random.nextInt(n);//z在0-n(包括0但不包括n)之间随机产生一个随机整数

包装类与自动装箱拆箱
为了使用对象方式处理基本数据类型,Java中将这八种基本数据类型封装成类,称为包装类:Boolean类、Byte类、Short类、Integer类、Long类、Character类、Float类、Double类
八种包装类实际上分为两种组
1.数值型
Integer、Byte、Short、Long、Float、Double,这些类包装类都是Number类的子类
2.Character和Boolean类
所有的包装类都是final类型,不能创建它们的子类,包装类是不可变类。一旦创建了一个包装类的对象,那么它所包含的基本类型数据就不能改变

正则表达式
正则表达式第一批符号
1.普通符号
字母、单词、数字、汉字、下划线、具有一定含义的符号
2.转义符号
\t、\n、\f、\r、\、$、^
3.标准字符集合
.,\b,\B,\d,\D,\s,\S,\w,\W
4.自定义的字符集合(使用[ ])
转义符号放进括号依旧能够识别出来;标准字符集合放进括号,会包含标准字符集合,但是如果具有某些特殊含义的标点符号,被装入自定义的字符集合后,会被认为就是一个普通符号,没有任何其他的含义
5.量词
用于修饰正则表达式中字符号的匹配次数的符号,代表了前面的表达式出现的次数,比如:\d{2}
*:代表前面的子表达式出现的次数为0或多次;等同于{0,}
+:代表前面的子表达式出现的次数为1或多次;等同于{1,
{n}:代表前面的子表达式出现的次数为n次;
{n,m}:代表前面的子表达式出现的次数为n次到m次;若m不写,则表示n次到无穷次
?主要跟在上面四个符号之后,其主要作用是将贪婪模式转换为非贪婪模式,所谓的贪婪模式就是让我们的子表达式尽可能的执行最多的次数;而非贪婪模式就是让我们的子表达式尽可能的执行最少的次数
6.选择符和分组
选择符:| (或的意思)
捕获组:() 他会从字符串中捕获符合我们条件的内容,并将内容丢入到内存中,以便下次使用
^在正则表达式中一般存在两种含义
1.限定开头
如果是在匹配文本输入的开始的时候,将会匹配后面紧跟的字符
2.取反
当这个字符出现在自定义字符集合的第一个字符时,表示取反[a]表示匹配除了a的任意字符。但是[^]就表示普通的字符,例如:[^abc]
Pattern类:正则表达式的编译类
Pattern类中可以使用pattern()方法去获取正在使用的正则表达式
pattern的使用:
Pattern p = Pattern.compile(”正则表达式”);
Matcher m =p.macher(”输入的需要匹配的字符串”);
boolean b = m.matches();//返回匹配结果
m.matches();//与整个字符串进行匹配
m.lookingAt();//尝试从区域开头开始的输入序列与该模式匹配
m.end();代表匹配的字符串的长度
m.group(i);//捕获组中下标从0开始,0代表整个组的内容,但是从1开始以后的下标,都分别代表的是各自的捕获组捕获的内容
m.group();返回正在与匹配器进行匹配成功的子字符串内容
m.find();尝试查找与该模式匹配的输入序列的下一个子序列,此方法从匹配器区域的开头开始,如果该方法调用成功了,并且从那时开始匹配器又没有被重置的话,则从以前匹配操作没有匹配成功的第一个字符开始
如果要查找一个字符串中,所有的匹配项(包括第一个),那么就必须先使用lookingAt(),然后再使用find()。

猜你喜欢

转载自blog.csdn.net/qq_43046901/article/details/82778456