当前位置 博文首页 > 墨辰柒的博客:Java学习第十一天

    墨辰柒的博客:Java学习第十一天

    作者:[db:作者] 时间:2021-08-02 21:38

    Java学习第十一天知识盲点(常用API)

    第十一天
    2021/7/17week3day4
    1、引用数据类型一般都用equals判断是否相等
    2、把数组加到集合中
    Collections.addAll(arr0,str0);
    3、
    Object类:
    1).所有类的父类(基类),所有的类都默认继承Object也就意味着会默认继承Object类中所有的方法

    2).只有一个无参构造方法,并且没有静态常量所有方法必须通过对象来调用

    3).Object共有11个方法:

    (1).Class<?> getClass()  
    	
    	a.作用: 通过对象的该方法,可以获取对象的字节码对象
    
    	b.类加载的触发条件(使用类)
    		1.实例化对象  new
    		2.调用静态变量/静态方法
    		3.使用子类,加载父类
    		4.Class.forName("全类名") -- jdbc
    		5.对象.getClass
    
    (2).protected  Object clone()  
    	a.克隆的方式:
    		深克隆:	复制对象
    		浅克隆:	复制引用
    	b.调用
    		1.方法必须重写
    		2.必须要实现Cloneable接口,否则会抛出CloneNotSupportedException - 不支持的克隆异常
    	c.注意:
    		1.一般不会重写clone(),因为可以使用引用的赋值进行复制.
    		2.Cloneable接口 - 是一个空接口,目的就是为了标记是可克隆的
    
    (3)protected void finalize() 
    	a.内存溢出和内存泄漏
    		内存溢出: 在内存中没有存储的地方
    		内存泄漏: 内存被无用的对象占用
    			[一个对象分配内存空间后,在使用结束时没有及时释放,导致一直都在占用内存,没有及时清除,使得实际的可使用内存在减少]
    	b.java存在垃圾回收机制 - gc
    		gc: 定时清理内存中的垃圾
    			1.垃圾: 没有引用的对象,被定成垃圾
    			2.可以手动调用 System.gc
    
    		注意: java原则上是不存在内存溢出和泄漏问题
    
    
    (4) String toString() 
    	a.作用: 将对象以字符串的形式输出
    	b.[默认实现]:
    	getClass().getName() + "@" + Integer.toHexString(hashCode())
    		@前: 全类名 -> 包名 + 类名
    		@后: 16进制的地址值
    
    	c.方法的重写
    		目的: 以自定义的方式展示对对象的显示
    
    (5) boolean equals(Object obj)  
    	a.作用:判断两个对象[this 和 obj]是否相等
    	b.Object中的equals默认实现:
    		是判断两个对象的地址值是否相等
    		重写过后,判断两个对象的内容是否相等
    	c.重写的过程:
    		1.判断是不是同一种类型
    		2.判断是不是同一个对象
    		3.既不是同一个对象,也不是同一个类型的情况
    
    (6)int hashCode()  - 获取hash值 -指的是内存地址值
    
    	public native int hashCode(); 
    		native:本地 -> 底层下是c++实现的代码
    
    (7) wait() * 3 / notify()/notifyAll() -- 跟线程相关的
    

    java.lang - 基础包 String StirngBuilder 包装类 线程
    java.io - Input/Output
    java.util - 工具包 Date Collection Map
    java.text - 格式化 DateFormat

    java.sql - 跟数据相关
    java.net - 网络TCP/IP

    跟时间相关的类:
    long可以表示时间:

    1. 获取方式:
    	long time = System.currentTimeMillis();
    	
    2.作用:
    	a.可以用来做短时间(7天以内)内的计算
    	b.代码效率的对比
    3.注意:
    	在进行计算时,需要注意整数类型的默认值是int类型
    	如果超出了int的范围,会变成一个负数
    	所以需要在计算之前先标记为long类型 l/L标记
    

    Date类:

    1.作用:用来做时间的显示
    
    
    2.创建
    	a. new Date() -> 获取当前系统时间
    	b. new Date(long) -> 获得任意时间段的时间
    
    3.常用API
    	setTime() - 设置时间
    	getTime() - 获得时间
    
    	boolean after(Date when) 
          测试此日期是否在指定日期之后。 
    	boolean before(Date when) 
          测试此日期是否在指定日期之前。 
    
    4.和long之间的转换
    	long -> Date
            a. new Date(long)
            b. date.setTime(long)
    	Date -> long
        	date.getTime()
    

    Calendar类:

      	1.作用:专用用来做时间的推算或者时间的跳转
      	2.特点:
      		a.Calendar是abstract修饰的类,所以不能new对象
      	3.创建方式
      		a.通过Calendar的实现类来调用
      		b.通过静态方法调用
      			Calendar.getInstance()
    

    *4.常用API:

      Calendar 和 Date的转换
    	Date getTime()  -> Calendar 转换成 Date
    	void setTime(Date) -> Date 转换成 Calendar
      calendar 和 long的转换
      	getTimeInMillis() 
      	setTimeInMillis() 
    	get() - 获取
    	set(字段,int value) - 设置,时间的跳转
    	add(字段,int amount) - 时间的推算*
    

    java.text

    SimpleDateFormat类:
      1.创建
      	new SimpleDateFormat("yyyy-MM-dd")
      2.常用API:
      	Date parse(String text) ->字符串和Date之间的转换
     	format(Date date) -> Date按照指定格式输出
    
    cs
    下一篇:没有了