Java基础回顾

Java基础入门

Java数据类型

在这里插入图片描述
需要注意的是char大小为2字节

类型转化

基本数据类型表示范围排序

小范围可直接赋值给大范围,类型会自动转换
要注意char可以直接转int 例如’a’会转为对应的ASCII码

运算符

Java运算符的优先级
在这里插入图片描述
口诀可以帮助记忆:
单算移关与,异或逻条赋

变量

局部变量(Local Variables):
方法,构造方法或任何块中定义的变量,一旦执行完毕,局部变量就会被销毁。
作用域: 局部变量的作用域只限于定义它们的块内。
声明: 局部变量必须在使用前声明,并且不会被赋予默认值,所以在使用前必须显式初始化

成员变量(Member Variables,也称为字段或属性):
作用域:成员变量的作用域是整个类。
默认值:如果成员变量没有显式初始化,Java 会为它们赋予默认值。以下是成员变量的默认值:
数值类型(byte、short、int、long、float、double):0
char 类型:‘\u0000’(空字符)
boolean 类型:false
引用类型(对象和数组):null

数组

数组的比较equals()

数组是一种引用数据类型,equals()继承自Object, 没重写比较的不是数组中的内容
比较两个数组中的内容使用的是Arrays.equals()

面向对象

封装、继承、多态

static

继承

子类能够继承和重写哪些访问控制修饰的方法?

public 和 protected能够继承和重写
默认、无修饰符的只用相同包下的子类能够继承和重写

多态

多态的表现形式

  1. 编译时多态
    方法重载:
    必须改变参数列表,即参数的类型和个数不同,或类型和个数相同但顺序不同(也算重载)
    可以修改返回类型,但只修改返回类型不算重载。
  2. 运行时多态
    1. 方法重写
      外壳不变,核心重写!
      方法名和参数列表要完全相同,返回类型可以修改
      访问权限只能扩大不能缩小
      异常可以缩小(更加确定)不能更大(超出原异常范围)
    2. 接口多态
      一个类实现了某个接口,那么可以通过接口类型的引用来引用该类的对象。这样,一个接口引用可以指向实现了该接口的多个不同类的对象,从而实现了接口类型的多态性。

重写与重载的区别

在这里插入图片描述

构造方法

一般使用public修饰
没有返回值类型 , 注意: void也没有
方法名和类名相同 **注意: ** 允许类用和构造方法同名的方法, 但注意要有返回参数
构造方法可以重载

错题

子类构造方法调用super()

在这里插入图片描述
执行子类构造方法首先会调用父类构造方法,默认调用父类无参构造,可在子类构造方法中省略。调用父类有参,必须显示声明且必须在子类构造方法的第一行

访问控制

在这里插入图片描述

方法重写

finnal

finnal修饰类 不可被继承 例如String
finnal修饰方法 可以被子类继承, 但不能被子类重写
finnal修饰变量, 只能赋一次值
finnal修饰引用时, 地址不能变, 但地址里的内容可以改变

引用类型转换及instanceof

instanceof关键字

判断引用名实际指向的对象,其所属类型是否为右边的类型名,返回boolean
类型结果

instanceof详解好文章
https://segmentfault.com/a/1190000038391136

抽象 abstract

如果一个类中存在抽象方法,该类必须声明为抽象类
但抽象类中可以包含,也可以不包含抽象方法

抽象类和普通类区别:
抽象类必须使用abstract修饰符
抽象类相对普通类,多了包含抽象方法的能力
抽象类相对普通类,失去了实例化创建对象的能力

抽象类和普通类相同点:
符合继承关系特点,能够使用多态机制
子类可以重写从抽象类继承的方法
实例化子类对象需要借助父类构造器实现父类部分的初始化

接口 interface

接口不是类,而是另外一种引用数据类型,他没有构造方法, 注意: 没有构造方法
接口不能实例化对象,但可以指向实现类对象

接口允许多继承(即一个接口可以继承多个接口)

注意事项:
接口多态应用时,编译看左边,运行看右边
即接口引用只能调用接口中包含的方法,成功调用的是重写以后的方法

接口中
数据成员默认 public static final修饰
方法默认public abstract 修饰

接口实现
注意事项:
重写方法的访问权限修饰符可以被扩大,但是不能被缩小,
而接口中的方法默认由public abstract 修饰
因此: 实现接口方法时, 必须声明访问权限为public
方法抛出异常类型的范围可以被缩小,但是不能被扩大

内部类

枚举

包装类

Object

Onject类有哪些方法?

Object()构造方法
getClass()
clone()
hashCode()
equals()
toString()
notify()
notifyAll()
wait()

错题

? hashcode和equals的关系?

在这里插入图片描述
知乎的一篇好文章
https://zhuanlan.zhihu.com/p/364011883
简单总结:
hashcode的特性:

  1. 一致性(不变性) 无论调用多少次,都应该返回一样的结果

  2. 如果equals返回为true那么hashcode也应该相等

    <
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值