Java 基础学习笔记补充

https://www.bilibili.com/video/BV1Kb411W75N?p=303

Object类

equals函数,

官方建议重写equal方法。  

Date类:注意计算原点。

Java 的传递机制是值传递,地址也是地址值,所以基本类型无法通过值传递,交换原有,引用却可以。

string 类型因为常量池的存在,所以 == 和 重写的equals 方法一样

toString()注意源码,object的源码,输出的是类名加地址:

单元测试方法:

static在内存中只留存一份。这样,一个类的所有实例,都可以共享同一个变量。静态变量又叫类变量,随类 在方法区初始化一起初始化,且只一次。可以用类.静态变量调用。

注意静态和类是绑定的,和对象无关,所以在类方法中,super,this 等都不可用。且类初始化早于对象初始化,所以用这个逻辑去理解现象。

重载和重写,很重要。

构造器是用来造类对象的,所以不应该理解为对象能调用的方法。

JavaBean:

UML图:

封装和隐藏:private,关键字,是封装的体现,因为可以设置修改变量的条件,变量对外不可见。

this关键字,意指当前对象,而不是当前类。

this调用构造器:

super关键字:子类属性不会覆盖父类属性

子类构造器默认调用super()

从红线部分,可以看出,构造器和类绑定,并不和对象相关,所以用了构造器,未必就创造了对象。

包装类:

基本数据类型和object类没有关系,基本类型没有成员变量和方法。为了让基本数据类型,也具有类的特征,所以有了包装类。

基本数据类型转包装类,注意boolean-》Boolean。

包装类转基础类型,做加减乘除:

jdk5开始实现了自动装箱与拆箱。

基本数据类型,包装类和string的转换:

String 转int 和 Integer等:

面试题;因为三元运算符要保证所有东西类型范围一致,所以把Integer扩成Double了。看来println对Integer是值敏感的。而不是地址。

Integer底层实现了缓存区数组,将常用数放进数组。会让多个对象指向同一个地址,提高效率。这个数组【-128,127】.超出缓存区规定大小,则new一个新对象。

单例模式:系统中,只有一个当前类的对象。

注意成员和方法都是静态的,因此才能单例,直接通过类...调用,下图为饿汉式。

懒汉式创建:

应用场景:

代码块:

静态代码块,不需要new就会执行,只要有申明就执行,非静态代码块,要new对象才执行。多个同类代码块的执行顺序按定义时的先后顺序。但,静态代码块优先于非静态。

初始化时,由父及子,静态先行。

按代码块的位置,比较和显示初始化的顺序

final:不可以通过对象.属性来修改。注意static final 修饰全局常量。

abstract关键字:

abstract不能修饰的东西,仅考虑和是否能重写矛盾。

模版方法设计模式:联系填空题。或者英语论文模版

应用举例,计算某个函数运行时间。使用抽象方法,暴露出去,让子类实现。

接口定义了一组规范,因为必须实现所有抽象方法才能实例化,这个抽象方法可理解为规范,:

接口的应用,代理模式:

 

工厂模式:

接口中的静态方法和默认方法:默认方法的意义是,在这一组行为规范上,增加新的公有的行为规范,如果没有默认方法,所有实现类,都得添加这个相同的行为。

内部类:

实例化成员内部类,注意静态和非静态成员的区别,非静态得先实例化外面的类,再调用里面的初始化构造器。

局部内部类的实际使用。一般用来返回一个类或者接口类型

局部内部类一个注意点:好理解,因为一个类中使用的变量,其修改权限不应该随意交给外部方法,这样会增加错误。所以它调用的外部方法中的变量,必须是个final

异常:

异常处理过程:编译异常用try catch处理。运行时异常不处理。因为处理不了。

、hello---1不会执行,因为这个异常在上一条语句出现,并且被被处理掉了,直接进了catch

 

return 3:

throws 方式:把问题往上抛。一直到main方法,这个锅没人甩了,只能自己try catch 掉

手动抛出异常:注意是throw,而不是throws。 通过throw,手动创建一个异常。手动抛出会报错。

自定义异常类:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值