常用类
1.StringBuffer类
String 不可变
public static void main(String[] args) {
StringBuffer ss = new StringBuffer();
//构造一个没有字符的字符串缓冲区(容器),初始容量为16个字符。
System.out.println(ss);
ss.append("小白");//追加
ss.append("小黑");
System.out.println(ss);
//插入 这个2 就是下标索引
ss.insert(2,"小黄");
System.out.println(ss);
//字符串反转
System.out.println(ss.reverse());
//删除一个字符串delet(int start, int end) 要头不要尾
System.out.println(ss.delete(2,4));
String Stringbuffer StringBuilder区别
1.String为固定长度的字符串,StringBuilder和StringBuffer为变长字符串;
2.stringBuffer是线程安全的,StringBuilder是非线程安全的;
3.StringBuffer和StringBuilder的默认初始容量是16,可以提前预估好字符串的长度,进一步减少扩容带来的额外开销
2.枚举类(enum)
语法格式:
public enum 枚举类名 {
写常量,常量之间使用逗号隔开
一般都是大写的
}
enum Color {
RED ,YELLOW,WHITE;
}
public class Dome2 {
public static void main(String[] args) {
//RED这个数据 属于Color这个类的实例的 常量是static修饰的
Color red = Color.RED;
System.out.println(red);
Color white = Color.WHITE;
System.out.println(white);
Color yellow = Color.YELLOW;
System.out.println(yellow);
}
可以用swicth (表达式) {}
表达式数据类型 byte short int char String 枚举
enum Color1 {
RED ,YELLOW,WHITE;
}
public class Dome3 {
public static void main(String[] args) {
Color1 yellow = Color1.YELLOW;
switch (yellow){
case RED:
System.out.println("红色");
break;
case WHITE:
System.out.println("白色");
break;
case YELLOW:
System.out.println("黄色");
break;
}
}
枚举类中的几个方法
values();枚举类中所有的值
ordinal();可以找到每个枚举类中常量的索引
valueOf();返回值的是指定字符串的枚举常量
enum Color2{
RED ,YELLOW,WHITE;
}
public class Dome4 {
public static void main(String[] args) {
//values();枚举类中所有的值
//ordinal();可以找到每个枚举类中常量的索引
//valueOf();返回值的是指定字符串的枚举常量
Color2[] values = Color2.values();
for (Color2 value : values) {
System.out.println(value+"对应索引"+value.ordinal());
}
//valueOf返回的是字符串的枚举常量对象
//只是换了一种写法而已。
Color2 yellow = Color2.valueOf("YELLOW");
Color2 yellow1 = Color2.YELLOW;
System.out.println(yellow);
System.out.println(yellow1);
}
3.包装类
Java有八大基本数据类型,都有与之对应的包装类
int-Integer
byte-Byte
short-Short
long-Long
float-Float
double-Double
boolean-Boolean
char-Character
1.自从JDK1.5之后,有拆箱和装箱
自动装箱:基本数据类型转为包装类
自动拆箱:包装类转为基本数据类型
2.***Value();包装类转为基本数据类型
3.toString();基本数据类型转为字符串
4.parse***();字符串类型的数据转为基本数据类型
5.valueOf();基本数据类型转为包装类类似手动装箱
4.Math
Math
类包含执行基本数字运算的方法
专门处理数学运算的一个类
绝对值 abs()
最大值 max()
最小值 min()
向上取整 ceil()
向下取整floor()
四舍五入round()
随机数random()
public static void main(String[] args) {
//绝对值 abs()
//
//最大值 max()
//
//最小值 min()
//
//向上取整 ceil()
//
//向下取整floor()
//
//四舍五入round()
//
//随机数random()
System.out.println(Math.PI);
System.out.println(Math.E);
//PI和E是两个常量
System.out.println(Math.abs(-88));//绝对值
System.out.println(Math.max(44,55));//最大值
//求三个数的最大值
System.out.println(Math.max(44,Math.max(11,88)));
System.out.println(Math.min(44,77));//最小值
System.out.println(Math.ceil(44.2));//向上取整
System.out.println(Math.floor(44.5));//向下取整
System.out.println(Math.round(44.7));//四舍五入
System.out.println(Math.random());//随机数大于等于 0.0 ,小于 1.0 double
}
5.Random类
专门处理随机数的类
public class Dome6 {
//处理随机数的类
public static void main(String[] args) {
Random random = new Random();
System.out.println(random.nextInt());
System.out.println(random.nextDouble());
System.out.println(random.nextBoolean());
System.out.println(random.nextInt(45));//[0,45)区间
System.out.println(random.nextFloat());
}
6.System类
public static void main(String[] args) {
PrintStream out = System.out;
//是一个流 PrintStream 打印流
out.println("小河");
System.out.println("大河");
//标准输出流打印的东西
System.err.println("错误输出流打印的东西");
错误输出流打印的东西
//输入流
Scanner scanner = new Scanner(System.in);
int s = scanner.nextInt();
System.out.println(s);
long l = System.currentTimeMillis();
// 在1970年1月1日UTC之间的当前时间和午夜之间的差异,以毫秒为单位
System.out.println(l/1000/60/60/24+"天");
//获取系统的东西 System 英文单词就是系统的意思
//os.name 系统的名字
Properties properties = System.getProperties();
System.out.println(properties.get("os.name"));
System.out.println(properties.get("os.version"));
System.out.println(properties.get("user.name"));
System.out.println(properties.get("user.dir"));
System.out.println(properties.get("java.version"));
//Windows 10
//10.0
//lzy68
//E:\day21_lzy
//1.8.0_241
}
7.Runtime
public static void main(String[] args) throws IOException {
//runtime对象可以启动咱们电脑上面任意的一个软件
Runtime runtime = Runtime.getRuntime();
runtime.exec("D:\\Tencent\\eclipse\\eclipse.exe");
//打开eclipse
//返回Java虚拟机将尝试使用的最大内存量。字节数
System.out.println(runtime.maxMemory()/1024/1024+"MB" );
//MB
//返回Java虚拟机中的可用内存量 字节数
System.out.println(runtime.freeMemory()/1024/1024+"MB" );
//返回Java虚拟机中的内存总量 字节数
System.out.println(runtime.totalMemory()/1024/1024+"MB" );
}
8.Date类
专门处理日期的一个类
y年代表整数y -1900
一个月由0到11的整数表示; 0是1月,1是2月,等等; 11月12日。
日期(月的一天)以通常的方式从1到31的整数表示。
//Date类
public static void main(String[] args) {
Date date = new Date();
//Tue Aug 09 19:24:58 CST 2022
System.out.println(date);
System.out.println(date.getYear()+1900);
//2022
// 获取年份 这个年份是减去1900以后的值,所以得加上1900
System.out.println(date.getMonth() + 1);
//一个月由0到11的整数表示; 0是1月,1是2月,等等; 11月12日。
System.out.println(date.getDay());
System.out.println(date.getHours());
System.out.println(date.getMinutes());
System.out.println(date.getSeconds());
//8
//2
//19
//26
//32
}
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
int i = calendar.get(Calendar.YEAR);
System.out.println(i);
//获取当前的年份
System.out.println(calendar.get(Calendar.MONTH)+1);
//获取月份 需要加1的
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
// //获取当月的第几天
System.out.println(calendar.get(Calendar.DAY_OF_WEEK)-1);
//获取这周的第几天 美国周日为周一
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
//获取这一年的第几天
System.out.println(calendar.get(Calendar.HOUR));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));
//获取时间
//获取当前的时间的 返回值是Date类型的数据
Date ti= calendar.getTime();
System.out.println(ti);
//Tue Aug 09 19:37:02 CST 2022
//看不懂 通过一个类将日期格式转换一下
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = simpleDateFormat.format(ti);
System.out.println(format);
//Tue Aug 09 19:40:11 CST 2022
//2022-08-09 19:40:11
//年-月-天 时:分:秒
}
9.Calendar
国际通用的是Calendar类
public static void main(String[] args) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
将一个字符串类型的数据变成一个Date类型的数据
Date strat = format.parse("2001-08-19");
Date end = format.parse("2022-08-09");
//要将字符串转为Date类型才能按照日期来算
//将Date类型的数据转为时间戳,进行相减 因为时间戳是一个long类型数据可以想减
long stratTime = strat.getTime();
//毫秒数
long endTime = end.getTime();
long num = endTime - stratTime;
System.out.println(num/1000/60/60/24);
}