java_Object类的toString方法 、Objects类的equals方法 、Date类 、DateForma、Calendar类介绍 、System类的常用方法_学习笔记
2021/5/3 14:55:13
本文主要是介绍java_Object类的toString方法 、Objects类的equals方法 、Date类 、DateForma、Calendar类介绍 、System类的常用方法_学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
2021-04-10复习java
- 一、Object类的toString方法
- 二、Object类的equals方法
- 三、重写Object类的equals方法
- 3.1、Objects类的equals方法
- 四、Date类
- 五、DateFormat类与SimpleDateFormat
- 六、Calendar类介绍
- 七 、System类的常用方法
- 八、StringBuilder类
一、Object类的toString方法
- java.Lang.object
- 类object是类层次结构的根(父)类。
- 每个类(Person , Student… .)都使用object作为超(父)类。所有对象(包括数组)都实现这个类的方法。
public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; }
public static void main(string[]args) { /* Person类默认继承了object类,所以可以使用object类中的tostring方法string tostring()返回该对象的字符串表示。 */ Person p = new Person( name:“张三",age: 18); String s = p.tostring(); system.out.println(s);//com.zhang.0bject.Person@75412c2f Person(nome=张三,age=18) //直接打印对象的名字,其实就是调用对象的toString p=p.toString(); system.out.println(p);//com.zhang.object.Person@5f150435 PersonP(noamen张三,oge=18) }
注意: 看一个类是否重写了toString,直接打印这个类的对象即可,如果没有重写toString方法那么打印的是对象的地址值
二、Object类的equals方法
使用object类的equals方法
boolean equals(object obj)指示其他某个对象是否与此对象“相等”。
equals方法源码: public boolean equals(0bject obj) { return (this == obj); }
参数:
- 0bject obj:可以传递任意的对象
- ==比较运算符,返回的是一个布尔值true false基本数据类型:比较的是值 引用数据类型:比价的是两个对象的地址值
- this是谁?那个对象调用的方法,方法中的this就是那个对象;
三、重写Object类的equals方法
object类的equals方法,默认比较的是两个对象的地址值,没有意义所以我们要重写equals方法,比较两个对象的属性(name , age)
问题:
- 隐含着一个多态
- 多态的弊端:无法使用子类特有的内容(属性和方法)object obj = p2 = new Person("小美”,19);解决:可以使用向下转型(强转)把obj类型转换为Person
@Override public boolean equals(0bject obj) { //增加一个判断,传递的参数obj如果是this本身,直接返回true,提高程序的效率 if(obj==this){ return true; } //增加一个判断,传递的参数obj如果是null,直接返回false,提高程序的效率 if(obj==null){ return false; } //增加一个判断,防止类型转换一次cLasscastException if(obj instanceof Person){//判断参数obj是否是person类型 //使用向下转型,把obj转换为Person类型 erson p = (Person)obj; //比较两个对象的属性,一个对象是this(谁调用谁就是this),一个对象是p(obj) boolean b = this.name.equals(p.name) &&this.age==p.age; return b; } //不是person类型返回false return false; }
3.1、Objects类的equals方法
objects类的equals方法:对两个对象进行比较,防止空指针异常
public static boolean equals(0bject a, 0bject b) { return (a == b) il ( a != null && a.equals(b)); } //演示 boolean b2 = Objects.equals(s1,s2); system.out.print1n(b2);
四、Date类
- java.util.Date:表示日期和时间的类类Date表示特定的瞬间,精确到享秒。毫秒:千分之—秒1000毫秒=1秒
- 毫秒值的作用:可以对时间和日期进行计算
- 2099-01-03到2088-01-61中间一共有多少天
- 可以日期专换为毫秒进行计算,计算完毕,在把毫秒转换为日期
- 把毫秒转换为日期: 1天=24 x 60 x 60 = 86400秒= 86400 x 1000 = 86400008毫秒
public static void main(String[]args) { //获取当前系统时间到1970年1月1日00:00:60经历了多少毫秒 system.out.printIn(System.currentTimeillis()); }
五、DateFormat类与SimpleDateFormat
- java.text.DateFormat:是日期/时间格式化子类的抽象类
- 作用:格式化《也就是日期->文本)、解析《文本->日期)
成员方法:
- string format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串Date parse(String source)把符合模式的字符串,解析为Date日期
- DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat类的子类
java.text.SimpleDateFormat extends DateFormat
构造方法:
- SimpLeDateFormat(string pattern)
用给定的模式和黑f认语言环境的日期格式符号构造simpleDateFormat。
参数:
String pattern :传递指定的模式模式:
区分大小写的
y年、M月、d日、H时、m分、s 秒
秒
写对应的模式,会把模式替换为对应的日期和时间
- “yyyy-MMM-dd HH : mm : SS”"
注意:
模式中的字母不能更改,连接模式的符号可以改变
- "yyyy年月dd日H时mm分ss秒“
时间日期转换成对应的格式:
public static void main(String[ ] args) { demoe1(); /** 使用DateFormat类中的方法format, 把日期格式化为文本使用步骤: 1.创建SimpLeDateFormat对象,构造方法中传递指定的模式 2.调用simpleDateFormat对象中的方法format ,按照构造方法中指定的模式,把pate日期格式化为符合模式的字符串(文本) */ private static void demoe1() { //1.创建SimpleDateFormat对象,构造方法中传递指定的模式 simpleDateFormat sdF = new simpleDateFormat("yyyy年月dd日H时mm分ss秒"); //2.调用SimpLeDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本) //Sstring format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串 Date ri= new Date(; string time= sdf.format(ri); System.out.println("转换之前:"+ri); //转换之前:Fri Apr 09 14:11:14 CST 2021 System.out.println("格式化之后:"+time);//格式化之后:2021年04月09日14时11分14秒 } }
对应的文本格式转换为date日期
public static void main(String[ ] args) throws ParseException { demoe2(); /*使用DateFormot类中的方法parse, 把文本解析为日期使用步骤: 1 .创建SimpleDateFormat对象,构造方法中传递指定的模式 2.调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Dote日期注意 public Date parse(String source) throws ParseExceptionparse方法声明了一个异常叫ParseException 如果字符串和构造方法的模式不一样,那么程序就会抛出此异常 调用一个抛出了异常的方法,就必须的处理这个异常,要么throws 继续抛出这个异常,要么try catch自己处理 */ private static void demoe2()throws ParseException { //1.创建SimpleDoteFormat对象,构造方法中传递指定的模式 SimpleDateFormat sdf m new SimpleDateFormat( patterm:"yyyy年A月dd日H时mm分ss秒"); //2.调用SimpLeDateFormat对象中的方法pars,把符合构造方法中模式的字符串,解析为Date日期 // /Date parse(String source)把符合模式的字符串,解析为Date日期 Date date = sdf.parse( source:"2021年04月09日14时11分14秒"); System.out.print1n(date);//Fri Apr 09 14:11:14 CST 2021 } }
六、Calendar类介绍
- java.util.calendar类:日历类
- calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_NONTH、HOUR )
- caLendar类无法直接创建对象使用,里边有一个静态方法叫getInstance(),该方法返回了caLendar类的子类对象
- static calendar getInstance()使用黑默f认时区和语言环境获得一个日历。
七 、System类的常用方法
java.Lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在5ystem类的API文档中,常用的方法有:
- public static long currentTimeNMillis( ):返回以毫秒为单位的当前时间。
- public static void arraycopy(Object src,int srcPos,Object dest,int
destPos, int length):将数组中指定的数据拷贝到另一个数组中。
验证程序运行时所消耗的毫秒值
public class Test { public static void main(String[] args) { atime(); } /** * 验证for循环1-9999所消耗的毫秒值 */ private static void atime() { //程序执行前获取一次毫秒值 long start = System.currentTimeMillis(); for (int i = 0; i <= 9999; i++) { System.out.println(i); } //程序执行完成获取一次毫秒值 long end = System.currentTimeMillis(); System.out.println("程序总耗时"+(end-start)+"毫秒");//程序总耗时58毫秒 }
八、StringBuilder类
字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串)底层也是一个数组,但是没有被final修饰,可以改变长度
- java.Lang. StringBuiLder类:字符串缓冲区,可以提高字符串的效率
构造方法:
- stringBuilder()构造一个不带任何字符的字符串生成器,其初始容量为16个字符。
- stringBuilder (String str)构造一个字符串生成器,并初始化为指定的字符串内容。
public static void main(String[]args){ //空参数构造方法 stringBuilder bu1 = new stringBuilder(); system.out.println( "bu1 :"+bu1);//bu1 : /带字符串的构造方法 stringBuilder bu2 = new StringBuilder( "abc" ); System.out.println( ""bu2 : "+bu2);//bu2:ABC }
StringBuilder和string可以相互转换:
- string变成StringBuilder:可以使用stringBuilder的构造方法
- StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容。
- StringBuilde变成String:可以使用stringBuilder中的tostring方法
- public string tostring():将当前stringBuilder对象转换为string对象。
public static void main(string[]args) { // String变成StringBuilder string str = "hel1o"; System.out.println( "str: "+str); stringBuilder bu = new StringBuilder( str); //往stringBuilder中添加数据 bu.append( "world" ) ; system.out.println("bu:"+bu) ;/ / StringBuilder->String String s = bu.toString(); system.out.println( "s: " +s ); }
这篇关于java_Object类的toString方法 、Objects类的equals方法 、Date类 、DateForma、Calendar类介绍 、System类的常用方法_学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24内网穿透资料入门教程
- 2024-12-24微服务资料入门指南
- 2024-12-24微信支付系统资料入门教程
- 2024-12-24微信支付资料详解:新手入门指南
- 2024-12-24Hbase资料:新手入门教程
- 2024-12-24Java部署资料
- 2024-12-24Java订单系统资料:新手入门教程
- 2024-12-24Java分布式资料入门教程
- 2024-12-24Java监控系统资料详解与入门教程
- 2024-12-24Java就业项目资料:新手入门必备教程