StringBuffer类
package com.zlj.a_string;
public class Demo1 {
public static void main(String[] args) {
//内存地址不一样 是new了一个新的字符串 所以地址不一样
//字符串内容不可变 效率较低
String s = "白小纯";
s += "很狗";
System.out.println(s);
//内存地址一样 线程安全 效率相对于 String高,相对于StringBuilder来说低
StringBuffer sb = new StringBuffer("白小纯");
sb.append("很狗");
System.out.println(sb);
//线程不安全 效率最高
StringBuilder sb1 = new StringBuilder("白小纯");
sb1.append("一念永恒");
System.out.println(sb1);
}
}
String StringBuffer StringBuilder的区别
String | 通过直接赋值字符串或者new一个对象赋值 | 不可变字符串 | 线程安全 | 效率低 | 操作少量数据 | 速度慢 | 操作少量数据 | 速度低 | |
---|---|---|---|---|---|---|---|---|---|
StringBuffer | 通过构造方法来new一个新对象赋值 | 可变字符串 | 线程安全 | 效率较高 | 多线程下操作字符缓冲区下面的大量数据 | 速度较快 | |||
StringBuilder | 通过构造方法来new一个新对象赋值 | 可变字符串 | 线程不安全 | 效率最高 | 单线程下操作字符串缓冲区下面的大量数据 | 速度最快 |
2.枚举类
2.1定义枚举类的语法格式:
public enum 枚举类名{
//下面写常量,常量之间使用逗号隔开,常量要记得大写
}
案例
package com.zlj.a_class;
//枚举类 enum
//表示常量
class A{
public static final double PI = 3.14;//PI就是常量 多个内容是下划线A_B;
}
//将class换成了enum
enum Color1{
//常量之间用,隔开
RED,GREEN,BLUE;
}
public class Demo2 {
public static void main(String[] args) {
Color1 red = Color1.RED;
System.out.println(red);//打印RED
}
}
2.2枚举在switch - case中的使用
package com.zlj.a_enum;
enum Color1 {
RED,GREEN,BLUE
}
public class Demo2 {
public static void main(String[] args) {
Color1 green = Color1.GREEN;
switch (green) {
case RED:
System.out.println("红色");
break;
case GREEN:
System.out.println("绿色");
break;
case BLUE:
System.out.println("蓝色");
break;
}
}
}
2.3枚举中的一些方法
案例
package com.zlj.a_class;
enum Color3{
RED,GREEN, BLUE;
}
public class Demo4 {
public static void main(String[] args) {
Color3[] c3 = Color3.values();//返回值是数组
//可以找到每个枚举类中常量的索引
for (Color3 value : c3) {
System.out.println(value + "所对应的下标为:" + value.ordinal());
}
//返回值是指定字符串的枚举常量
Color3 red = Color3.valueOf("RED");
System.out.println(red);//RED
}
}
3.包装类
1.***Value();将包装类转为基本数据类型
2.toString()将基本数据类型转换字符串
3.parse**();将字符串类型的数据转为基本数据类型的
4.valueOf();将基本数据类型转换为包装类类似于手动装箱的过程
拓展
自动装箱是指:将基本数据类型转为包装类
自动拆箱:将包装类转为基本数据类型
package com.zlj.b_package;
public class Demo2 {
public static void main(String[] args) {
//***value(); 将包装类型的数据转为基本数据类型的数据
Short s1 = 20 ;
short s = s1.shortValue();//自动拆箱 将包装类型的数据转为基本数据类型
System.out.println(s);
Integer i = 21;
int a = i.intValue();
System.out.println(a);
//toString();将基本数据类型的数据转为字符串类型的数据
int i2 = 938902;
String s2 = Integer.toString(i2);
System.out.println(s2);
//parse****();将字符串转为基本数据类型
int d = Integer.parseInt("89829");
System.out.println(d);
//valueof() 将基本数据类型转为包装类型的数据 手动装箱
byte b3 = 90;
byte b2 =Byte.valueOf(b3);
System.out.println(b2);
/**
* double 转 Double
* Double 转double
* double 转字符串
* Double 转字符串
* 字符串转Double
* 字符串转double
*/
//double 转 Double
double a1 = 10.2;
Double aDouble = Double.valueOf(a1);
System.out.println(aDouble);
//Double 转 double
Double b1 = 40.1;
double v = b1.doubleValue();
System.out.println(v);
//double 转字符串
double a2 = 10.2;
String s3 = Double.toString(a2);
//Double 转字符串
Double c = 10.3;
Double aDouble1 = Double.valueOf(c);
System.out.println(aDouble1);
//字符串转Double
String s5 = "10.5";
Double aDouble2 = Double.valueOf(s5);
System.out.println(aDouble2);
//字符串转double
String s4 = "12.3";
double v1 = Double.parseDouble(s4);
System.out.println(v1);
}
}
4.Math类
Math
类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。
专门处理数学运算的一个类
package com.zlj.c_math;
//随机数的类
public class Demo2 {
public static void main(String[] args) {
System.out.println(Math.PI);//圆周率
System.out.println(Math.E);//自然底数
System.out.println(Math.abs(-10));//绝对值
System.out.println(Math.round(10.2));//四舍五入
System.out.println(Math.ceil(-11.8));//向上取整
System.out.println(Math.floor(11.8));//向下取整
//随机出来0~100的整数 包含0 不包含100
System.out.println((int)(Math.random() * 100));
}
}
5.Random类
package com.zlj.random;
import java.util.Random;
public class Demo1 {
public static void main(String[] args) {
//随机数
Random rd = new Random();
int i = rd.nextInt(10);
System.out.println(i);
int i1 = rd.nextInt(56);
boolean b = rd.nextBoolean();
System.out.println(b);
double v = rd.nextDouble( );//0 ~ 1.0
System.out.println(v);
}
}
6.日期格式化 和Calendar方法
package com.zlj.calendar;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Demo1 {
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));
//获取每月的星期几
System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
//获取这周的第几天
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
//时间格式化
//时间
Date time = calendar.getTime();
//设置日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(time);
System.out.println(format);
}
}