黑马程序员技术交流社区
标题: 【成都校区】2018/11/10 9:10 就业班day01 [打印本页]
作者: blovedr 时间: 2018-11-15 09:43
标题: 【成都校区】2018/11/10 9:10 就业班day01
本帖最后由 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 可以查询一个类中的所有方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |