Day14 常用类!

Object类

  • 超类、基类,所有类的直接或间接父类,位于继承树的最顶端。

  • 任何类,如果没有书写extends继承父类,都默认继承Object类否则间接继承。

  • Object类中所定义的方法,是所有对象都具备的方法。

  • Object类型可以存储任何对象。

1.作为参数,可以接受任何对象。

2.作为返回值,可以返回任何对象。

 

getClass()方法

 

  • 返回引用中存储的实际对象类型。

  • 应用:通常判断两个引用中实际存储对象类型是否一致。

Day14 常用类!

 

 

 

hashCode()方法

  • 返回该对象的哈希码值

  • 哈希值根据对象的地址或字符串或数字使用hash算法计算出来int类型的数值

  • 一般情况下相同对象返回相同哈希码

    Day14 常用类!

     

     

     

     

toString()方法

  • 返回该对象的字符串展示(表现形式)

Day14 常用类!

 

 

 

  • 可以根据程序需求覆盖该方法,如:展示对象各个属性值

 

Day14 常用类!

 

 

 

equals()方法

 

  • 默认实现为(this == obj),比较两个对象地址是否相同。

 

  • 可进行覆盖,比较两个对象的内容是否相同。

equals()方法覆盖步骤:(重写)

  • 比较两个引用是否指向同一个对象。

  • 判断obj是否为null。

  • 判断两个引用的实际对象类型是否一致。

  • 强制类型转化,

  • 依次比较各个属性值是否相同。Day14 常用类!

     

     

 

finalize()方法

  • 当对象被判定为垃圾对象时,由JVM自动调用该方法,用以标记垃圾对象,进入回收队列。

  • 垃圾对象:没有有效引用指向此对象,为垃圾对象。

  • 垃圾回收:由GC销毁垃圾对象,释放数据存储空间。

  • 自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象。

  • 手动回收机制:使用System.gc();通知JVM执行垃圾回收。

包装类

什么是包装类?(将基本类型包装成类,从而实现其基本属性方法)

  • 基本数据类型所对应的引用数据类型。

  • Object可统一所有数据,包装类的默认值是null。

     

基本数据类型 包装类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
   

 

类型转化与装箱、拆箱

装箱(栈-->堆) 拆箱(堆-->栈)

8种包装类提供不同类型间的转化方式:

  • Number父类中提供的6个共性方法。

    拆箱:把引用类型转化为基本类型。

byteValue() 以byte形式返回指定的数据。

doubleValue()以double形式返回指定的数据。

floatValue()以float形式返回指定的数据。

intValue()以int形式返回指定的数据。

longValue()以long形式返回指定的数据。

shortValue()以short形式返回指定的数据。

装箱:把基本类型转为引用类型。

valueOf( )

Day14 常用类!

 

 

  • parseXXX()静态方法 (基本类型和字符串之间的转化)

  • 注意:需保证类型兼容,否则抛出NumberFormatException异常

Day14 常用类!

 

 

 

整数缓冲区 ( 数组[-128,127] )

  • Java预先创建了256个常用的证书包装类型对象。

  • 在实际应用中,对已创建的对象进行复用。

Day14 常用类!

 

 

 

String 类

  • 字符串是常量,创建后不可改变。

  • 字符串字面值存储在字符串池中,可以共享

  • String s = "hello"; 产生一个对象,字符串池中存储。

  • Sting s = new String("hello"); //产生两个对象!! 堆、池中各存储一个。

Day14 常用类!

 

 

 

String常用方法

    1. length(); 返回字符串长度

    1. charAt(int index);返回某个位置的字符

  • 3.contains (String str); 判断是否包含某个子字符串

  • 4.toCharArray(); 返回字符串对应的数组

  • 5.indexOf();返回子字符串首次出现的位置 如果存在则返回脚标,不存在则返回 -1

  • 6.lastIndexOf();返回字符串最后一次出现的位置 不存在则返回-1

  • 7.trim();去掉字符串前后的空格

  • 8.toUpperCase();//把小写转为大写 ToLowerCase(); 把大写转为小写

  • 9.endWith(str); 判断是否以str结尾, startsWith(str); 判断是否以str开头

    1. replace(char old, char new); 用新的字符或字符串替换旧的字符或字符串

    1. split(); 对字符串进行拆分

  • 12.equals、compareTo(); 比较大小

