Java常用类介绍
Posted yuknight
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java常用类介绍相关的知识,希望对你有一定的参考价值。
Scanner
2019年4月25日
11:07
? ?
HasNextInt();
获取指定int类型的数据,如果数据正确则返回true否则返回false。
HasNextDouble();
获取指定Double类型的数据,如果数据正确则返回true否则返回false。
HasNextString();
获取指定String类型的数据,如果数据正确则返回true否则返回false。
HasNextChar();
获取指定Char类型的数据,如果数据正确则返回true否则返回false。
HasNextBoolean();
获取指定布尔类型的数据,如果数据正确则返回true否则返回false。
? ?
nextInt()方法与nextLine()方法连用出现nextLine()方法不能正常调用的问题
原因分析:nextline()方法将 作为结束标志符,但是当我们输入完int数据后的回车被nextLine()方法获取,并结束方法。
解决方法:1、重新new一个Scannner对象,调用nextLine()方法,
2、将全部数据都作为String类型获取,然后调用其他方法转换数据类型。
? ?
? ?
String类
? ?
? ?
equalsIgnoreCase();判断String是否相等并不区分大小写
Contains();判断是否包含传入的字符
startsWith();判断是否以传入的字符串开始
endsWith();判断是否以传入的字符结束
isEmpty();判断是否为空;
? ?
? ?
""和null区别
""是字符串常量,同时也是字符串对象,可以调用String方法
null是空常量,不能调用方法
? ?
在进行常量与变量进行比较时,推荐常量在前,变量在后,可以避免空指针错误。
? ?
getBytes(); | 转换成字节数组存储起来 | ||
toCharArrary(); | 将字符串类型转换成为字符数组; | ||
toLowerCase(); | toUperCase(); | 以源字符串为基础新建一个大写(或小写)的字符串; |
?
subString(); | 截断一个字符串 |
valueOf(); | 内部可以传入任意类型,并将其转为字符串类型; |
Replace(); | 字符替代及字符串替代 |
? ?
? ?
泛型方法
2019年5月10日
14:56
? ?
? 泛型是什么意思在这就不多说了,而Java中泛型类的定义也比较简单,例如:public class Test<T>{}。这样就定义了一个泛型类Test,在实例化该类时,必须指明泛型T的具体类型,例如:Test<Object> t = new Test<Object>();,指明泛型T的类型为Object。
?????? 但是Java中的泛型方法就比较复杂了。
?????? 泛型类,是在实例化类的时候指明泛型的具体类型;泛型方法,是在调用方法的时候指明泛型的具体类型。
? ?
? ?
说明一下,定义泛型方法时,必须在返回值前边加一个<T>,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值。 为什Class<T>的作用就是指明泛型的具体类型,而Class<T>类型的变量c,可以用来创建泛型类的对象。
么要为什么要用变量c来创建对象呢?既然是泛型方法,就代表着我们不知道具体的类型是什么,也不知道构造方法如何,因此没有办法去new一个对象,但可以利用变量c的newInstance方法去创建对象,也就是利用反射创建对象。
使用泛型方法要求的参数是Class<T>类型,而Class.forName()方法的返回值也是Class<T>,因此可以用Class.forName()作为参数。其中,forName()方法中的参数是何种类型,返回的Class<T>就是何种类型。在本例中,forName()方法中传入的是User类的完整路径,因此返回的是
? ?
Class<User>类型的对象,因此调用泛型方法时,变量c的类型就是Class<User>,因此泛型方法中的泛型T就被指明为User,因此变量obj的类型为User。 泛型当然,泛型方法不是仅仅可以有一个参数Class<T>,可以根据需要添加其他参数。
方法呢?因为泛型类要在实例化的时候就指明类型,如果想换一种类型,不得不重新new一次,可能不够灵活;而泛型方法可以在调用的时候指明类型,更加灵活。
? ?
? ?
快捷键
2019年5月9日
8:33
Ctrl+shift+f | 规整代码 |
Ctrl+N | 新建 |
Ctrl+1 | 生成变量 |
?? | 强制类型装换 |
Ctrl+D | 删除掉光标所在的一行 |
Ctrl+Z | 向后退操作 |
Alt+/ | 代码提示 |
ALT+shift+M | 提取成为方法 |
Ctrl+Shift+O | 快捷导包 |
Alt+上键 | 将此行代码向上移动 |
Alt+shift+r | 改名 |
? ?
? ?
StringBuffer类
2019年5月10日
17:15
- StringBuffer类:
当新建一个对象时,在堆内存中新建一个对象,底层是一个长度为16字符的内存空间,
并且当调用添加方法时,不会再新建一个内存空间,只会对原空间进行增添;(多个引用指向用一个对象)
append(String st); | 增加任意类型进入StringBuffer空间 | 返回值StringBuffer |
insert(offset, b) | 在指定位置添加任意类型数据 | 返回值StringBuffer |
delete(start, end) | 删除指定区域的数据 | 返回值StringBuffer |
deleteCharAt(offset); | 删除指定位置的字符 | 返回值StringBuffer |
replace(start, end, str); | 替换从开始到结束的指定字符 | 返回值StringBuffer |
subString(start,end); | 截取从开始点到结束点并产生新的字符串,不改变原StringBuffer | 返回值String |
? ?
? ?
正则
2019年5月11日
10:45
? ?
正则表达式基础词汇
只针对单个字符进行判断
[abc] | a,b或c(简单类) |
[^abc] | 非a,b,c(否定) |
[a-zA-Z] | a到z或A到Z(范围) |
[a-d[m-p]] | a到d与m到p的并集 |
[a-z&&[^def]] | a到z但是不包括d,e,f |
[a-z&&[bc]] | a到z与b,c的交集 |
[a-z&&[^m-p]] | a到z但是不包括m到p |
. | 任何字符 |
d | 数字【0-9】在应用时必须再添加一个 |
D | 非数字【^0-9】在应用时必须再添加一个 |
s | 空白字符【 x0Bf 】在应用时必须再添加一个 |
S | 非空白字符 在应用时必须再添加一个 |
w | 单词字符【a-zA-Z_0-9】在应用时必须再添加一个 |
W | 非单词字符 在应用时必须再添加一个 |
X? | x一次或者一次也没有(只针对x,其他字符也会返回false) |
X* | 0次到多次 |
X+ | 一次到多次 |
X{n} | 恰好有n次 |
X{n,} | 至少n次 |
X{n,m} | 至少n次,但是不会超过m次 |
正则替代方法,matches(regex)
replaceAll(regex,replacemate) 全部替换
? ?
组
(A)一个组可以对组进行操作例如重复出现,出现多次,全部替换成组里的
? ?
replaceAll("(.)1+","$1") //(.)获取到第一个字符,1+第一个组里的词重复一到多次,$1替换成第一个组里的内容
? ?
matcher适配器
例题:提取手机号
Pattern 正则表达式的编译表示。
Matcher 正则的匹配器
? ?
String s1 = "我叫狗柱我的学号是201700800188,我舍友颜狗的是201700800234,";
String regex = "[201700800]+d{3}"; //正则
? ?
Pattern p = Pattern.compile(regex);
Matcher matcher = p.matcher(s1); //获取匹配器
while(
matcher.find()) //查找是否有满足正则模式的字符串
System.out.println(matcher.group()); //将匹配到的字符获取出来,使用打印出来。
}
? ?
? ?
Math
2019年5月18日
9:54
? ?
常用的数学方法,例如求如基本指数,对数,平方根和三角函数。
方法:
abs();求绝对值
ceil();向上取整结果为double类型
floor();向下取整数结果为double类型
Random();随机产生一个0.0到1.0的数
round();四舍五入
? ?
? ?
Random
2019年5月18日
10:15
产生一个随机数
Random();random的空参构造以纳秒值为种子产生随机数
Random(long seed);以传入的数据作为种子产生随机数
方法:
nextInt();产生一个随机的int类型的数值
nextInt(int bound);产生一个0到(bound-1)的数值;
//可将此方法类比产生Double、Byte、Float类型
? ?
? ?
? ?
System类
2019年5月18日
10:38
? ?
字段摘要:err标准的错误输出流
int标准的键盘输入流
out标准的控制台输出流
方法:
gc(); | 运行垃圾回收器 |
exit(int status); | 停止jvm运行建议输入0 |
nanoTime(); | 返回正在运行的时间的纳秒值 |
currentTimeMillis() | 返回当前时间以毫秒为单位 |
arraycopy(Object src, int srcPos, Object dest, int destPos, int length) | 拷贝一个数组 |
? ?
? ?
BigInteger
2019年5月18日
10:48
大数类:
构造方法:
public BigInteger(String val,int radix) | 将一段字符串转换为大数类 |
常用方法:
add();两个大数类相加
subtract();前面的大数类减后面的大数
multiply();两个大数类相乘
divide();前面的大数类除后面的大数
? ?
? ?
BigDecimal
2019年5月19日
17:37
任意精度的带符号的十进制数字
构造方法:
BigDecimal(String val); | 将字符串转换为精准的十进制带符号数 |
BigDecimal(int val) | 将int类型的数转换为精准的十进制带符号数 |
BigDecimal(Double val) | 将double类型转换为精准的十进制带符号数 |
。。。。。。 | ?? |
方法:
? ?
? ?
? ?
Date类
2019年5月23日
15:06
构造方法:
Date();
Date(long var);设置纳秒值;
普通方法:
getTime(); | 获取1970年一月一日据现在的纳秒值 |
setTime(); | 设置1970年一月一日据现在的纳秒值 |
? ?
? ?
SimpleDateFormat类
2019年5月23日
15:25
简单日期的格式
构造方法:
SimpleDateFormat();
SimpleDateFormat(String sourse);
常用字符
实例:
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyy年MM月dd日 HH:mm:ss" );
String d = Sdf.format(date);
? ?
常用方法:
format(Date date); | 将日期格式化成日期/时间字符串。 |
public Date parse(String source) throws ParseException | 从给定字符串的开始解析文本以生成日期 |
? ?
? ?
集合
2019年5月24日
16:52
集合和数组的区别:
集合:可以自动增长,并且只能存储对象
数组:大小固定,可以存储对象也可以存储基本数据类型
集合缺点:
自动增长,但是在增长的同时会将旧集合变成垃圾
? ?
分类
? ?
? ?
Collection
2019年5月24日
17:11
抽象类
方法:
Boolean add(Object 0); | 添加一个对象到集合中去 | 如果是list集合则只返回true,如果是set则返回true或false |
Boolearn remove(Object o); | 删除一个对象 | ?? |
Boolearn clear(); | 清空集合 | ?? |
Boolearn contains(object o); | 判断是否包含某个对象 | ?? |
String toArray(); | 将集合转换成为数组 | ?? |
? ?
Boolean addAll(Collection c); | 将一个集合合并到另一个集合中 |
Boolean removeAll(Collection c); | 移除两个集合的并集 |
Boolean containsAll(Collection c); | 判断是否包含传入的集合元素 |
Iteration 迭代器
? ?
? ?
? ?
List集合
2019年5月25日
9:21
? ?
list特有方法:
Boole add(index, varle); | 在指定位置添加元素 |
object remove(index); | 删除指定位置的对象,返回删除的对象 |
E set(index,e element) | 用指定的元素(可选操作)替换此列表中指定位置的元素。 |
? ?
? ?
LInkedList类
2019年5月30日
16:01
链表集合
方法:
Void addFrist(E e); | 在头部添加对象 |
Void addLast(E e); | 在尾部添加对象 |
E getFirst(); | 获取到第一个元素 |
E getlast(); | 获取到最后一个对象 |
E removeFrist(); | 删除第一个对象 |
E removeLast(); | 删除最后一个对象 |
? ?
? ?
Exception
2019年7月10日
20:21
在默认Exception是编译错误,在编译过程中就出现错误,就会抛出
RuntimeException 是在运行时出现错误,并且抛出。但是在编译时出现错误就不会抛出,
? ?
Throws
跟在方法声明的后面
后面可以跟多个异常类名,用逗号隔开
表示抛出方法
Throw
在方法内部跟的是对象名
只能是一个对象,
表示抛出一个异常,
? ?
? ?
? ?
? ?
File
2019年7月11日
15:35
? ?
File()新建一个文件流
File(pathname);
CreateNewFile();新建一个文件
mkdir();新建一个文件夹
mkdirs();新建一个父文件并包含子文件夹;
delete();删除文件或者是文件夹,如果目标是文件夹要求文件夹内不能有任何文件或者文件夹;
renameTo(pathname);将文件重命名为参数,可以不再同一路径下;
isDircetory();判断是否是目录(文件夹);
isFile();判断是否是文件;
canRead();判读那文件是否可读;
canWriter();判断文件是否可写;
getAbsoloutePath();获取文件的绝对路径
getPath();获取构造方法中传入的路径
getName();获取文件(文件夹)名称
Length();获取文件的字节数;
getLastModified();获取最后修改日期,
List();获取指定目录下的文件或者文件夹的名称数组
listFiles();获取指定目录下的文件或者文件夹的File数组
? ?
? ?
? ?
? ?
? ?
? ?
? ?
IO
2019年7月20日
9:39
分类:
字符输入输出流抽象父类:
read 字符输入流
writer 字符输出流
字节输入输出流抽象父类:
inputStream 标准字节输入流
outputSream 标准字节输出流
? ?
FileInputStream 字节读
Fileinputstream fis = new FileInputStream(File f);//当File不存在时,抛出FileNotFondException异常
int I = fis.read();//读取一个字节,返回为int类型值;
fis.read();//读取时产生文件读取标志,每次加一,向后走一位,
? ?
? ?
? ?
FileOutputStream 字节写
FileOutputStream fos = new FileOutputStream(File f);//当文件不存在时,会自动创建一个文件,
fos.writer(int i);//写入一个字节I;
fos.writer(int i);//写入一个字节I,并覆盖原来数据;
续写:
FileOutputStream fos = new FileOutputStream(File f,true);//当文件不存在时,会自动创建一个文件,此时设置为续写模式,不删除元数据
? ?
? ?
Buffeerinputstream&BufferoutputStream
2019年7月29日
10:14
BufferRead BufferWriter 运行机制
? ?
Close();方法
具备刷新功能,再关闭流之前就会刷新一次缓冲区,将缓冲区的内容全部刷新到文件上,在关闭。
Flush();方法
具备刷新功能,刷新完成后哦可以继续写
? ?
? ?
? ?
Reader&Writer
2019年7月30日
17:43
? ?
使用:不嫩那个使用在照片视频等一类多媒体文件上,只能应用在纯文本文件,
? ?
? ?
LineNumberReader 跟踪行号的缓冲字符流,
getLineNumber()获得当前行号
setLineNumber(int)设置行号
? ?
? ?
? ?
字符转换
实例:
InputStreamReader isr = new InputStreamReader(new FileInputStream("utf-8.txt"), "utf-8");
OutputStreamWriter osW = new OutputStreamWriter(new FileOutputStream("GBK.txt"), "GBK");
? ?
int c;
while ((c =isr.read()) !=-1) {
osW.write(c);
}
? ?
isr.close();
osW.close();
? ?
inputStreamReader/OutputStreamWriter | 是字符和字节之间的桥梁,可以将字符转化为字节也可以将字节转化为字符。 |
以上是关于Java常用类介绍的主要内容,如果未能解决你的问题,请参考以下文章