Java常用类

1、枚举

1、 枚举概述

(1)从Java SE 5.0开始,Java程序设计语言引入了一种新的类型——枚举(Enum)。

(2)枚举是指由一组固定的常量组成的类型。使用关键字enum定义。

(3)定义枚举语法格式如下:

        [Modifer] enum enumName{

                enumContantName[,enumContantName2...[;]]

                //[field,method]

        }

        1)Modifer是访问修饰符,如public等。

        2)enum是关键字。

        3)enumContantName[,enumContantName2...[;]]表示枚举常量列表,枚举常量之间以逗号隔开。

        4)/[field,method]表示其他的成员,包括构造方法,置于枚举常量的后面。

        5)在枚举中,如果除了定义枚举常量,还定义了其他成员,则枚举常量列表必须以分号(;)结尾。

(4)枚举其实就是一种类型,是java.lang.Enum类的子类,继承了Enum类的许多有用的方法。


2、使用枚举类的作用及好处

(1)在Java中,通常使用枚举表示一组个数有限的值,用于实现对输入的值进行约束检查。

(2)在程序中使用枚举的好处总结如下:

        1)枚举可以使代码更易于维护,有助于确保为变量指定合法的、期望的值。

        2)枚举更易于编程时输入,使用枚举赋值,只需要输入枚举名,然后输入一个点(.),就能将所有的值显示出来。

        3)枚举使代码更清晰,允许使用描述性的名称表示数据,使用时直观方便。

2、包装类

1、 包装类概述

(1)Java语言是面向对象的,但是Java中的基本数据类型却不是面向对象的,这在实际开发中存在很多的不便。为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类,称为包装类。

(2)包装类均为java.lang包中,包装类和基本数据类型的对应关系如下表所示。

(3)包装类的用途主要有两个:

        1)包装类作为和基本数据类型对应的类存在,方便对象的操作。

        2)包装类包含每种基本数据类型的相关属性,如最大值、最小值等,以及相关的操作方法。

2、 包装类和基本数据类型的转换

(1)基本数据类型转换为包装类

在Java中,基于基本数据类型数据创建包装类对象通常可以采用如下两种方式。

        1)使用包装类的构造方法

                -->public Type(type value)。

                -->public Type(String value)。

        其中,Type表示包装类,参数type为基本数据类型。不能使用第二种构造方法创建Character类的包装类对象,只能是Character charValue = new Character('x')这种形式。

        2)使用包装类的valueOf()方法

        a)包装类中一般包含静态的重载的valueOf()方法,它可以接收基本数据类型数据和字符串作为参数并返回包装类的对象。

        b)以Integer包装类为例,valueOf()方法的定义如下表所示

        c)Character类的valueOf()方法只有一个版本的定义,即valueOf(char c),它返回一个表示指定char值的Character对象。

(2)包装类转换成基本数据类型

包装类转换成基本数据类型通常采用如下的方法:public type typeValue();

其中,type指的是基本数据类型,如byteValue()、charValue()等,相应的返回值为byte、char。

(3)基本类型和包装类的自动转换

        1)在Java SE 5.0版本之后程序员不需要编码实现基本数据类型和包装类之间的转换,编译器会自动完成。

        Integer intObject = 5; //装箱:基本数据类型转换为包装类

        int intValue = intObject; //拆箱:包装类转换为基本数据类型

        2)虽然Java平台提供了基本数据类型和包装类的自动转换功能。程序员在程序中也不能只使用对象,而抛弃了基本数据类型。

        3)包装对象只有在基本数据类型需要用对象表示时才使用,包装类并不是用来取代基本数据类型的。

3、Math类

(1)java.lang.Math类提供了一些基本数学运算和几何运算的方法。
(2)此类中的所有方法都是静态的。这个类是final类,因此没有子类。
(3)Math类常见方法如下:

        1)static double abs(double a):返回double值的绝对值。例如,Math.abs(-3.5)返回3.5。

        2)static double max(double a,double b):返回两个double值中较大的一个。例如,Math.max(2.5,90.5);返回90.5。

        3)static double random():返回一个随机的double值,该值大于等于0.0且小于1.0。

