实用类

与世无争的帅哥 提交于 2019-11-30 00:40:47

学习目标:

  • 掌握枚举类型
  • 掌握Date类及Calendar类
  • 理解包装类
  • 掌握Math类的常用方法
  • 会使用String类的常用方法
  • 会使用StringBuffer类的常用方法
  • 了解String类及StringBuffer类操作字符串的原理
  • 会使用Random类生成随机数

—————————————————————————————————————

认识枚举

从Java SE 5.0开始,Java程序设计语言引入了一种新的类型——枚举(Enum)
枚举是指由一组固定的常量组成的类型。使用关键字enum定义。
枚举其实就是一种类型,是java.long.Enum类的子类,继承了Enum类的许多有用的方法。深入了解请自行查看API帮助文档。
在Java中,通常使用枚举表示一组个数有限的值,用于实现对输入的值进行约束检查。

—————————————————————————————————————
例1

public enum Genders {
	男,女
}

public class Student {
	public Genders sex;
	
	public static void main(String[] args) {
		Student stu = new Student();
		stu.sex = Genders.女;
		stu.sex = Genders.男;
	}
}

例2:根据用户给的数字,告知该数字(1-7)对应的日期该做什么事情

public enum Week {
	星期一,星期二,星期三,星期四,星期五,星期六,星期日
}

public class Test {
	public void doWhat(Week week){
		switch (week) {
		case 星期一:

		case 星期二:
			
		case 星期三:
			
		case 星期四:
			
		case 星期五:
			System.out.println("工作日:好好写代码!");
			break;
			
		case 星期六:
			System.out.println("周六啦!看看电影休息一下");
			break;
			
		case 星期日:
			System.out.println("周日啦,你可以休息一下");
			break;
		}
	}
	
	public static void main(String[] args) {
		Test test = new Test();
		test.doWhat(Week.星期六);
	}
}

在这里插入图片描述

—————————————————————————————————————

包装类

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

包装类的用途主要有两个:
1.提供了一系列实用的方法。
2.集合不允许存放基本数据类型数据,存放数字时,要用包装类型。

在这里插入图片描述

包装类的构造方法
所有包装类都可以将与之对应的基本数据类型作为参数,来构造他们的实例
除Character类外,其他包装类可将一个字符串作为参数构造它们的实例

注意:(1):Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false。
(2):当Number包装类构造方法参数为String类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译通过,运行时NumberFormatException异常
在这里插入图片描述
—————————————————————————————————————

包装类的常用方法
1.XXXValue():包装类转换成基本类型
Integer integerId = new Integer(25);
在这里插入图片描述
2.toString():以字符串形式返回包装对象表示的基本类型数据
在这里插入图片描述

3.parseXXX():把字符串转换为相应的基本类型数据(Character除外)重点记
在这里插入图片描述
4.valueOf()
在这里插入图片描述

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

装箱:基本类型转换为包装类的对象
拆箱:包装类对象转换为基本类型的值

例如
Integer intObject = 5; //基本数据类型转换成包装类
int intValue = intObject;//包装类转换成基本数据类型

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

—————————————————————————————————————

Math类
java.lang.Math 类提供了一些基本数学运算和几何运算的方法。此类中的所有方法都是静态的。这个类是final类,因此没有子类。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常用方法

  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。

random()
在这里插入图片描述
—————————————————————————————————————

Random类 java.util.Random

在这里插入图片描述
在这里插入图片描述

注意:用同一个种子来初始化两个Random对象,然后用每个对象调用相同的方法,得到随机数也是相同的。

—————————————————————————————————————

String类

String类位于java.lang包中,具有丰富的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常用方法
length()

—————————————————————————————————————

equals():比较两个字符串内容是否相等

面试题:1.equals()与==
2.创建了几个字符串对象
String重写了equals(),变成了比较字符串内容,==依然是比较两个字符串是否为同一对象

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果参考下图:
在这里插入图片描述
在这里插入图片描述
创建了三个字符串对象:
在这里插入图片描述

在Java中,==和equals()方法应用于两个字符串比较时,所以比较的内容是有差别的。==是比较两个字符串对象所在内存中的地址,就是判断是否是同一个字符串对象,,而equals()比较的是两个字符串对象的值。

字符串比较的其他常用方法:
equalsIgnoreCase()方法:比较字符串时忽略字母大小写。
toLowerCase():全部转换为小写
toUpperCase():全部转换为大写
trim():去掉字符串两端的空格
在这里插入图片描述
在这里插入图片描述
—————————————————————————————————————
字符串链接
方法1:使用”+“
方法2:使用String类的concat()方法
在这里插入图片描述
—————————————————————————————————————
字符串常用提取方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
—————————————————————————————————————

字符串拆分方法:split()
在这里插入图片描述
在这里插入图片描述
—————————————————————————————————————

在这里插入图片描述
方法一:采用split()方法,需要输入特定字符进行分割
在这里插入图片描述
方法二:采用substring()方法进行拆分
在这里插入图片描述
—————————————————————————————————————

注意:String的所有操作并不影响字符串本身,影响的是字符串的一个副本。

StringBuffer类和StringBuilder类

使用StringBuffer类处理字符串:除了使用String类存储字符串之外,还可以使用StringBuffer来存储字符串。StringBuffer类也是Java提供的用于处理字符串的一个类,而且他是比String类更高效的存储字符串一种引用数据类型。特别是对字符串进行连接操作时,使用StringBuffer类可以大大提高程序的执行效率。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用StringBuilder类处理字符串
Java.lang.StringBuilder是JDK 5.0版本新增的类,它是一个可变的字符序列。此类提供一个与StringBuffer兼容的API,被设计用作StringBuffer的一个简易替换,在大多数实现中,它比StringBuffer执行要快。使用StringBuilder类处理字符串的方法与StringBuffer类基本一样。

详情请查帮助文档。

String类,StringBuffer类及StringBuilder类对比
1、String:字符串常量
String是不可变的对象,在每次对String类型进行改变时其实都等同于生成了一个新的String对象,然后指向新的String对象,所以经常改变内容的字符串最好不要用String类型,因此每次生成对象都会对系统性能产生影响。
2、StringBuffer:字符串变量
StringBuffer是可变的字符串,在每次对StringBuffer对象进行改变时,会对StringBuffer对象本身进行操作,而不是生成 新的对象,再改变对象引用。所以,在字符串对象经常改变的情况下推荐使用StringBuffer类。
3、StringBuilder:字符串变量
JDK 5.0版本以后提供了StringBuilder类,它和StringBuffer类等价,区别在于StringBuffer类是线程安全的,StringBuilder类是单线程的,不提供同步,理论上效率更高。

—————————————————————————————————————

java.util包中的常用类

日期操作类
java.util包中提供的和日期时间相关的类有Date类、Calendar类和SimpleDateFormat类等。
Date类对象用来表示日期和时间,该类提供了一系列操作日期和时间各组成部分的方法。Date类中使用最多的是获取系统当前的日期和时间,如Date date = new Date(); 这句代码使用系统当前的时间创建日期对象。

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

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

另外常用的还有格式化日期时间的类——DateFormat类,它在java.text包下,是一个抽象类,提供了多种格式化和解析时间的方法。格式化是指将日期转换成文本,解析是指将文本转换成日期格式。使用比较多的是它的子类SimpleDateFormat,SimpleDateFormat类是一个以与语言环境有关的方式来格式化和解析日期的具体类,如**“yyyy-MM-dd HH:mm:ss”** 就是指一种日期和时间格式。

Date
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

Calendar
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SimpleDateFormat
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!