java学习之Object类、Date类、DateFormat类、Math类、Calendar类及System类中常用方法

一. Object类【重点】

	a. 概述
		i. Object类是所有类的父类,所有对象都具有该类中的11个方法
		ii. 如果一个类我们没有指定其父类,那么默认继承Object
	b. toString方法
		i. public String toString() :返回该对象的字符串表示。
			如:Dog d = new Dog();
			String s = d.toString();
			System.out.println(s);
			或者Dog d = new Dog();
				System.out.println(d);
				因为我们打印变量名d,编译器会自动调用d.toString()
		ii. 默认形式:
			包名.类名@地址值
		iii. 实际开发中要重写该方法,将本类返回的地址值改成返回该对象中的内容
	c. equals方法
		i. public boolean equals(Object obj) :指示(判断)其他某个对象是否与此对象“相等”。
		ii. 默认比较的是地址值。重写,将比较地址值改为比较内容。
	d. native本地方法
		有native修饰的方法我们称为本地方法,不是用Java写的,使用底层c/c++写的
		比如:
			public native int hashCode();
	e. equals和==的区别
		对于基本类型:
			==比较基本类型的数值
			equals 没有该方法
		对于引用类型:
			==比较引用类型的地址值
			equals默认比较地址值,如果子类重写了,按照重写比较规则比较
	f. Objects类
		i. Objects类,我们称之为工具类(其内部所有的方法都是静态的)
		ii. 判断两个对象是否相等,避免空指针异常

二. Date类【重点】

	a. 概述
		作用:代表某一个时间点,可以精确到毫秒
	b. 构造方法
		i. public Date();创建一个Date对象,代表当前的系统时间
		如:Date d = new Date();// Fri Mar 06 20:21:48 CST 2020
		ii. public Date(long millis);创建一个Date对象,代表距离国际基准时间millis毫秒后的是个时间。
		如:Date dd = new Date(0L);
		国际基准时间:
			英国1970年1月1日00:00:00
			中国1970年1月1日08:00:00
	c. 常用方法
		i. public long getTime() 把日期对象转换成对应的时间毫秒值。
		ii. public void setTime(long time) 修改当前Date对象距离标准时间的毫秒值

三. DateFormat类

	a. 概述
		i. 作用:让时间和具体的文本之间来回转换
		ii. 格式化:Date对象转成时间字符串
		解析:时间字符串转成Date对象
	b. 构造方法
		i. 使用的其子类(SimpleDateFormat)
			public  SimpleDateFormat(String pattern);
		ii. 想要这种格式:
					"xxxx年xx月xx日 xx:xx:xx"
		    对应的pattern这么写呢?
		            "yyyy年MM月dd日 HH:mm:ss"    
		    我们只需要记住:
				y -- 年
		          M -- 月
		          d -- 日
		          H -- 时
		          m -- 分
		          s -- 秒 
		
	c. 常用方法
		i. public String format(Date date); 格式化方法
			public Date parse(String time); 解析方法
		ii. public class TestDemo {
		    public static void main(String[] args) throws ParseException {
		        //1.创建一个SimpleDateFormat对象
		        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		        //2.格式化 format
		        Date now = new Date();
		        String nowStr = sdf.format(now);
		        System.out.println(nowStr);
		        //3.解析 parse
		        System.out.println("============");
		        Date date = sdf.parse("2030年04月07日 12:26:20"); //异常,使用快捷键 alt+回车,再回车
		        System.out.println(date);
		    }
		} 

四. Calendar类

	a. 概述
		作用:也是表示某个时间点
	b. 常用方法【扩】
		使用Calendar的静态方法getInstance();
		Calendar c = Calendar.getInstance(); //就会创建一个子类对象,返回
	c. get方法示例
		public int get(int field)
		如:int year = instance.get(Calendar.YEAR);
	d. set方法示例
		public void set(int field,int value)
		如:c1.set(Calendar.YEAR, 1998);
	e. add方法示例
		public void add(int field,int amount)
		如:c2.add(Calendar.DAY_OF_MONTH, 200);
五. Math类
	a. 概述
		Math中主要包含了一些数学运算相关的方法
		Math类中这些方法都是静态的(通过类名就可以直接调用,Math当做一个工具类)
	b. 常用方法
		public double abs(double d); //求绝对值,如果是正数,那么不变,如果负数那么把负号去掉
		public double ceil(double d);//向上取整 
		public double floor(double d);//向下取整
		public long round(double d);// 四舍五入到整数
		public double pow(double d1,double d2);//求次幂(次方)
		如://3*3*3*3
		double pow = Math.pow(3, 4);

六. System

	a. 概述
		System类中包含几个静态的变量和静态的方法,并且该类是不能创建对象的
		经过我们对System类源码的研究,发现System类的构造被私有化了
		    public final class System {
		        /** Don't let anyone instantiate this class */
		        private System() {
		        }
		    }
	b. 常用方法
		public static void exit(int status); 退出JVM虚拟机,按照惯例,参数写0即可!!
		    
		public class TestSystem {
		    public static void main(String[] args) {
		        //1.试图创建一个System对象
		//        System s = new System(); //报错! 因为System的构造私有化了
		        //2.exit
		        for (int i = 0; i < 10; i++) {
		            System.out.println("我爱Java"+i);
		            //退出JVM,整个Java程序都会结束
		            System.exit(0);
		//            break; //结束当前的循环,如果循环后面还有代码可以继续执行
		        }
		
		        System.out.println(".....");
		    }
		}
		
		public static long currentTimeMillis(); 获取当前系统之间的毫秒值(距离基准时间的毫秒值)
		    
		public class TestSystem02 {
		    public static void main(String[] args) {
		        //1.获取当前系统时间的毫秒值
		        //long millis = System.currentTimeMillis();
		        //System.out.println(millis);
		        //2. String StringBuilder  用于字符串拼接的性能测试
		
		        long start = System.currentTimeMillis();
		
		        StringBuilder sb = new StringBuilder();
		        for (int i = 0; i < 50000; i++) {
		            sb.append(i);
		        }
		
		        long end = System.currentTimeMillis();
		        System.out.println("耗时"+(end-start)+"毫秒");
		        //算法: 空间复杂度(占用的内存) 时间复杂度(运行花费的时间)
		    }
		}  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值