一、封装类
package com.java.test;
/*
* 封装类常用方法
* */
public class Test01 {
public static void main(String[] args) {
int a = 10;
Integer integer = new Integer(10);//封装类的定义方式1
/*非静态方法*/
int i = integer.compareTo(5);//比较连个数字的值,integer比5大返回1,比5小返回-1,等于5返回0
double v = integer.doubleValue();//将整数转换为小数
int i1 = integer.intValue();//将Integer转换为int类型
/*静态方法*/
Integer valueOf = Integer.valueOf(10);//封装类的定义方式2
int i2 = Integer.parseInt("123");//将字符串类型转换为int类型
int compare = Integer.compare(1,2);//比较两个数
Integer integer1 = Integer.getInteger("123");//将字符串转换为Integer
int max = Integer.max(1, 2);//返回最大值
int min = Integer.min(1, 2);//返回最小值
String s = Integer.toBinaryString(11);//十进制转二进制
String s1 = Integer.toOctalString(11);//十进制转八进制
String s2 = Integer.toHexString(11);//十进制转十六进制
/*静态属性*/
int maxValue = Integer.MAX_VALUE;
int minValue = Integer.MIN_VALUE;
/*将字符串转换为基本数据类型*/
byte b = Byte.parseByte("123");
short i3 = Short.parseShort("123");
int i4 = Integer.parseInt("123");
long l = Long.parseLong("21123");
float v1 = Float.parseFloat("123.2");
double v2 = Double.parseDouble("123.2");
boolean aTrue = Boolean.parseBoolean("true");
/*Character类型没有该方法*/
}
}
(1)八个类名中,除了Integer和Character类以外,其它六个类的类名和基本数据类型一致,只是类名的第一个字母大写而已
(2)八个类中,除了Character和Boolean以外,其他的都是“数字型“,“数字型”都是java.lang.Number的子类。
(3)Integer类提供了一个静态内部类IntegerCache,对于定义一个静态数组cache,长度为256,赋值为-128—127。对于自动装箱时如果是-128—127范围内的数据,直接获取数组的指定值;对于这个范围之外的数据,通过new Integer()重新创建对象。这么做的目的是提高效率。导致的结果是通过valueOf定义的Integer类型的变量数值在-128—127之间的会直接获取静态数组cache中定义好的对象。
(4)int i = 5; Integer j = i; 该过程就是自动装箱。 Integer i = 5; int j = i; 该过程就是自动拆箱。自动装箱过程是通过调用封装类valueOf()方法实现的,而自动拆箱过程是通过调用封装类 xxxValue()方法 实现的(xxx代表对应的基本数据类型,如intValue()、doubleValue()等)。
(5)基本数据类型和封装类进行比较:将封装类型转换为基本数据类型再进行比较—自动调用xxxValue()方法(自动拆箱)。
二、字符串类
String:字符串类型,由“ ”引起来的若干字符
字符串常量池:JDK源码当中,对这个字符串常量池的定义其实是一个哈希表。
特点:如果以前有这个字符串常量,那么就不会重复的进行储存。换句话说String类型是不可变的
StringBuilder 和 StringBuffer 与 String的区别是String代表不可变的字符序列 是无法修改的,而StringBuilder 和 StringBuffer代表可变字符序列 是可以修改的。
三、日期类
(1)Date类(获取时间)
在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。在网上商城下单时,在对报销单进行审核时,都需要获取当前的时间,通过Date类就可以完成。
package com.java.test;
import java.util.Date;
public class Test04 {
public static void main(String[] args) {
System.out.println(System.currentTimeMillis());//时刻值
Date date = new Date();
System.out.println(date.toString());
/*
* java.util.Date和java.sql.Date相互转换
* 方法:借助于长整型的时刻值
* */
java.sql.Date date1 = new java.sql.Date(date.getTime());
System.out.println(date1);
Date date2 = new Date(date1.getTime());
System.out.println(date2);
}
}
(2)DateFormat类(格式化)
DateFormat是一个抽象类,一般使用它的的子类SimpleDateFormat类来实现。主要作用就是把时间对象转化成指定格式的字符串。反之,把指定格式的字符串转化成时间对象。
package com.java.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test05 {
public static void main(String[] args) throws ParseException {
//构造方法参数列表,表示日期格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = new Date();
String format = simpleDateFormat.format(date);//将日期类型转换为字符串类型
Date parse = simpleDateFormat.parse(format);//将字符串类型转换为日期类型
}
}
(3)Calendar类(日历类)
Calendar 类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示和计算。GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
优点:便于日期|时间的计算
package com.java.test;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Test06 {
public static void main(String[] args) {
GregorianCalendar gcr = new GregorianCalendar();//创建日期类
gcr.add(Calendar.YEAR,1);//年份+1
gcr.set(1999,9,19);//设置年月日
gcr.set(Calendar.YEAR,1999);//设置年
int actualMaximum = gcr.getActualMaximum(Calendar.DATE);//获取这个月有多少天
System.out.println(gcr.get(Calendar.YEAR));//获取年份
int i = gcr.get(Calendar.DAY_OF_WEEK);//获取今天是这个星期的第几天,星期日是第一天
int i1 = gcr.get(Calendar.MONTH);//获取月,从0-11
Date date = new Date();
gcr.setTime(date);//将日期设置到日历类中
}
}
四、Math类
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。如果需要更加强大的数学运算能力,计算高等数学中的相关内容,可以使用apache commons下面的Math类库。
五、Random类
Math类中虽然为我们提供了产生随机数的方法Math.random(),但是通常我们需要的随机数范围并不是[0, 1)之间的double类型的数据,这就需要对其进行一些复杂的运算。如果使用Math.random()计算过于复杂的话,我们可以使用例外一种方式得到随机数,即Random类,这个类是专门用来生成随机数的,并且Math.random()底层调用的就是Random的nextDouble()方法。
六、枚举
定义枚举要使用enum关键字。 所有的枚举类型隐性地继承自 java.lang.Enum。枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的。可以直接通过枚举类型名使用它们。
注意: 需要定义一组常量时,推荐使用枚举类型;