黑马程序员 JavaSE-07 常用类

本文深入探讨Java编程的基础类库,包括Object类、Scanner类、String类、StringBuffer类、Date类、DateFormat类、Calendar类等核心概念与用法,详细介绍了每个类的方法、特点及应用场景。

Java培训、Android培训、iOS培训、.Net培训、期待与您交流!

Java常用类

Object

(1)Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。
(2)Object类的构造方法有一个,并且是无参构造
这其实就是理解当时我们说过,子类构造方法默认访问父类的构造是无参构造
(3)要掌握的方法:

    A:toString()
        返回对象的字符串表示,默认是由类的全路径+'@'+哈希值的十六进制表示。
        这个表示其实是没有意义的,一般子类都会重写该方法。
        如何重写呢?过程我也讲解过了,基本上就是要求信息简单明了。
        但是最终还是自动生成。
    B:equals()
        比较两个对象是否相同。默认情况下,比较的是地址值是否相同。
        而比较地址值是没有意义的,所以,一般子类也会重写该方法。

(4)要了解的方法:

    A:hashCode() 返回对象的哈希值。不是实际地址值,可以理解为地址值。
    B:getClass() 返回对象的字节码文件对象
    C:finalize() 用于垃圾回收,在不确定的时间
    D:clone() 可以实现对象的克隆,包括成员变量的数据复制,但是它和两个引用指向同一个对象是有区别的。

(5)两个注意问题;

    A:直接输出一个对象名称,其实默认调用了该对象的toString()方法。
    B:面试题 
        ==和equals()的区别?
        A:==
            基本类型:比较的是值是否相同
            引用类型:比较的是地址值是否相同
        B:equals()
            只能比较引用类型。默认情况下,比较的是地址值是否相同。
            但是,我们可以根据自己的需要重写该方法。

Scanner

(1)在JDK5以后出现的用于键盘录入数据的类。
(2)构造方法:

    A:讲解了System.in这个东西。
        它其实是标准的输入流,对应于键盘录入
    B:构造方法
        InputStream is = System.in; 
        Scanner(InputStream is)
    C:常用的格式
        Scanner sc = new Scanner(System.in);

(3)基本方法格式:

    A:hasNextXxx() 判断是否是某种类型的
    B:nextXxx() 返回某种类型的元素

(4)要掌握的两个方法

    A:public int nextInt()
    B:public String nextLine()

(5)需要注意的小问题

    A:同一个Scanner对象,先获取数值,再获取字符串会出现一个小问题。
    B:解决方案:
        a:重新定义一个Scanner对象
        b:把所有的数据都用字符串获取,然后再进行相应的转换

String

(1)多个字符组成的一串数据。
其实它可以和字符数组进行相互转换。
(2)构造方法:

    A:public String()
    B:public String(byte[] bytes)
    C:public String(byte[] bytes,int offset,int length)
    D:public String(char[] value)
    E:public String(char[] value,int offset,int count)
    F:public String(String original)
    下面的这一个虽然不是构造方法,但是结果也是一个字符串对象
    G:String s = "hello";

(3)字符串的特点

    A:字符串一旦被赋值,就不能改变。
        注意:这里指的是字符串的内容不能改变,而不是引用不能改变。
    B:字面值作为字符串对象和通过构造方法创建对象的不同
        String s = new String("hello");和String s = "hello"的区别?

(4)字符串的面试题(看程序写结果)

    A:==和equals()
        String s1 = new String("hello");
        String s2 = new String("hello");
        System.out.println(s1 == s2);// false
        System.out.println(s1.equals(s2));// true

        String s3 = new String("hello");
        String s4 = "hello";
        System.out.println(s3 == s4);// false
        System.out.println(s3.equals(s4));// true

        String s5 = "hello";
        String s6 = "hello";
        System.out.println(s5 == s6);// true
        System.out.println(s5.equals(s6));// true

    B:字符串的拼接
        String s1 = "hello";
        String s2 = "world";
        String s3 = "helloworld";
        System.out.println(s3 == s1 + s2);// false
        System.out.println(s3.equals((s1 + s2)));// true

        System.out.println(s3 == "hello" + "world");// false 这个我们错了,应该是true
        System.out.println(s3.equals("hello" + "world"));// true

(5)字符串的功能(自己补齐方法中文意思)

    A:判断功能
        boolean equals(Object obj)
        boolean equalsIgnoreCase(String str)
        boolean contains(String str)
        boolean startsWith(String str)
        boolean endsWith(String str)
        boolean isEmpty()

    B:获取功能
        int length()
        char charAt(int index)
        int indexOf(int ch)
        int indexOf(String str)
        int indexOf(int ch,int fromIndex)
        int indexOf(String str,int fromIndex)
        String substring(int start)
        String substring(int start,int end)

    C:转换功能
        byte[] getBytes()
        char[] toCharArray()
        static String valueOf(char[] chs)
        static String valueOf(int i)
        String toLowerCase()
        String toUpperCase()
        String concat(String str)

    D:其他功能
        a:替换功能 
            String replace(char old,char new)
            String replace(String old,String new)
        b:去空格功能
            String trim()
        c:按字典比较功能
            int compareTo(String str)
            int compareToIgnoreCase(String str)