(4)随机获取一个[num1,num2)之间的整数(num2>num1)公式:
        int num = (int)(Math.random()*(num2-num1)+num1);

4、String、StringBuffer、StringBuilder类

1、 String类概述

(1)在Java中,字符串被作为String类型的对象来处理。

(2)String类位于java.lang包中,默认情况下,该包被自动导入所有的程序。

(3)创建String对象的方法如下代码所示

String s = "Hello World";

String s = new String("Hello World");

(4)String类提供了许多有用的方法来操作字符串,比如获取字符串长度、对两个字符串进行比较、连接两个字符串以及提取一个字符串中的某一部分。

(5)字符串是一个字符序列,每一个字符都有自己的位置,字符串事实上也是一个字符数组,因此它的索引位置从0开始到(字符串长度-1)结束。


2、 String类常用方法

(1)求字符串长度:length()

(2)字符串比较:equals(字符串2)

(3)忽略带小写的字符串比较:equalsIgnoreCase(字符串2)

(4)转换字符串中的英文字符为小写:toLowerCase()

(5)转换字符串中的英文字符为大写:toUpperCase()

(6)字符串的连接:concat(字符串2)

(7)字符串提取和查询
 

(8)字符串拆分:split(separator,limit)

        1)separator是可选项,表示根据匹配指定的正则表达式来拆分此字符串。如果匹配不上,则结果数组只有一个元素,即此字符串。

        2)limit可选项,该值用来限制返回数组中的元素个数。

3、使用StringBuffer类处理字符串

(1)StringBuffer类也是Java提供的用于处理字符串的一个类,而且它是比String类更高效的存储字符串的一种引用数据类型。

(2)StringBuffer类对字符串进行连接操作时,使用StringBuffer类可以大大提高程序的执行效率。

(3)如何使用StringBuffer类

StringBuffer类位于java.util包中,是String类的增强类。StringBuffer类提供了很多方法可供使用。StringBuffer 对象名 = new StringBuffer("字符串内容");

(4)常用的StringBuffer类方法

        1)toString()方法:将StringBuffer类型的字符串转换为String类型的对象。

        2)append(参数)方法:将参数连接到字符串后,可以将任何类型的值追加到字符串后。

        3)insert(位置,参数)方法:将参数插入到字符串指定位置后并返回。参数值可以是包括String的任何类型。


4、使用StringBuilder类处理字符串

(1)java.lang.StringBuilder是JDK 5.0版本新增的类,它是一个可变的字符序列。

(2)此类提供一个与StringBuffer类兼容的API,被设计用作StringBuffer类的一个简易替换,在大多数实现中,它比StringBuffer执行要快。

(3)使用StringBuilder类处理字符串的方法与StringBuffer类基本一样。


5、 String类、StringBuffer类及StringBuilder类对比

String、StringBuffer、StringBuilder这3个类在处理字符串时有各自的特点和实用场合,具体如下:

(1)String:字符串常量

String是不可变的对象,在每次对String类型进行改变时其实都等同于生成了一个新的String对象,然后指向新的String对象,所以经常改变内容的字符串最好不要用String类型,因为每次生成对象都会对系统性能产生影响。

(2)StringBuffer:字符串变量

StringBuffer是可变的字符串,在每次对StringBuffer对象进行改变时,会对StringBuffer对象本身进行操作,而不是生成新的对象,再改变对象引用。所以,在字符串对象经常改变的情况下,推荐使用StringBuffer类。

(3)StringBuilder:字符串变量

JDK 5.0版本以后提供了StringBuilder类,它和StringBuffer类等价,区别在于StringBuffer类是线程安全的,StringBuilder类是单线程的,不提供同步,理论上效率更高。

