1、Java中基本类型的包装类
Java中的基本类型我们应该都知道,例如,int、float、double、boolean、char 等。为了让基本类型也具有对象特性,Java为每个基本数据类型都提供了一个包装类,这样就可以像操作对象那样操作基本数据类型。
基本类型 对应的包装类
byte → Byte
short → Short
int → Integer
long → Long
float → Float
double → Double
char → Character
boolean → Boolean
包装类其实就是提供类型转换的方法。以Integer为例看一下。
Integer包装类的构造方法:
Integer(int value):创建一个Integer对象,表示指定的int值。
Integer(String s) :创建一个Integer对象,表示String参数所指示的int值。
如下代码所示:
Integer a=new Integer(4);//定义包装类对象 Integer b=new Integer("11");//定义包装类对象
Integer包装类的常用方法:
byteValue():将该Integer转为byte类型。// Integer obj=new Integer(1);byte b=obj.byteValue();
doubleValue():将该Integer转为double类型。//Integer obj=new Integer(1);double d=obj.doubleValue();
floatValue():将该Integer转为float类型。//Integer obj=new Integer(1);float f=obj.floatValue();
intValue():将该Integer转为int类型。//Integer obj=new Integer(1);int i=obj.intValue();
longValue():将该Integer转为long类型。//Integer obj=new Integer(1);long l=obj.longValue();
parseInt(String s):将字符串转为int类型。//int i = Integer.parseInt("30");
toString():将该Integer转换成字符串。//Integer obj=new Integer(1);String s=obj.toString();
valueOf(String s):将字符串转为Integer类型。//int i = Integer.valueOf("30");
2、Date和SimpleDateFormat类
我处理日期和时间相关的数据,我们可以使用java.util包中的Date类。Date类主要的作用是获取当前时间。而java.text包中的SimpleDateFormat类主要是对日期时间进行格式化的。具体如下,
import java.text.SimpleDateFormat; import java.util.Date; public class DateFormat { public static void main(String []args){ //创建Date对象,表示当前时间 Date d=new Date(); //创建SimpleDateFormat对象,指定目标格式 // “yyyy-MM-dd HH:mm:ss” 为预定义字符串, yyyy 表示四位年, MM 表示两位月份, dd 表示两位日期, HH 表示小时(使用24小时制), mm 表示分钟, ss 表示秒 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //调用format()方法,格式化时间,转换为指定格式字符串 String today=sdf.format(d); //输出转换后的字符串 System.out.println(today);//运行结果:2018-07-29 21:51:50 } }
使用parse()方法将日期格式字符串转成Date对象。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateFormat { public static void main(String []args){ //创建SimpleDateFormat对象,指定字符串的日期格式 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String day="2016-12-30 14:52:30"; //创建日期格式的字符串 try { //调用parse()方法,将字符串转换为日期 Date date =(Date)df.parse(day); //输出转换后的时间 System.out.println("当前时间;" + date); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
3、Calendar类
从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现(Date的一些方法都过时了)。在设计上,Calendar类的功能要比Date类强大很多。
import java.util.Calendar; public class CalendarDemo{ public static void main(String []args){ //创建Calendar对象 Calendar c=Calendar.getInstance(); //获取年 int year=c.get(Calendar.YEAR); //获取月份,0表示1月份 int month=c.get(Calendar.MONTH)+1; //获取日期 int day=c.get(Calendar.DAY_OF_MONTH); //获取小时 int hours=c.get(Calendar.HOUR_OF_DAY); //获取分钟 int minute=c.get(Calendar.MINUTE); //获取秒 int scond=c.get(Calendar.SECOND); //输出结果 System.out.println(year+"-"+month+"-"+day+" "+hours+":"+minute+":"+scond); //运行结果是:2018-07-29 22:56:9 } }
Calendar 类提供了 getTime() 方法,用来获取 Date 对象,完成 Calendar 和 Date 的转换,还可通过 getTimeInMillis() 方法,获取此 Calendar 的时间值,以毫秒为单位。如下所示:
import java.util.Calendar; import java.util.Date; public class CalendarDemo { public static void main(String []args){ //创建Calendar对象 Calendar c=Calendar.getInstance(); //将Calendar对象转换为Date对象 Date date=c.getTime(); //获取当前毫秒数 Long time=c.getTimeInMillis(); System.out.println("当前时间:"+date); System.out.println("毫秒数:"+time); //运行结果为: (系统当前时间) //当前时间:Sun Jul 29 23:03:56 CST 2018 //毫秒数:1532876636921 } }
4、Math类
Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类来调用。例如,
Math.random(); public class MathDemo { public static void main(String []args){ //定义一个double类型的变量 double a=12.08; //将double类型强制转换 int类型,去掉小数位 int b=(int) a; System.out.println("强制转换为:"+b); //调用round方法,进四舍五入 Long c=Math.round(a); System.out.println("返回四舍五入的整数:"+c); //调用floor方法,小于参数的最大 double d=Math.floor(a); System.out.println("返回小于参数的最大整数:"+d); //调用ceil方法,大于参数的最小 double e=Math.ceil(a); System.out.println("返回大于参数的最小整数:"+e); //调用random方法,随机数[0,1)之间的 随机浮点数 double f=Math.random(); System.out.println("随机数:"+f); //调用random方法,随机[0,99)之间的整数 int g=(int)(Math.random()*99); System.out.println("返回[0,99)之间的随机整数:"+g); } }
5、Random类
下面Random()的两种构造方法:
Random():创建一个新的随机数生成器。
Random(long seed):使用单个 long 种子创建一个新的随机数生成器。
我们可以在构造Random对象的时候指定种子(这里指定种子有何作用,请接着往下看),如:Random r1 = new Random(20);
或者默认当前系统时间的毫秒数作为种子数:Random r1 = new Random();
需要说明的是:你在创建一个Random对象的时候可以给定任意一个合法的种子数,种子数只是随机算法的起源数字,和生成的随机数的区间没有任何关系。如下面的Java代码:
Random rand =new Random(25);
int i;
i=rand.nextInt(100);//得到一个随机数