StringBuffer

(1)StringBuffer是一个字符串缓冲区类。
(2)StringBuffer的构造方法

    A:StringBuffer()
    B:StringBuffer(int size)
    C:StringBuffer(String str)

(3)StringBuffer的常见功能

    A:添加功能
        append()
    B:删除功能
        delete(int start, int end) 
        deleteCharAt(int index) 
    C:替换功能
        replace(int start, int end, String str) 
    D:反转功能
        reverse() 
    E:截取功能(注意这个返回值)
        substring(int start) 
        substring(int start, int end) 

(4)StringBuffer的练习

    A:String和StringBuffer相互转换
        String -- StringBuffer
            构造方法
        StringBuffer -- String
            toString()方法
    B:字符串的拼接
    C:把字符串反转
    D:判断一个字符串是否对称

(5)面试题

    小细节:
        StringBuffer:同步的,数据安全,效率低。
        StringBuilder:不同步的,数据不安全,效率高。
    A:String,StringBuffer,StringBuilder的区别
    B:StringBuffer和数组的区别?

Arrays

(1)Arrays是用来操作数组(比如排序和搜索)的工具类,包括各种静态方法。
(2)常用方法

查找:binarySearch()
排序:sort()
复制:copyOf()
比较:equals()

Integer

(1)为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型

    byte        Byte
    short       Short
    int         Integer
    long        Long
    float       Float
    double      Double
    char        Character
    boolean     Boolean

(2)Integer的构造方法

    A:Integer i = new Integer(100);
    B:Integer i = new Integer("100");
        注意:这里的字符串必须是由数字字符组成

(3)String和int的相互转换

    A:String -- int
        Integer.parseInt("100");
    B:int -- String
        String.valueOf(100);

(4)其他的功能(了解)进制转换
(5)JDK5的新特性

    自动装箱    基本类型--引用类型
    自动拆箱    引用类型--基本类型

    把下面的这个代码理解即可:
        Integer i = 100;
        i += 200;
(6)面试题
    -128到127之间的数据缓冲池问题

Character

(1)Character构造方法

    Character ch = new Character('a');

(2)要掌握的方法:

    A:判断给定的字符是否是大写  isUpperCase(char ch)
    B:判断给定的字符是否是小写  isLowerCase(char ch) 
    C:判断给定的字符是否是数字字符   isDigit(char ch) 
    D:把给定的字符转成大写  toUpperCase(char ch) 
    E:把给定的字符转成小写  toLowerCase(char ch) 

(3)案例:

    统计字符串中大写,小写及数字字符出现的次数

Random

(1)用于产生随机数的类
(2)构造方法:

    A:Random() 默认种子,每次产生的随机数不同
    B:Random(long seed) 指定种子,每次种子相同,随机数就相同

(3)成员方法:

    A:int nextInt() 返回int范围内的随机数
    B:int nextInt(int n) 返回[0,n)范围内的随机数

System

(1)系统类,提供了一些有用的字段和方法
(2)成员方法

    A:运行垃圾回收器
    B:退出jvm
    C:获取当前时间的毫秒值
    D:数组复制

BigInteger

(1)针对大整数的运算
(2)构造方法

    A:BigInteger(String s)

(3)成员方法

    A:加
    B:减
    C:乘
    D:除
    E:商和余数

BigDecimal
(1)浮点数据做运算,会丢失精度。所以,针对浮点数据的操作建议采用BigDecimal。(金融相关的项目)
(2)构造方法

    A:BigDecimal(String s)

(3)成员方法:

    A:加
    B:减
    C:乘
    D:除
    E:自己保留小数几位

Date/DateFormat

(1)Date是日期类,可以精确到毫秒。

    A:构造方法
        Date()
        Date(long time)
    B:成员方法
        getTime()
        setTime(long time)

(2)DateFormat针对日期进行格式化和针对字符串进行解析的类,但是是抽象类,所以使用其子类SimpleDateFormat

    A:SimpleDateFormat(String pattern) 给定模式
        yyyy-MM-dd HH:mm:ss
    B:日期和字符串的转换
        a:Date -- String
            format()

        b:String -- Date
            parse()

Calendar

(1)日历类

封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。

(2)如何得到一个日历对象呢?

    Calendar rightNow = Calendar.getInstance();
    本质返回的是子类对象

(3)成员方法

    A:根据日历字段得到对应的值:get(int field) 
    B:根据日历字段和一个正负数确定是添加还是减去对应日历字段的值:add(int field, int amount) 
    C:设置日历对象的年月日:set(int field, int value),set(...)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值