5、日期类

(1)java.util包也是Java内置的一个工具包,它包含了集合框架、日期和时间、随机数生成器等各种实用工具类。

(2)java.util包不会默认导入,如果要使用该包中的类,则必须在程序的开始部分进行手工导入。

(3)java.util包中提供的和日期相关的类有Date类、Calendar类和SimpleDateFormat类等。

        1)Date类对象用来表示日期和时间,该类提供了一系列操作日期和时间各组成部分的方法。Date类中使用最多的是获取系统当前的日期和时间。

   举例:Date date = new Date();这句代码是使用系统当前时间创建日期对象。

        2)Calendar类也是用老操作日期和时间的类,它可以看作是Date类的一个增强版。Calendar类提供了一组方法,允许把一个以毫秒为单位的时间转换成年、月、日、小时、分、秒。可以把Calendar类当做是万年历,默认显示的是当前时间,当然也可以查看其他时间。

Calendar类是抽象类,可以通过静态方法getInstance()获得Calendar类的对象,其实这个获得的对象是它的子类的对象。

Calendar类提供一些方法和静态字段来操作日历,例如:

-->nt get(int field):返回给定日历字段的值。

-->YEAR:指示年。

-->MONTH:指示月。

-->DAY_OF_MONTH:指示一个月中的某天。

-->DAY_OF_WEEK:指示一个星期中的某天。

        3)DateFormat类用来格式化日期和时间,它在java.text包下,是一个抽象类,提供了多种格式化和解析时间的方法。格式化是将日期转换成文本,解析是将文本转换成日期格式。使用比较多的是它的子类SimpleDateFormat类。SimpleDateFormat类是一个以语言环境有关的方式格式化和解析日期的具体类,如“yyyy-MM-dd HH:mm:ss”就是指定的一种日期和时间格式。
        4)在JDK 1.1之间,Date类允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的API不易于实现国际化。从JDK 1.1开始,使用Calendar类实现日趋和时间字段之间的转化,使用DataFormat类来格式化和解析日期字符串。

6、Random类

(1)Random类用于生成随机数。每当需要以任意或非系统方式生成数字时,可使用此类。
(2)Math类的random()方法也可以产生随机数,其实Math类的random()方法底层就是使用Random类实现的。
(3)Random类的构造方法有两种重载方式。

        构造方法 说明

        Random() 创建一个新的随机数生成器

        Random(long seed) 使用单个long种子创建一个新的随机数生成器
(4)Random类中定义了很多方法用于获取随机数,最常用的是nextInt()方法,它返回下一个伪随机数,返回值类型是整数类型。返回下一个伪随机数的语法格式如下:

int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。

int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在0(包括)和指定值n(不包括n)之间均匀分布的int值。
(5)Random类还定义了得到长整型、boolean型、浮点型等伪随机数的方法。
(6)如果用同样一个种子值来初始化两个Random对象,然后用每个对象调用相同的方法,那么得到的随机数也是相同的。

7、常用类总结

1、 枚举可以使代码更易于维护,有助于确保为变量赋予合法的、期望的值。
2、 包装类均位于java.lang包中,每个基本数据类型都对应着一个包装类。
3、 java.lang.Math类提供了常用的数学运算方法。
4、 定义一个字符串可以使用String类、StringBuffer类和StringBuilder类。
5、 String类提供了大量的操作字符串的方法,常用方法有如下几个。

        获得字符串的长度:length()

        比较字符串:equals()

        连接字符串:concat()

        提取字符串:substring()

        搜索字符串:indexOf()

        拆分字符串:split()
6、 StringBuffer类提供的操作字符串的常用方法有如下几个。

        转换成String类型:toString()

        连接字符串:append()

        插入字符串:insert()
7、 Java编程中经常用到一些工具类,如Date类、Calendar类、Random类等,了解和掌握这些工具类的使用,可为实际应用开发提供方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值