java object to date_Java_Object_Date_System等常用类

01.第一章:Object类_概述

1).什么是"Java类库":指Java语言的官方为我们程序员提供的一些已经写好的,面向某些应用的“类”,这些类会随着JDK一起

发布,我们就业班初始阶段主要学习的就是类库中的这些常用的类。

2).java.lang.Object(类):它是Java中所有类的“父类”。java中任何的类(包括:类库中的类,我们定义的类,数组)

都是它的子类。

3).继承的方法:

1).public String toString​():将本对象转换为一个字符串表示。

2).public boolean equals​(Object obj):将本对象与参数对象进行“比较”--比较两个对象内部的所有属性值是

否完全相同。

02.第一章:Object类_toString方法

1).public String toString​():将本对象转换为一个字符串表示。

默认实现:

classObject{publicString toString(){return 运行时类的“全名限定的类名”+ @ +地址;

}

}

2).当我们调用System.out.println(对象)时,println()方法内部会隐式的调用“对象”的toString()方法,

来打印我们对象中的属性值,这就需要我们重新toString()方法。

3).怎样重新:alt + insert --> toString -> (默认选择了所有属性) --> 回车

public classStudent {

String name;intage;public Student(String name, intage) {this.name =name;this.age =age;

}

@OverridepublicString toString() {return "Student{" +

"name='" + name + '\'' +

", age=" + age +

'}';

}

03.第一章:Object类_equals方法

1).public boolean equals​(Object obj):将本对象与参数对象进行“比较”--比较两个对象内部的所有属性值是

否完全相同。

2).回顾==运算符,此运算符可以判断两个“值”是否相等,也可以用来判断两个“对象”

Stueent stu1 = new Student();

Student stu2 = new Student();

System.out.println(stu1 == stu2);//OK的--》比较的是“地址”是否相同

3).我们通常需要来判断两个“对象”中的所有的属性值是否完全相同,可以使用equals(另一个对象):

4).怎样重写?alt + insert --> e(equals + hashCode) -> 一路next -->OK

public classStudent {

String name;intage;public Student(String name, intage) {this.name =name;this.age =age;

}

@OverridepublicString toString() {return "Student{" +

"name='" + name + '\'' +

", age=" + age +

'}';

}//重写equals

@Overridepublic booleanequals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;

Student student=(Student) o;return age == student.age &&Objects.equals(name, student.name);

}

}

04.第一章:Object类_Objects类

1).java.util.Objects(类):它里面包含了一些对“对象”操作的一些“静态方法”,可以通过类名直接调用。

2).public static boolean equals​(Object a,Object b):此方法的功能等同于Object的equals(),可以比较两个对象的

属性是否完全相同。但此方法可以避免空指针异常。

3).示例代码:

public classDemo {public static voidmain(String[] args) {

Student stu1= new Student("章子怡",17);

Student stu2= new Student("章子怡",17);//....

stu1 = null;

System.out.println(stu1.equals(stu2));//运行时抛出:NullPointerException(空指针异常)

System.out.println(Objects.equals(stu1, stu2));//可以避免空指针异常

}

}

--------------------------------------------------------------------------------

05.第二章:日期和时间类_Date类

1).java.util.Date(类):它可以表示一个“系统时间”精确到:毫秒。从JDK1.0开始。

2).构造方法:

1).Date():使用当前系统时间构造一个Date对象。

2).Date(long m):使用一个“毫秒值”构造一个Date,这个毫秒值是从1970年1月1日零时开始的一个毫秒值。

3).成员方法:

1).public long getTime():获取当前Date对象的从1970年1月1日零时到此Date对象表示的时间之间的毫秒值。

2).public void setTime(long m):设置当前Data对象的毫秒值。将改变此Date所表示的日期。

4).示例代码:

public static voidmain(String[] args) {

Date date= newDate();

System.out.println(date.toString());

System.out.println("到现在的毫秒值:" +date.getTime());

Date date2= new Date(1000);

System.out.println(date2);

date2.setTime(date.getTime());//将date2的毫秒值设置为当前时间的毫秒值

System.out.println(date2);

}

06.第二章:日期和时间类_DateFormat类_将Date转换为String

1).java.text.DateFormat(抽象类):它可以对“日期”进行格式化。它是一个抽象类,不能创建对象。我们要使用它的子类:

SimpleDateFormat。

2).SimpleDateFormat类的使用:

1).构造方法:

SimpleDateFormat​(String pattern):使用一个“日期的模式字符串”来构造一个对象。

"日期的模式字符串"见帮助文档。

3).将Date转换为String:

1).SimpleDateFormat-->public String format(Date date)

4).示例代码:

