zoukankan      html  css  js  c++  java
  • 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()方法将 作为结束标志符,但是当我们输入完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

    空白字符【 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

    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

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

  • 相关阅读:
    [Gym
    [Codeforces995C]Leaving the Bar 瞎搞
    [hdu3685]Rotational Painting 凸包 重心
    [hdu5251]矩形面积 旋转卡壳求最小矩形覆盖
    [hdu4667]Building Fence 计算几何 瞎瘠薄搞
    [hdu3934] 凸包 旋转卡壳
    [Codeforces50C]Happy Farm 5 凸包
    [Codeforces166B]Polygons 凸包
    mex(线段树+离散化)
    CF798D 糖果(思维题)
  • 原文地址:https://www.cnblogs.com/yuknight/p/12811709.html
Copyright © 2011-2022 走看看