Java 基础入门 | 第十章 Java 常用类库之lang包

简介: 本章主要内容java.lang包介绍以及包下类的使用重点的类:Object/String/StringBuffer/StringBuilder/包装类了解的类System/Mathjava.util包介绍以及包下类的使用重点的类Date/Calendar/GregorianCalendar了解的类

本章主要内容

java.lang包介绍以及包下类的使用

重点的类:

Object/String/StringBuffer/StringBuilder/包装类

了解的类

System/Math

java.util包介绍以及包下类的使用

重点的类

Date/Calendar/GregorianCalendar

了解的类

Scanner/Random

java.text包介绍以及包下类的使用

SimpleDateFormat/NumberFormat

 

java.lang包

java.lang包下放置了Java开发中常用的类和接口,所以为简化该包下类的使用,java.lang包下的类在使用时不需要导入这些类

java.lang包下常用类有:

    • Object
    • String
    • StringBuffer和StringBuilder
    • 八种基本数据类型的包装类
    • Thread等等

    Object类

    java.lang.Object类是类层次结构中最顶层父类(基类,超类)。所有的类(包括数组)直接或者间接的继承自Object类,同时也继承了该类中的方法

    代码示例

    public class ClassA {
        public void test(){
            System.out.println("ClassA method_test");
        }
    }

    image.gif

    public class ClassB extends ClassA{
        public static void main(String[] args) {
            Object objectA=new ClassA();
            Object objectB=new ClassB();
            //所有对象的父类,所有对象的引用都可以赋值给Object类型的引用变量,包括数组
            Object objectC=new int[2];
        }
    }

    image.gif

    Object的构造方法

    Object类只有一个无参的构造方法

    Object()

    Object中常用的方法

      • boolean equals(Object o) 比较两个对象是否相同
      • int hashCode() 返回一个对象的哈希码
      • String toString() 将一个对象转换为字符串
      public class TestObject {
          public static void main(String[] args) {
              //通过无参构造器创建一个Object类型的对象
              Object o1=new Object();
              System.out.println("o1.hashCode()="+o1.hashCode());
              System.out.println("o1.toString()="+o1.toString());
          }
      }

      image.gif

      boolean equals(Object o)详解

        • Object类的equals方法用于判断两个对象是否相等
        • Object类的equals方法的返回值为boolean的true和false
        • Object类的equals方法只有一种情况返回true:两个非空的引用变量o1和o2指向的是同一个对象时
        • 代码示例
        public class TestEquals {
            public static void main(String[] args) {
                Object O1=new Object();
                Object O2=new Object();
                Object O3=O2;
                System.out.println("O1.equals(O2)="+O1.equals(O2));
                System.out.println("O1.equals(O3)="+O1.equals(O3));
                System.out.println("O2.equals(O3)="+O2.equals(O3));
            }
        }

        image.gif

        equals方法和==的区别

          • ==可以用于比较基本数据类型的值
          • ==可以用于比较两个对象是否相等
          • equals只能比较两个对象是否相等

          String类

          String类代表字符串,提供了开发中常用的字符串处理的方法,如:求字符串的长度、截取字符串、替换字符串等方法

          字符串是常量,它的值创建之后就不可以再修改了。

          String类常用构造方法

            • String() 无参构造方法
            • String(String str) 有一个字符串参数的构造方法
            • String(char[]ch) 有一个char类型数组参数的构造方法
            • String(byte[] b) 有一个byte数组参数的构造方法

            声明和创建字符串对象的方式

            代码示例

            public class TestString {
                public static void main(String[] args) {
                    String s1="hello,我是洛阳泰山";
                    String s2=new String();
                    String s3="";
                    char[] ch=new char[]{'h','e','l','l','0'};
                    String s4=new String(ch);
                    byte[] bts=new byte[]{12,-120};
                    String s5=new String(bts);
                }
            }

            image.gif

            String类常用方法

              • int length() 求字符串值的字符个数
              • boolean equals(Object o) 比较两个字符串是否相同
              • String replace(char old,char n) 字符串替换
              • char charAt(int index) 返回指定字符串指定位置的字符
              • int compareTo(String s) 按字典顺序比较字符串大小
              • boolean endsWith(String s) 比较字符串是否以指定的参数结尾
              • boolean startsWith(String s)比较字符串是否以指定的参数开头
              • String valueOf(int i)将基本数据类型转换为字符串

              String类常用方法

                • boolean isEmpty() 判别一个字符串值的长度是不是为0
                • int indexOf(int ch) 返回指定字符ch在字符串中的索引
                • int lastIndexOf(int ch)返回指定字符ch在字符串中最后出现的索引
                • String substring(int begin)从指定索引位置截取字符串

                StringBuffer和StringBuilder类

                StringBuffer和StringBuilder都是带有缓冲区的可变字符串

                为什么要使用StringBuffer或者StringBuilder

                一个String对象的长度是固定的,不能改变它的内容,也不能附加新的字符至String对象中。可以使用加号“+”运算符来连接字符串以达到附加新字符或字符串的目的,但使用加号“+”运算符会产生一个新的String实例,即需要另外分配空间。如果既想节省开销,又能改变字符串的内容,则可以使用StringBuilder类。

                StringBuffer类的构造方法

                StringBuffer()

                StringBuffer(String s)

                StringBuffer的常用方法

                StringBuffer append(int i)在可变字符串末尾追加I

                StringBuffer insert(int offset,String s)在可变字符串指定位置插入另外一个字符串s

                int length() 返回可变字符串中字符的个数

                String toString() 将可变字符串转化为字符串对象

                字符串总结

                String类、StringBuffer和StringBuilder之间的区别

                  • String字符串是常量,一旦创建无法修改
                  • StringBuffer和StringBuilder是可变字符串,创建之后仍可以修改
                  • StringBuffer是线程安全的、StringBuilder线程不安全

                  包装类

                  java.lang包下为8种基本数据类型提供对应的包装类

                  8中基本数据类型以及对应的包装类

                  基本类型 包装类
                  byte Byte
                  short Short
                  int Interger
                  long Long
                  float Float
                  double Double
                  boolean Boolean
                  char Character

                   

                   

                  包装类提供了字符串、基本数据类型和包装类相互转化的方法

                  image.gif编辑

                  数字基本数据类型的包装类都继承了Number类,它们的使用方式相似,下面以常用的基本数据类型int对应的包装类Integer为例说明数字类型包装类的使用。

                  基本数据类型 int值转化为Integer类型对象

                  int i = 20;
                   Integer integer1 = new Integer(i);//方法一
                   Integer integer2 = Integer.valueOf(i);//方法二

                  image.gif

                  Integer对象转化为基本数据类型int值

                  Integer integer = new Integer(20);
                   int i1 = integer.intValue();

                  image.gif

                  String类型的数字转化为Integer对象

                  String s = “120”;
                  Integer integer1 = new Integer(s);//方法一
                  Integer integer2 = Integer.valueOf(s);//方法二

                  image.gif

                  Integer类型转化为String类型

                  Integer integer = new Integer(20);
                  String s1 = integer.toString();

                  image.gif

                  String类型的数字转化为基本数据类型的int值

                  String s = “120”;
                   int i1 = Integer.parseInt(s);//方法一
                   Integer integer = new Integer(s);
                   int i2 = integer.intValue();//方法二

                  image.gif

                  基本数据类型int转化为字符串

                  int i1 = 20;
                   String str = String.valueOf(i1);//方法一
                   str = Integer.toString(i2);//方法二

                  image.gif

                  Integer的equals方法

                  Integer的equals方法继承自Object,并且进行了重写

                  Integer的equals方法只有一种情况返回true:两个Integer类型的对象 i1 和 i2包含的值相等时;其他情况返回false

                  如:

                  Integer i1 = new Integer(20);
                  Integer i2 = new Integer(30);
                  Integer i3 = new Integer(20);
                  boolean  b = i1.equals(i2);//false
                  b = i1.equals(i3);//true

                  image.gif

                  数字类型包装类总结

                  根据基本数据类型int和对应包装类Integer的知识,总结如下内容

                    • byte/short/long/float/double类型和包装类之间转换的方法
                    • byte/short/long/float/double的包装类和字符串之间的转换方法
                    • byte/short/long/float/double类型和字符串之间的转换方法

                    boolean类型的包装类Boolean

                    Boolean用于将一个基本数据类型boolean值包装为对象

                    将boolean值转换为Boolean对象

                    Boolean b1 = new Boolean(true);//方法一
                    Boolean b2 = Boolean.valueOf(true);//方法二

                    image.gif

                    将Boolean对象转换为boolean值

                    Boolean b =  new Boolean(true);
                     boolean b1 = b.booleanValue();//方法一

                    image.gif

                    String类型对象转换为Boolean对象

                    String s=“true”;
                    Boolean b1 = new Boolean(s);//方法一
                    Boolean b2 = Boolean.valueOf(s);//方法二

                    image.gif

                    将Boolean对象转换为String类型

                    Boolean b = new Boolean(true);
                    String s1 = b.toString();//方法一
                    String s2 = Boolean.toString(b);//方法二
                    String s3 = String.valueOf(b);//方法三

                    image.gif

                    boolean值转换为String对象

                    boolean b = true;
                     String s1 = String.valueOf(b);

                    image.gif

                    String对象转换为boolean值

                    String s = “true”;
                    boolean b1 = Boolean.parseBoolean(s);//方法一
                    Boolean b = new Boolean(s);
                    boolean b2 = b.booleanValue();//方法二

                    image.gif

                    字符包装类Character用于将char类型值包装为对象

                    将char值转换为Character对象

                    Character c1= new Character(‘A’);//方法一
                     Character c2 = Character.valueOf(‘A’);//方法二

                    image.gif

                    将Character对象转换为String

                    Character c1= new Character(‘A’);
                    String str1= c1.toString();

                    image.gif

                    将char转换为String

                    String str2= Character.toString(‘A’);

                    image.gif

                    Character包装类除了提供以上char和Character相互转换的方法外也提供了以下有用的方法

                    方法 描述
                    boolean isLetter(char ch) 判断字符是否是字母
                    boolean isDigit(char ch) 判断字符是否是数字
                    boolean isWhiteSpace(char ch) 判断字符是否是空格
                    boolean isUpperCase(char ch) 判断字符是否是大写
                    boolean isLowerCase(char ch) 判断字符是否是小写
                    char toUpperCase(char ch) 返回字符的大写
                    char toLowerCase(char ch) 返回字符的小写
                    String toString(char ch) 返回字符转字符串

                     

                    包装类总结

                    包装类是将基本数据类型的值包装为Java中的对象,Java语言为8种基本数据类型分别提供了包装类

                    包装类提供了基本数据类型、包装类、字符串之间的相互转换的方法,这些转换的的方法在今后的开发中十分有用。

                    Math类

                    方法 描述

                    double abs(double d)

                    float abs(float f)

                    int abs(int i)

                    long abs(long lng)

                    返回参数的绝对值
                    double ceil(double d) 返回一个大于等于参数的最小整数
                    double floor(double d) 返回一个小于等于参数的最大整数
                    double rint(double d) 返回一个最接近参数的整数(类型为double)

                    long round(double d)

                    int round(double d)

                    返回一个最接近参数的整数(类型为int或long)

                    double min(double arg1,double arg2)

                    float min(float arg1,float arg2)

                    int min(int arg1,int arg2)

                    long min(long arg1,long arg2)

                    返回两个参数的最小值

                    double max(double arg1,double arg2)

                    float max(float arg1,float arg2)

                    int max(int arg1,int arg2)

                    long max(long arg1,long arg2)

                    返回两个数的最大值

                    代码示例

                    public class TestMath {
                        public static void main(String[] args) {
                            Double d=-12.94;
                            System.out.println(Math.abs(d));
                            System.out.println(Math.rint(d));
                            System.out.println(Math.round(d));
                        }
                    }

                    image.gif

                    System类

                    System类代表运行时系统,提供了一些获取设置和获取当前系统运行环境的方法

                    System有三个成员变量

                      • in 标准输入流
                      • out 标准输出流
                      • err 错误输出流

                      System中的方法

                        • System.arrayCope()//快速复制数组的方法
                        • System.exit();//退出Java虚拟机的方法

                        作业

                        相关文章
                        |
                        2天前
                        |
                        Java 开发工具 Windows
                        Java入门及环境变量
                        Java入门及环境变量
                        |
                        2天前
                        |
                        Java
                        [Java 基础] Java修饰符
                        [Java 基础] Java修饰符
                        |
                        2天前
                        |
                        Java API 调度
                        [AIGC] 深入理解Java并发编程:从入门到进阶
                        [AIGC] 深入理解Java并发编程:从入门到进阶
                        |
                        2天前
                        |
                        Java Nacos 开发者
                        Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
                        Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
                        |
                        2天前
                        |
                        前端开发 Java 测试技术
                        Java从入门到精通:4.1.1参与实际项目,锻炼编程与问题解决能力
                        Java从入门到精通:4.1.1参与实际项目,锻炼编程与问题解决能力
                        |
                        2天前
                        |
                        Java 程序员 数据库连接
                        Java从入门到精通:3.3.2性能优化与调优——内存管理篇
                        Java从入门到精通:3.3.2性能优化与调优——内存管理篇
                        Java从入门到精通:3.3.2性能优化与调优——内存管理篇
                        |
                        2天前
                        |
                        Dubbo Java 应用服务中间件
                        Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
                        Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
                        |
                        2天前
                        |
                        SQL Java 数据库连接
                        Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
                        Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
                        |
                        2天前
                        |
                        SQL Java 数据库连接
                        Java从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
                        ava从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
                        |
                        2天前
                        |
                        设计模式 存储 前端开发
                        Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
                        Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式