public classDemo {public static voidmain(String[] args) {

SimpleDateFormat sdf= new SimpleDateFormat("yy年MM月dd日 HH时mm分ss秒");//1.创建一个Date对象

Date date = newDate();//System.out.println(date);//我们需要显示:2019-04-09 09:58:55

String str =sdf.format(date);

System.out.println(str);

}

}

07.第二章:日期和时间类_DateFormat类_将String转换为Date

1).成员方法:

public Date parse(String str):可以将一个字符串转换为一个Date对象。

2).示例代码:

public static void main(String[] args) throwsParseException {

String strDate= "1998-04-09";//转换为Date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date=sdf.parse(strDate);

System.out.println(date);

}

08.第二章:日期和时间类_练习1_转换字符串的日期格式

1).将一个字符串“2019-04-09”转换为“2019年04月09日”形式。

2).思路:“2018-04-09”--》转换为Date--》转换为“yyyy年MM月dd日”

3).代码实现:

public classDemo {public static void main(String[] args) throwsParseException {

String str1= "2019-04-09";//将str1转换为Date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date=sdf.parse(str1);//将Date转换为"yyyy年MM月dd日"的字符串

SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");

String str2=sdf2.format(date);

System.out.println(str2);//2019年04月09日

}

}

09.第二章:日期和时间类_练习2_计算来到世界多少天

1).示例代码:

public classDemo {public static void main(String[] args) throwsParseException {

Scanner sc= newScanner(System.in);

System.out.println("请输入你的生日(yyyy-MM-dd的格式):");

String birthDay= sc.next();//"1998-04-09"//1.将字符串转换为Date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//转换

Date date =sdf.parse(birthDay);//提取毫秒

long m1 =date.getTime();//2.获取当前系统时间的毫秒值

long m2 = newDate().getTime();

System.out.println("你从出生到现在一共经历了:" + ((m2 - m1) / 1000 / 3600 / 24) + " 天");

}

}

==========================================================

10.第二章:日期和时间类_Calendar(日历)类

1).java.util.Calendar(抽象类):它可以用来做“日期运算”。它是一个抽象类,我们可以使用它的子类:GregorianCalendar。

2).GregorianCalendar的使用:

1).构造方法:

1).GregorianCalendar​():使用当前系统时间构造。

2).GregorianCalendar​(int year,int month,int dayOfMonth) :使用年、月、日构造。

3).GregorianCalendar​(int year,int month,int dayOfMonth,int hourOfDay, int minute) 使用年、月、日、小时、分钟构造。

4).GregorianCalendar​(int year,int month,int dayOfMonth,int hourOfDay, int minute, int second) 使用年、月、日、小时、分钟、秒构造。

3).成员方法:

1).public int get(int field):获取某个字段的值。

示例代码:

public classDemo {public static voidmain(String[] args) {

GregorianCalendar c1= newGregorianCalendar();

System.out.println(c1.toString());int year =c1.get(Calendar.YEAR);int month =c1.get(Calendar.MONTH);int day =c1.get(Calendar.DAY_OF_MONTH);int hour =c1.get(Calendar.HOUR);int minute =c1.get(Calendar.MINUTE);int second =c1.get(Calendar.SECOND);int week = c1.get(Calendar.DAY_OF_WEEK);//返回值:1--7(对应的:星期日,星期一,星期二,...,星期六

System.out.println(year+ " 年 " + (month + 1) + " 月 " + day + " 日 "

+ hour + ":" + minute + ":" +second );

System.out.println(getWeek(week));

}//查表

public static String getWeek(int w) {//1--7//定义一个"表(数组)"

String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};//查表

return weekArray[w - 1];

}

}

2).public void set(int field,int value):将某个字段设置为:value值。

1).示例代码:

public classDemo {public static voidmain(String[] args) {

GregorianCalendar c1= newGregorianCalendar();//1.班长出生那天是星期几

c1.set(Calendar.YEAR,1998);

c1.set(Calendar.MONTH,5 - 1);

c1.set(Calendar.DAY_OF_MONTH,28);//获取那天的星期几

week =c1.get(Calendar.DAY_OF_WEEK);

String wStr=getWeek(week);

System.out.println("班长出生那天是:" +wStr);

}//查表

public static String getWeek(int w) {//1--7//定义一个"表(数组)"

String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};//查表

return weekArray[w - 1];

}

}

3).public void add(int field,int value):将某个字段值增加:value。

1).示例代码:

public classDemo {public static voidmain(String[] args) {//2.300天后是哪年,哪月,哪日,星期几

GregorianCalendar gc = newGregorianCalendar();//将天,增加300

gc.add(Calendar.DAY_OF_MONTH, 300);

System.out.println(gc);

}//查表

public static String getWeek(int w) {//1--7//定义一个"表(数组)"

String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};//查表

return weekArray[w - 1];

}

}

--------------------------------------------------------------------------------

11.第三章:System类_作用及常用方法

1).java.lang.System(类):它内部包含一些可以获取系统信息的静态方法。

