实用类
1. 能够定义并使用枚举类型
**基本数据类型:**byte short int long float double boolean char
**引用数据类型:**数组、类(String)、接口、枚举
switch(表达式) 支持int(byte short) String Enum枚举
案例演示:
/**
* 星期枚举类
* 枚举类型其实就是个已经在Java中被定义了父类的普通Class而已
* 它无法继承其他类,但是可以实现接口
* @author Charles7c
* 2019年2月25日 上午9:11:15
*/
public enum DayOfWeek{
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY;
/*private String name;
public void print() {
}*/
}
public class Test1 {
public static void main(String[] args) {
/*
* 需求: 当今天是周一到周五时,我们要好好学习! 当今天是周六到周日时,我们要好好休息!
*/
// 定义当前的星期
DayOfWeek dayOfWeek = DayOfWeek.MONDAY;
// 判断当前是要进行什么活动
switch (dayOfWeek) {
case MONDAY:
case TUESDAY:
case WEDNESDAY:
case THURSDAY:
case FRIDAY:
System.out.println("好好学习!");
break;
case SATURDAY:
case SUNDAY:
System.out.println("好好休息!");
break;
default:
break;
}
}
}
2. 掌握包装类和自动拆箱 装箱
**包装类:**引用数据类型。
基本数据类型 -> 引用数据类型
byte -> Byte
short -> Short
int -> Integer
long -> Long
float -> Float
double -> Double
boolean -> Boolean
char -> Character
数据类型—>包装类 包装类.valueof(数据类型)
包装类---->数据类型 包装类.xValue()
包装类---->字符串 包装类.toString()
字符串----->基本数据类型 基金数据类型对应得包装类.parsexx(字符串)
//int类型转换为integer包装类 通过包装类的构造
Integer integer1=new Integer(10);
//int类型转换为integer包装类 通过包装类.valueof()
Integer integer2 =Integer.valueOf(10);
//String类型转换为integer包装类 通过包装类的构造
Integer integer3 =new Integer("10");
//integer转为int类型 通过包装类.xxValue()
int int1 = integer1.intValue();
//integer转为String类型 通过integer.toString()
String string = integer2.toString();
//int转为String 通过包装类.toString()
String string2 = Integer.toString(10);
//数字型字符串转为int 通过Integer.parseInt()
int int2 = Integer.parseInt("10");
//数字型字符串转为integer 通过Integer.valueOf()
Integer valueOf = Integer.valueOf("10");
Java中提供了一套自动
拆箱和装箱操作:
**拆箱:**将包装类型转换为基本类型 Integer i = new Integer(10); int a = i;
**装箱:**将基本类型转换为包装类型 Integer i = 10;
**提醒:**未来我们有些值需要定义为包装类型!因为它可以接收Null
值。
Integer i = null; (对的)
int a = null; // (X)
3. 会使用Math类型进行数学运算
Math.random(); 生成[0,1.0)之间的小数
生成随机整数[min,max):(int)(Math.random() * (max - min)) + min
// 求绝对值
int abs = Math.abs(-1);
System.out.println(abs);
// 求两个数的最大值max() min()
int max = Math.max(10, 20);
System.out.println(max);
// 求几的几次方
double pow = Math.pow(3, 24);
System.out.println(pow);
// 求平方根
double sqrt = Math.sqrt(16);
System.out.println(sqrt);
// 四舍五入
long round = Math.round(21.5);
System.out.println(round);
long round2 = Math.round(21.3);
System.out.println(round2);
// 向下取整 floor地板
double floor = Math.floor(21.6);
System.out.println(floor);
// ceil 天花板
double ceil = Math.ceil(21.2);
System.out.println(ceil);
4 会使用Random类获取随机数
Random random = new Random();
random.nextInt(int bound); // [0,bound)
// 3.生成[0.0,1.0)
double nextDouble = random.nextDouble();
// 世界上没有随机数
// 所谓的随机数 都是通过一套算法生成
// 种子数:初始化的计算值
Random ran1 = new Random(10);
Random ran2 = new Random(10);
int rand1 = ran1.nextInt(10);
int rand2 = ran2.nextInt(10);
System.out.println(rand1);
System.out.println(rand2);
//rand1和rand2的值是一样的
5. 会使用String类操作字符串(重要)
常用的API
- int length(); 获取字符串长度
String name=" ";// 一个空格也是一位 name.length=1 - boolean equals(String str); 判断字符串是否相同
- boolean equalsIgnoreCase(String str); 不区分大小进行相同比较
- String toUpperCase(); 转换为大写
- String toLowerCase(); 转换为小写
- String concat(String str); 拼接字符串
- int indexOf(String str); 获取从左到右中该字符/字符串第一次出现的位置
- int lastIndexOf(String str); 获取从左到右中该字符/字符串最后一次出现的位置
- String substring(int beginIndex); 从0开始指定位置开始 截取到末尾
- String substring(int beginIndex,int endIndex); 从指定位置开始,指定位置结束。[beginIndex,endIndex)
- String trim(); 去除两端空格
- char charAt(int index); 获取指定索引的字符
- String[] split(String regex); 根据指定的正则表达式 截取成字符串数组
- char[] toCharArray(); 转换为字符数组
- boolean startsWith(String str); 判断是否以指定前缀开头
- boolean endsWith(String str); 同上
- String replace(String old,String new); 替换字符串
- boolean contains(String str); 判断是否包含指定字符串
String str = "Hell World";
// 从左向右查找第一个遇到的指定字符位置(下标从0开始)
int indexOf = str.indexOf("o");
System.out.println(indexOf);
// 从左向右查找最后一个遇到的指定字符位置(下标从0开始)
int lastIndexOf = str.lastIndexOf("o");
System.out.println(lastIndexOf);
// 获取指定索引的字符(下标从0开始)
char charAt = str.charAt(8);
System.out.println(charAt);
// 截取指定位置开始 到 末尾(下标从0开始 下标为6的,包含6)
String substring = str.substring(6);
System.out.println(substring);
// 截取指定位置开始 指定位置结束 下标从0开始[2,9)
String substring2 = str.substring(2, 9);
System.out.println(substring2);
// 替换字符串
String str1 = "下路的!开团了!在那吃shi呢?";
String replace = str1.replace("shi", "***");
System.out.println(replace);
6. 会使用StringBuffer拼接字符串
StringBuffer和String的区别:
String是不可变字符串,在内容和长度发生改变时,将会产生新的字符串,所以在进行字符串拼接时,容易引发性能损耗。
StringBuffer(StringBuilder)是可变字符串,它内置了字符串缓冲区,在这一个对象里可以实现字符串的追加等操作,如果涉及到比较高频的字符串拼接推荐采用它。
构造:
StringBuffer(String str);
StringBuffer();
常用方法:
append(任何类型);
insert(int index,任何类型值);
7. 会使用Date类和Calendar类
java.util包 因为后面经常容易混淆另一个包中的java.sql。
Date它的好多方法在JDK1.1时代被废弃 转为使用Calendar类中的方法。
new Date()
它会自动获取当前的系统时间
Calendar:
伪构造:
static Calendar getInstance();
常用方法:
get(int 时间组成的代号); 这些代号可以用常量来表示 例如:Calendar.YEAR表示年
8. 会使用SimpleDateFormat解析/转换时间
java.text.SimpleDateFormat
构造:
SimpleDateFormat(String pattern); 使用y M d h/H m s等来指定格式规则
例如:new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”)
常用方法:
Date parse(String dateStr); 将符合格式的时间字符串转换为时间类型
String format(Date date); 将时间转换为指定格式的字符串
Date date=new Date();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date1 = format.format(date);
System.out.println(date1);
//输出2021-01-20 15:01:59
格式 2021年11月25日13时23分45秒
Date date = new Date();
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
//new SimpleDateFormat("HH") 获取指定小时
//new SimpleDateFormat("mm"); 获取指定分钟
String date1 = sdr.format(date);
System.out.println(date1);