本帖最后由 blovedr 于 2018-11-15 10:22 编辑
2018/11/10 9:10 就业班day01
Object类 java.lang.Object 概述: 1. Object所有类直接或间接的父类 2. 一个类如果没有显示声明继承谁, 默认继承自Object(任何类都拥有Object类中的方法)
方法: 1 String toString() 将一个对象用一个字符串来描述
hastCode(): 将对象的内存地址转换为十六进制的整数
说明: Object的toString方法不能很好描述我们子类对象, 所以可以重写父类的方法。
重写的方式: 1. 手动重写 2. EDEA 自动重写 Alt+insert 选择toStirng 方法
注意: 如果直接输出对象, 默认就会调用对象的toStirng 方法, 输出其返回值。
2 Equals方法 Boolean equals(Object obj) 比较两个对象是否相等 源码;return(this == obj); 解释:this 就是调用方法的对象, obj 就是传递尽量的对象 Object 的实现直接就是用 == 号比较两个对象的地址值。
If (obj intanceof Person) // 如果obj传递进来的对象属于Person类型, 是就返回true, 否则返回false.
This.getClass()!= obj.get Class() // 如果this对象所在的类, 和obj所在的类, 不是同一个, 则不需要比较// 属性, 直接false。
// 如果是同一个对象,则不需要比较属性,直接返回true
日期时间类【参考pdf及视频】 Java.util.Date: 表示日期时间类
毫秒:千分之一秒 1000毫秒 = 1秒 特定的瞬间:一个时间点, 一刹那时间 2088-08-0909:55:33:333 瞬间
日期转换为毫秒进行计算, 计算完毕, 再把毫秒转换为日期
把日期装换为毫秒 当前日期: 2088-01-01 时间原点(0毫秒): 1970年1月1日 00:00:00
System.currentTimeMillis() : 获取当前系统时间到1970年1月1日 00:00:00经历了多少毫秒
注意:中国东八区 + 8小时
把毫秒转换为日期: 1 天 = 24 * 60 * 60 = 86400 秒 * 1000 = 86400000 毫秒
通过构造方法创建成员变量,之后通过成员变量来调用API中的成员方法。
构造方法: Date 类的空参构造方法 Date() 获取当前系统的日期和时间。 CST: 代表北京时间或上海时间。
Date 类的带参数构造方法 Date(Long date): 传递毫秒值, 把毫秒值转换为Date日期 指定毫秒值的相对时间。
成员方法: Long getTime() 把日期转换为毫秒(相当于System.currentTimeMillis()方法) 获取Date对象所表示时间的毫秒值
Void setTime(long time): 设置Date对象所表示时间的毫秒值
Ctrl + N 获取一个类(Date)的底层代码。
DateFormat 日期格式化类 格式化日期: Date -à String 将日期对象, 转换为一个指定格栅灯 字符串
String format(Date date)
解析日期: String -àDate 将一个指定日期格式的字符串, 还原为一个Date对象。 Dateparse(String source)
// 2018年11月10日 23:59:59 // yyyy年MM月dd日 HH:mm:ss
// 计算自己活了多少天: 键盘录入一个生日(yyyy-MM-dd) /* 1. 键盘录入一个指定格式的日期字符串 2. 先计算现在到时间原点的毫秒值差 3. 再计算生日到时间原点的毫秒值差 4. 用现在的 - 生日的 = 活了多少毫秒 5. 将毫秒换算为天 */
Calendar类 --- 抽象类 Java.util.Colendar类:日历类 , 提供了操作字段(年月日…)的方法 Calendar类是一个抽象类,无法直接创建对象,静态方法getInstance(),该方法返回了Calendar的子类对象。 Static Calendar getInstance() 使用默认时区和语言获得一个日历。
创建对象 Calendar c = Calendar.getInstance(); 默认获取当前系统时间
成员方法: Int get(intfield) 返回给定日历字段值 Void set(intfield, int value) 将给定的日历字段设置为给定值 Void add(intfield, int amount) 为给定的日历字段添加或减去指定的时间量 // 8加八年 -8 减去八年 Date getTime() 返回日历对应时间的日期对象。
Calendar.YEAR Int month = c.get(Calendar.MONTH); // 注意月份从0开始 Calendar.DAY_OF_MONTH // 也可以用DATA
注: 1. 月份默认从0开始的, 如果想拿到正常的月份至, 要+1 2. 星期默认从星期天开始算第一天, 所以想拿到正常星期, 需要 -1
System类: 是一个和系统有关的类 ctrl+alt+M 提取选中内容为一个方法 currentTimeMillis() 返回当前系统时间的毫秒值 static void arraycopy(Object src, int srcPos, Object dest, int dest Pos,int length) 参数: Src: 被复制的数组 SrcPos: 从哪个索引开始复制 Dest: 目的地数组 destPos: 目标数组的起始位置 length: 长度(复制元素的)
第四章 StringBuilder
String类 字符串是常量; 它们的值在创建之后不能更改。 字符串底层是一个被final修饰的数组, 不能改变, 是一个常量。 Privatefinal byte[] value;
StringBuilder类 字符串缓冲区类, 可以提高字符串的操作效率(看成以长度可变字符串) 底层也是一个数组, 但没有被final修饰, 可改变长度 Byte[]value = new byte[16];
StringBuilder在内存中始终是一个数组,占用空间少, 效率高 如果超出StringBuilder范围, 会自动扩容。
“a”+”b”+”c” 直接用字符串拼接, 产生中间不需要的字符串对象, 影响程序效率。 StringBuilder,则可以减少中间字符串的产生。
但是, java高版本JDK中, 已对字符串常量进行了优化,如果都是字符串常量参与运算, 则会直接整合为一个整的字符串常量, 不会产生中间字符串。
总结: StringBuilder可以字符串运算变得高效。
3.3StringBuilder构造方法 StringBuilder() StringBuilder(String str)
StringBuilder成员方法 Public StringBuilder append(…): 添加任意类型数据的字符串形式, 并返回当前对象自身。 Append()方法返回的是this,调用方法的对象。 // 使用append方法无需接收返回值
// 链式编程: 方法返回值是一个对象, 可以继续调用方法。
(*)使用: append往缓冲区中添加数据。
PublicStringBuilder toString()
包装类【参考pdf】 字符串 int的相互转换: 如何将字符串转换为int: int num =Integer.parseInt(str); 如何将int转为字符串: String str = 123 + “”;
需求: “123456” 【掌握】 Integer: static intparseInt(String str)
JDK1.5 包装类的新特性: 自动拆箱: 包装类型可以自动装换为对应的基本类型。 自动装箱:基本类型可以自动装换为对应的包装类型。
Ctrl+F12 可以查询一个类中的所有方法
|