1.包装类:(Wrapper Class):
package WraperClass;
/**
* 测试包装类 测试八种基本类型的其中一个 其他的就改一下方法的名字就ok
* @author Wang
*
*/
public class testWrapper {
public static void main(String[] args) {
Integer i = new Integer(1000);//这个包装类的作用是把int型的数包装成一个类
System.out.println(Integer.MAX_VALUE);//输出Integer的最大值
System.out.println(Integer.toHexString(i));//把i转变为16进制
Integer i2 = Integer.parseInt("234");//把字符串“234”转化为int类型
Integer i3 = new Integer("222");//也可以这样转换
System.out.println(i3.intValue());
System.out.println(i2);
String str = 123 + " ";//把整形转化为String类型的
}
}
2.自动装箱与拆箱:
package WraperClass;
/**
* 测试拆箱与装箱
* @author Wang
*
*/
public class test00 {
public static void main(String[] args) {
Integer a= new Integer(1000);//这是正常的赋值方法;
Integer a1 = 1000; //JDK5.0之后 他会自动装箱,编译器会帮助我们把代码改进为Integer a1= new Integer(1000);
Integer b = 200;
int c = b;//自动装箱,编译器的改进:b.intValue();
System.out.println(c);
Integer d = 1234;
Integer d2 = 1234;//包装成对象了 地址不一样 但是内容是一样的;
System.out.println(d==d2);
System.out.println(d.equals(d2));
System.out.println("###################");
Integer d3 = -100; //[-128,127]之间的数,仍然当做基本数据类型来处理。
Integer d4 = -100;
System.out.println(d3==d4);
System.out.println(d3.equals(d4));
}
}
3.测试Date类:
package TestDate;
import java.util.Date;
/**
* 测试Date类的用法
* @author Wang
*
*/
public class TestDate01 {
public static void main(String[] args) {
Date d = new Date();//这个会把现在的时间给d
long t = System.currentTimeMillis();//这个是把当前时间转变为长整形给T
System.out.println(t);
Date d2 = new Date(100);//将时间设置为100给d2
System.out.println(d2.toGMTString()); //带横线的意思是不建议使用 GTM是指国际标准时间;
d2.setTime(24324324);//将d2重新设置一下
System.out.println(d2.getTime());//得到这个时间;
System.out.println(d.getTime()<d2.getTime());//比较他们
}
}
4.Date和String的转换;
package TestDate;
import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/**
* 测试时间和字符串的转化问题
* DateFormat and SimpleDateFormat
* @author HP
*
*/
public class TestDate02 {
public static void main(String[] args) throws ParseException {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm;ss");//因为DateFormat是抽象类 所以他没法建立对象所以用它的子类建立个对象 括号里是格式化
SimpleDateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");//也可以这样建立
Date D = new Date(132112311321321L);
String str = df.format(D);//将字符串D转变为d格式的日期类型;
String str1 = df2.format(D);//转化为d2格式的日期;
System.out.println(str);
System.out.println(str1);
System.out.println("**********************");//字符串转日期
String str3 = "1997-9-29 23:11:11";//str3和df3需要保持同样的格式
DateFormat df3 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date D1 = df3.parse(str3);//这里需要抛出一个异常 你可以看源码
System.out.println(D1);
}
}
5.Calendar类 :注意这个星期是按照周日是第一天是1不是0,一月是0以此类推;
package TestCalendar;
import java.util.Date;
import java.util.Calendar;//他是一个abstract类
import java.util.GregorianCalendar;//这是他的一个子类 公历
/**
* 测试日历类
* @author Wang
*
*/
public class TestCalender {
public static void main(String[] args) {
Calendar c = new GregorianCalendar();
Calendar d = new GregorianCalendar();
c.set(2001, Calendar.FEBRUARY, 10, 12, 23, 34);
d.set(Calendar.YEAR, 2001); //单个是指第一个参数选择设置什么
d.set(Calendar.MONTH, 1); //二月
d.set(Calendar.DATE, 10);
Date e = c.getTime();//将c存放在e中
System.out.println(e);
System.out.println(d.get(Calendar.YEAR));//输出d的year
System.out.println("**********************");
c.add(Calendar.MONTH, -30);//测试日历类的计算 第一个参数是选择年月日;
System.out.println(c);
}
}
6.写一个可视化日历:
package TestCalendar;
import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
/**
* 写一个可视化日历
* @author Wang
*
*/
public class VisualCalendar {
public static void main(String[] args) throws ParseException {
int j=0;
System.out.println("请输入你要查找的日期(格式为:2018-5-21)");
Scanner scanner = new Scanner(System.in);//创建一个输入对象
String temp = scanner.nextLine();//用temp这个字符来接收你输入的那一行
System.out.println("日\t一\t二\t三\t四\t五\t六");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = new GregorianCalendar();
Date D = df.parse(temp);//将你输入的那个字符串装变为日期类型的 字符串转化为日期类型需要抛异常;
c.setTime(D);//将日历类设置成字符串转化过来的时间
int day = c.get(Calendar.DATE);//得到你输入的那一天是这个月的第几天 做一个特殊标记
c.set(Calendar.DATE, 1);//将转化过来的时间设置成本月的一号 接下来判断这月的一号是周几;
int w = c.get(Calendar.DAY_OF_WEEK);//判断是周几 周五的话这个数是六 前面打印五个\t
int maxDay = c.getActualMaximum(Calendar.DATE);//判断这一月的最大天数是几就打印到这一天
for(int i=0;i<w-1;i++) {
System.out.print("\t");
}
for(int i=1;i<=maxDay;i++) {
if(i==day) {
System.out.print("*");
}
System.out.print(i+"\t");
j++;
if(c.get(Calendar.DAY_OF_WEEK) == 7) {//判断他是不是周六如果是周六 那么就换行
System.out.println();
}
c.add(Calendar.DATE, 1);
}
}
}
效果如下图:
