Java常用类
包装类
包装类是将基本数据类型封装成一个类,包含属性和方法
使用:在使用过程中,会涉及到自动装箱和自动拆箱
装箱:将基本数据类型转换成包装类
拆箱:将包装类转换成基本数据类型
//在Interger类中,Integer为我们定义了一个缓冲池,将-128~127范围内的值存放至缓冲池中,当直接赋值或调用valueOf方法进行创建该范围内的值时,会直接从缓冲池获取值,无需在堆内存中开辟新空间;若不在范围内,则需开辟新空间存放变量。因此当为200时,会创建新空间。
//在Double类中,每次都会创建一个新的空间,因此每次的地址都不同,返回false
Integer i1=100;//使用valueOf,自动装箱,但是-128~127在缓冲区,返回特定数组内的Interger类型,在此之外的,new一个Interger对象
Integer i2=100;
Integer i3=200;
Integer i4=200;
System.out.println(i1==i2);
System.out.println(i3==i4);
Double d1=1.0;//使用valueOf,自动装箱,但是每次会new一个Double类对象
Double d2=1.0;
Double d3=2.0;
Double d4=2.0;
System.out.println(d1==d2);
System.out.println(d3==d4);
字符串相关类
(不可变的String 可变的StringBuffer、StringBuilder)
注意:常量池在1.7之后放置在了堆空间之中
字符串的使用:
1、创建
String str=“abc”;
String str2=new String(“abc”);
两种方式都可以使用,只不过第一种使用比较多
第一种放置在常量池中,而第二种需要new一个String对象
//在常量池中的"abc",a1,a2的地址是相同的,因此返回true
//而a3 a4都是new了一个新对象,因此地址不同,返回false
String a1="abc";
String a2="abc";
String a3=new String("abc");
String a4=new String("abc");
System.out.println(a1==a2);
System.out.println(a3==a4);
2、字符串的本质
字符串的本质是字符数组或者叫做字符序列
String类用final修饰,不可以被继承
equals被重写,使用equals方法比较的是字符数组中的每一个位置的值
String是一个不可变对象
方法:
substring()
在截取字符串的时候,需要注意是左闭右开区间
可变字符串
StringBuffer:线程安全,效率低
StringBuilder:线程不安全,效率高
时间处理相关类
Date类:表示日期和时间
DateFormat类(抽象类)与SimpleDateFormat(实现类):用于定制日期时间的格式
Date date = new Date(); //创建日期对象
SimpleDateFormat formater = new SimpleDateFormat("yyyy-
MM-dd HH:mm:ss");//定制日期格式
String now = formater.format(date);
System.out.println(now);
Calendar类:抽象类、用于设置和获取日期/时间的特定部分
提供了一下方法和静态字段,详细查看官网api
方法:int get(int field) 返回给定日历字段的值
MONTH 指示月
DAY_OF_MONTH 指示一个月的一天
Math类
random() 生成[0,1)之间的随机数
abs()
pow()
枚举类
枚举指由一组固定的常量组成的类型`
public enum Genders{
Male,Female;
}
枚举类型:
- 只能够取特定值中的一个
- 使用enum关键字
- 所有的枚举类型隐性地继承自 java.lang.Enum。(枚举实质上还是类!
而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是publi
c static final的。可以直接通过枚举类型名直接使用它们。) - 强烈建议当你需要定义一组常量时,使用枚举类型