Java常用类介绍

Scanner

2019425

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()方法将\r\t作为结束标志符,但是当我们输入完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();

字符替代及字符串替代

   

   

泛型方法

2019510

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一次,可能不够灵活;而泛型方法可以在调用的时候指明类型,更加灵活。

   

   

快捷键

201959

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类

2019510

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

   

   

正则

2019511

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

空白字符【\t\n\x0B\f\r】在应用时必须再添加一个\

\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

2019518

9:54

   

常用的数学方法,例如求如基本指数,对数,平方根和三角函数。

方法:

abs();求绝对值

ceil();向上取整结果为double类型

floor();向下取整数结果为double类型

Random();随机产生一个0.0到1.0的数

round();四舍五入

   

   

Random

2019518

10:15

产生一个随机数

Random();random的空参构造以纳秒值为种子产生随机数

Random(long seed);以传入的数据作为种子产生随机数

方法:

nextInt();产生一个随机的int类型的数值

nextInt(int bound);产生一个0到(bound-1)的数值;

//可将此方法类比产生Double、Byte、Float类型

   

   

   

System类

2019518

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

2019518

10:48

大数类:

构造方法:

public BigInteger(String val,int radix)

将一段字符串转换为大数类

常用方法:

add();两个大数类相加

subtract();前面的大数类减后面的大数

multiply();两个大数类相乘

divide();前面的大数类除后面的大数

   

   

BigDecimal

2019519

17:37

任意精度的带符号的十进制数字

构造方法:

BigDecimal(String val);

将字符串转换为精准的十进制带符号数

BigDecimal(int val)

将int类型的数转换为精准的十进制带符号数

BigDecimal(Double val)

将double类型转换为精准的十进制带符号数

。。。。。。

  

方法:

   

   

   

Date类

2019523

15:06

构造方法:

Date();

Date(long var);设置纳秒值;

普通方法:

getTime();

获取1970年一月一日据现在的纳秒值

setTime();

设置1970年一月一日据现在的纳秒值

   

   

SimpleDateFormat类

2019523

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

从给定字符串的开始解析文本以生成日期

   

   

集合

2019524

16:52

集合和数组的区别:

集合:可以自动增长,并且只能存储对象

数组:大小固定,可以存储对象也可以存储基本数据类型

集合缺点:
自动增长,但是在增长的同时会将旧集合变成垃圾

   

分类

   

   

Collection

2019524

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集合

2019525

9:21

   

list特有方法:

Boole add(index, varle);

在指定位置添加元素

object remove(index);

删除指定位置的对象,返回删除的对象

E set(index,e element)

用指定的元素(可选操作)替换此列表中指定位置的元素。

   

   

LInkedList

2019530

16:01

链表集合

方法:

Void addFrist(E e);

在头部添加对象

Void addLast(E e);

在尾部添加对象

E getFirst();

获取到第一个元素

E getlast();

获取到最后一个对象

E removeFrist();

删除第一个对象

E removeLast();

删除最后一个对象

   

   

Exception

2019710

20:21

在默认Exception是编译错误,在编译过程中就出现错误,就会抛出

RuntimeException 是在运行时出现错误,并且抛出。但是在编译时出现错误就不会抛出,

   

Throws

跟在方法声明的后面

后面可以跟多个异常类名,用逗号隔开

表示抛出方法

Throw

在方法内部跟的是对象名

只能是一个对象,

表示抛出一个异常,

   

   

   

   

File

2019711

15:35

   

File()新建一个文件流

File(pathname);

CreateNewFile();新建一个文件

mkdir();新建一个文件夹

mkdirs();新建一个父文件并包含子文件夹;

delete();删除文件或者是文件夹,如果目标是文件夹要求文件夹内不能有任何文件或者文件夹;

renameTo(pathname);文件重命名为参数,可以不再同一路下;

isDircetory();判是否是目(文件);

isFile();判是否是文件;

canRead();判读那文件是否可读;

canWriter();判断文件是否可写;

getAbsoloutePath();获取文件的绝对路径

getPath();获取构造方法中传入的路径

getName();获取文件(文件夹)名称

Length();获取文件的字节数;

getLastModified();获取最后修改日期,

List();获取指定目录下的文件或者文件夹的名称数组

listFiles();获取指定目录下的文件或者文件夹的File数组

   

   

   

   

   

   

   

IO

2019720

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

2019729

10:14

BufferRead BufferWriter 运行机制

   

Close();方法

具备刷新功能,再关闭流之前就会刷新一次缓冲区,将缓冲区的内容全部刷新到文件上,在关闭。

Flush();方法

具备刷新功能,刷新完成后哦可以继续写

   

   

   

Reader&Writer

2019730

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

是字符和字节之间的桥梁,可以将字符转化为字节也可以将字节转化为字符。

猜你喜欢

转载自www.cnblogs.com/yuknight/p/12811709.html