1,String
常用类:经常使用的类
字符串String
不可变长字符序列
String类表示字符串. java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。
“abc” 字符串常量 --> 字符串常量池中-> 方法区 new String() --> 堆中
学习API类型:
了解类的作用与特点
学习构造器
学习方法
成员
非静态
静态的
底层分析:
jdk11 ->使用字节数组存储字符串数据 private final byte[] value;
jdk8 -> 使用字符数组存储字符串数据 private final char[] value;
StringBuilder 与 StringBuffer
字符串缓冲区的下,效率相对String更快,建议使用此类优先于StringBuffer因为在大多数实现中它会更快。
String 不可变长的字符序列,对字符串做少量改动的时候推荐使用
StringBuilder 可变长字符序列 , 线程不安全 ,单线程下大量操作字符串推荐使用
StringBuffer 可变长字符序列 , 线程安全的 ,多线程下大量操作字符串推荐使用
执行效率 StringBuilder> StringBuffer > String
2;Math用法
随机数公式
[min,max] (int)(Math.random() * (max-min+1) + min)
向上取整 返回>=参数的最近的整数
static double ceil(double a)
向下取整 返回小于或等于参数且等于数学整数的最大值(最接近正无穷大) double 。
static double floor(double a)
返回两个 double值中较大的 double
static double max(double a, double b)
返回第一个参数的值,该值是第二个参数的幂。
static double pow(double a, double b)
3:类的基本类型的包装类
为什么存在存在基本数据类型还要提供引用数据类型???
1.包装类是类,类中可以定义成员,增强使用能力(成员变量,成员方法…)
2.类似集合,要求只能存储引用数据类型的数据
3.基本数据类型与引用数据类型的默认值(null)
为什么存在包装类还要保留基本数据类型?
基本数据类型比引用数据类型更节省内存空间,存在性能优势
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
自动拆装箱:
自动装箱 : 基本—> 包装
自动拆箱 : 包装—> 基本
比较:
==基本数据类型->数据值-> 引用数据类型 ->地址值
1.两个基本数据类型int比较,只要数据值相等就相等
2.两个new Interger()比较.肯定不相等,因为new每个对象堆内存中地址不同
3.Integer与new Integer()比较肯定不相等.因为new不同的地址
4.基本数据类型int与Integer|new Integer比较,如果数据值相等肯定相等,因为包装类会发生自动拆箱,然后比较数据值
5.两个Integer比较,在缓冲区范围[-128,127]之间就相等,同一个缓冲区对象,否则返回new Integer()
4:枚举
枚举类:当能够确定一种事物的所有可能,一个类型的所有对象的时候
是类,定义枚举类型 enum
java中所有的枚举类型都会隐式的继承自java.lang.Enum, 这是所有Java语言枚举类型的公共基类。
枚举类中的字段,就为做当前枚举类型的一个实例存在,默认被 public static final修饰
5:日期类型
Date日期
Date类表示特定的时刻,精度为毫秒
public class Class001_Date {
public static void main(String[] args) {
//Date() 分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒。
Date date = new Date();
System.out.println(date);
System.out.println(date.getTime()); //返回从纪元开始到当前日期对象所表示的时刻之间的毫秒数
//Date(long date) 分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。
Date date2 = new Date(1623402643599L);
System.out.println(date2);
//boolean after(Date when) 测试此日期是否在指定日期之后。
//boolean before(Date when) 测试此日期是否在指定日期之前。
System.out.println(date.after(date2));
System.out.println(date.before(date2));
}
}
SimpleDateFormat 格式日期转换器
可以实现日期与字符串之间额转换问题
format() 日期对象转换字符串
parse() 字符串转为日期对象