一.包装类:八大基本类型的包装
指的是将八大基本类型进行了包装,将基本类型转换成了引用类型,同时具备了面向对象的特点
包装之后的类就具有了一些方法可以点出来.
八大基本类型的包装类:
* int-Integer
* byte-Byte
* short-Short
* long-Long
* double-Double
* float-Float
* char-Character
* boolean-Boolean
int类型怎么转换成Integer类型?
* 1.通过构造方法来转换
* Integer i = new Integer(10);
* 2.通过Integer中的静态方法:valueOf()(建议使用)
* Integer.valueOf(int a);
这种方法现在很少用到了,只有一些公司的面试才会考的
现在我们常用的是这种
Integer i = 10;//我们把这种叫做自动装箱
int a = i;//自动拆箱
这种包装类的应用70%都是将字符串转换成整数类型
一.将字符串类型转换成整数类型
1.Integer.valueOf(String str):返回Integer
将str字符串转换成Integer类型
(注意:所转的str字符串必须是一个可以转的数字类字符串)
所以Integer.valueOf()这个方法无论是给它int类型的值还是String类型的值,都会返回Integer类型
2.Integer.parseInt(String str):返回int
二.将整数类型转换成字符串类型
Integer.toString();
为什么建议使用valueOf()来转换:
因为valueOf这个方法就相当于是字符串中的常量池,也维护了一些可重用的数值对象,但是这个数值是有范围的,只要在byte的可取范围之内,所有的数值对象是用的同一个,一旦超出了byte范围,就会生成新的对象
就比如上面这段代码,Integer.valueOf()里面给的值在-128~127这个范围内返回的是true,
超出这个范围就会返回false.
二.java中的日期操作
主要的日期相关的类有三个:
Calendar Date SimpleDateFormat
Date:定义方式是 Date d = new Date();
Calendar定义方式是: Calendar c = Calendar.getInstance;因为它是一个抽象类,不能直接new对象
SimpleDateFormat定义方式是: SimpleDateFormat sdf = new SimpleDateFormat();
总结:
* (Calendar类型).getTime()是C类型转换成D类型
* (Date类型).getTime()是D类型转成毫秒值
* (Date类型).setTime(毫秒值)是将毫秒值转成D类型
* (Calendar类型).setTime(Date类型)是将D类型转成C类型
帮助记忆:
C和D类型之间的转换如果看成是D是最高类型,long类型的毫秒值是最低类型的话,.setTime就是将
低类型往高类型转,当然括号里面要给值,getTime就是高类型往低类型转,括号内不要给值
Date类型转换成String类型:
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(date);
String类型转换成Date类型:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
str="2008-08-08 08:08:08";
try {
Date dat = sdf.parse(str);
System.out.println(dat);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这里的String类型和Date之间的转换需要借助SimpleDateFormat这个中间类型,从类的角度来说是因为只有SimpleDateFormat中才有format()和parse()的方法,从通俗的角度来说是因为计算机需要按照一定的规则来读取字符串和表达出字符串.
我的理解:
所以SimpleDateFormat这个类型目前来看好像就是一个方便人阅读和机器阅读的工具,我把它比喻成手机屏幕,显示我们看得懂的东西给我们看,传达手机看得懂得东西给手机看,见人说人话,见鬼说鬼话.他作为中间人制定规则.
SimpleDateFormat的构造方法是用来设置要转换成为的日期格式
* yyyy表示年份的格式
* MM表示月份
* dd表示的是月中天
* DD表示的是年中天
* HH表示的是24小时制的小时
* hh表示的是12小时制的小时
* mm表示的是分钟
* ss表示的是秒
Calendar用来操作日期的方法有:
get()
int month = c.get(Calendar.MONTH);
set()
c.set(1997, 6, 7);
add()
c.add(Calendar.YEAR, -2);