2).常用方法:

1).public static void arraycopy​(Object src, //要复制的“原数组”

int srcPos, //原数组中的位置

Object dest, //要复制的“新数组”

int destPos, //新数组的起始位置

int length) //复制多少个元素

2).示例代码:

public classDemo {public static voidmain(String[] args) {int[] arr = {1,2,3,4};int[] arr1 = new int[arr.length];//开始复制

System.arraycopy(arr, 0, arr1, 0, arr.length);//验证

System.out.println(Arrays.toString(arr1));//练习:只操作一个数组

int[] intArray = {10, 0, 20, 30, 40, 50, 60};//需求:将2,3,4,5,6挪到1的后面,将0挪到最后

System.arraycopy(intArray, 2, intArray, 1, 5);//处理最后一个60

intArray[intArray.length - 1] = 0;//验证

System.out.println(Arrays.toString(intArray));

}

}

2).public static long currentTimeMillis​():获取当前系统时间的毫秒值。

1).示例代码:

public classDemo {public static voidmain(String[] args) {

ArrayList strList = new ArrayList<>();long start = System.currentTimeMillis();//获取系统时间的毫秒

for (int i = 0; i < 5000000; i++) {

strList.add(i);

}long end = System.currentTimeMillis();//再次获取系统时间的毫秒

System.out.println("共执行:" + (end - start) + " 毫秒");

}

}

3).public static void exit(int status):结束JVM(也同时结束我们的程序)

--------------------------------------------------------------------------------

12.第四章:StringBuilder类_回顾String类的不可变性

1).字符串的拼接:

String s1 = "Hello";

s1 = s1 + "World";//一共产生:3个对象空间-->效率比较低,不建议

System.out.println(s1);//HelloWorld

2).以后,要做字符串连接,就用:StringBuilder类。

13.第四章:StringBuilder类_概述及常用方法

1).java.lang.StringBuilder(类):

2).示例代码:

public static voidmain(String[] args) {

StringBuilder bld= newStringBuilder();

bld.append("Hello").append("World")

.append(3.1415).append(2);

}

3).图示:

57da665b297db8495c3205e11a159b10.png

14.第四章:String类和StringBuilder类的区别小结

1).String类:表示的是一个“字符串”。它内部是不可变的;

String str = "呵呵";

2)StringBuilder类:是一个“字符串”的“工具类”,它是不能代替String的。它内部是“可变”的。

StringBuilder bld = new StringBuilder();

bld.append("Hello").append("World");//始终操作的是同一个StringBuilder对象

--------------------------------------------------------------------------------

15.第五章:包装类_概念

1).Java的基本数据类型:四类八种,都对应有“类”类型--包装类:

基本类型包装类

byteByte

shortShort

intInteger

longLong

floatFloat

doubleDouble

charCharacter

booleanBoolean

2).包装类的作用:

1).每个包装类对象,都可以封装一个本类型的一个数据;

2).每个包装类对象,都包含了一些对此种类型数据进行操作的一些方法:

例如:将一个String转换为某种基本类型。

16.第五章:包装类_常见应用

包装类的作用:将某种基本类型和String类型相互转换,就需要用到:包装类。

1).将String转换为某种基本类型:

public static voidmain(String[] args) {

String age= "24";//注意:必须保证每个字符都是一个"数字字符",否则抛异常。

String height = "1.75";//要转换为int,就找int的包装类:Integer

int intAge =Integer.parseInt(age);

System.out.println(intAge+ 5);//要转换为double,就找double的包装类:Double

double doubleHeight =Double.parseDouble(height);

System.out.println("身高:" + (doubleHeight + 0.1));//任何包装类(除Character)都有parseXxxx(String s) :可以将字符串转换为本类型的基本类型的数据

}

2).将某种基本类型转换为String:

int a = 10;//第一种方式:

String s = a + "";//第二种方式:比较高雅一点的

String s1 =Integer.toString(a);//除Character类外,其它的包装类都有:String toString(此类型数据):可以将本类型的值转换为String。

1).JDK5以前,包装类对象需要new对象:

Integer intObj = Integer.valueOf(10);

//取出基本类型的10

int n = intObj.intValue();

2).JDK5以后:

Integer intObj = 10;//自动装箱-->编译后:Integer intObj = Integer.valueOf(10);

//取出:

intObj++;

int n = intObj;//自动拆箱-->编译后:int n = intObj.intValue();

System.out.println(n);

3).自动装箱:将基本类型直接赋值给包装类型。

自动拆箱:将包装类型直接赋值给基本类型。

好处:可以将“包装类”和“基本类型”同样看待,使用同样方式操作,编码方便。

ArrayList list = new ArrayList<>();

list.add(10);//编译后:list.add(Integer.valueOf(10));

-------------------------------------------------------------------------------------

================================================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值