Day14 常用类!

 

 

 

 

案例:

已知 String str = "this is a text";

  • 1.将str中单词单独获取出来

  • 2.将str中的text替换为practice

  • 3.在text前面插入一个easy

  • 4.将每个单词的首字母改为大写

Day14 常用类!

 

 

 

可变字符串

  • StringBuffer: 可变长字符, JDK1.0提供,运行效率慢,线程安全。

  • StringBuilder:可变长字符,JDK1.5提供,运行效率快,线程不安全。

它俩功能完全相同。和String区别: 1.效率更快。 2.更省内存。

  • 1.append(); 追加

  • 2.insert();添加

  • 3.replace(); 替换 可以指定位置

  • 4.delete();删除

Day14 常用类!

 

 

案例:StringBuilder和StringBuffer 效率比 String高

Day14 常用类!

 

 

BigDecimal(银行、大的浮点数精确计算)

  • 位置:java.math包中。

  • 作用:精确计算浮点数。

  • subtract(); 减法

  • add(); 加法

  • multiply(); 乘法

  • divide(); 除法

Day14 常用类!

 

 

注意:

ROUND_DOWN,是一个舍位取值的概念,我保留了两位小数,我不管你后面的小数值如何,也不会四舍五入,就硬生生的给阶段,相当于什么呢,就是我从小数点后面开始取两位,两位后面的都不要了,相当于一个截取字符串的操作。

而ROUND_UP,很宽容,很大方,我不管你第三位的小数是多少,我都给你加一最小单位(比如保留两位小数,最小单位是0.01,保留三位小数,最小单位就是0.001),当然了,你保留到最后一位的数字如果是0的话,那么就不加了。

 

Date类

  • Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法已经被Calendar类中方法取代。

  • 时间单位:

  • 1秒=1000毫秒

  • 1毫秒=1000微妙

  • 微妙=1000纳秒(毫微秒)

方法:

  • after(); 判断时间在之后

  • before(); 判断时间在之前

  • compareTo(); 比较时间毫秒大小 如果大则结果为1 相同为0 小为-1

  • equals(); 比较时间是否相等

Day14 常用类!

 

 

 

Calendar类

  • Calendar 提供了获取或设置各种日历字段的方法。

  • 构造方法:protected Calendar(); 由于修饰符为protected,所以无法直接创建该对象。(用静态方法getInstance创建)

  • getTinmeInMillis(); 从1970年到现在的毫秒值

  • 获取年 YEAR

  • 获取月 MONTH (注意:这里月份时从0-11 0代表1月 11代表12月)

  • 获取日 DAY_OF_MONTH

  • 获取小时 HOUR_OF_DAY HOUR 12小时制 HOUR_OF_DAY 24小时制

  • 获取分钟 MINUTE

  • 获取秒 SECOND

  • 修改时间 set( ,);

  • 添加减少时间add( , ); 添加+ 减少-

  • 最大的一天 getActualMaximum 最小的一天getActualMinimum

Day14 常用类!

 

 

 

SimpleDateFormat

  • SimpleDateFormat是一个以语言环境有关的方式来格式化和解析日期的具体类。

  • 进行格式化(日期-->文本) format();

  • 解析(文本-->日期) parse();解析格式必须对应 如果格式不对应则会出现 Unparseable date异常

  • 常用的时间模式字母

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800

Day14 常用类!

 

 

System类

System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有。

  • 数组的复制: arraycopy( src, srcPos, dest, destPos, length);

//src: 数组的复制 src: 数组源 srcPos:从哪个位置开始复制的 (第一个位置为0)

dest:目标数组 destPos:目标数组的位置 length:复制的数组长度

  • 获取当前的系统时间 currentTimeMillis(); 可用于计时

  • System.gc 告诉垃圾回收回收 (不一定会回收,系统判断)

  • 退出JVM System.exit(0) 0表示正常退出 非0为异常退出

Day14 常用类!

 

 

 

上一篇:暑假集训Day14 I (莫队)


下一篇:python课程总结day14