java学习笔记4

一、基本数据类型的封装类

  1. 基本数据类型记录的是数值,不是面向对象的。
    java为了实现万物皆对象的理念,给每个基本数据类型提供了对应的封装类型。
基本数据类型对应的封装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

基本数据类型的封装类型,可以和基本数据类型直接转换。

  1. 装箱:基本数据类型转换成对应的封装类型的过程叫做装箱。

    拆箱:将封装类型转换成对应基本数据类型的过程

  2. java为基本数据类型的封装类型提供了缓存。

整数类型缓存大小为一个byte -128~127 只有Integer类型的缓存可以调整
浮点型没有缓存
character类型的缓存为0~127

  1. 封装类型之间不能够互相转换,封装类型只要类型不同不可比较,基本数据类型和对应的封装类型比较,封装类型拆箱后比较。

  2. 将字符串转化为Integer类型

Integer.valueOf("34");//返回Integer类型
Integer.parseInt("34");//返回int类型

二、包

  1. 包 package 声明包
  2. 使用本包下的类不需要导包
  3. 使用其他包的类需要导包 import 包名
  4. 所有的类默认引入java.lang
  5. 类名重名的情况可以使用类名的全名指定具体使用哪个类
  6. 包有封装性,没有父子关系

三、static 静态的

  1. 修饰的属性是属于类的,可以通过类名直接调用static修饰的属性和方法
  2. 静态属性对所有对象共享
  3. 本类的对象也可以调用静态的属性和方法,调用的方式还是静态方式
  4. 静态方法中不能直接调用非静态的属性和方法,需要通过对象调用
  5. 静态方法无法被重写

四、Object类

  1. java是面向对象的,在Java中所有的引用类,默认继承Object
  2. 引用类型默认值为null
  3. 在引用数据类型中==比较的是地址是否是一个,基本数据类型中比较的是值是否相等
  4. finalize方法是一个对象最后执行的代码(要被注销时)
  5. Object类中的方法:
    getClass(); hashCode(); equals(); clone(); toString(); notify(); notifyAll(); wait(); finalize();

五、抽象类和抽象方法

抽象类
  1. 使用abstract修饰的类是抽象类。
  2. 抽象类没有直接实例 不能new
  3. 抽象类中可以定义抽象方法
  4. 抽象类用来被继承
抽象方法
  1. 使用abstract修饰的方法。
  2. 抽象方法没有方法体,用;结束。
  3. 实体类继承抽象类 必须实现抽象类中抽象方法(重写)。
  4. 抽象类继承抽象类可以不实现抽象方法。

六、final 最终的

  1. final的用途
  1. final可以修饰类 不能被继承
  2. final可以修饰方法 不能被重写
  3. final可以修饰量 不能被重新赋值 =
  1. final修饰变量
    被final修饰的变量可以通过以下两种方式初始化
final int height=200;//可以在这里直接对final修饰的变量初始化
public EasyFinal() {
height = 200;//也可以在构造方法中对final修饰的量进行初始化
    }

注意:final和abstract是相斥的不能一块使用,final修饰的类或方法不能被继承(重写),abstract修饰的类或方法需要被继承(重写)

七、接口

  1. 接口中只能定义抽象方法,没有方法体
  2. 接口中定义的方法默认使用public abstract修饰,都是抽象方法 —没有具体实现的方法
  3. 接口中定义的属性都是常量 默认使用public static final修饰
  4. 接口中没有构造方法
  5. 接口中可以定义default修饰的实体方法,虽然使用default修饰但是访问权限还是public
  6. java中使用implements来声明一个类实现接口,一个类可以实现多个接口
  7. 接口可以使用extends继承接口,且可以继承多个接口,接口不能继承类
  8. 如果一个接口中只有一个未实现的方法,这个接口称为函数式接口,可以使用注解@FunctionalInterface验证

八、克隆(拷贝)

  1. 被克隆的对象的类必须实现Cloneable接口,没有实现会报异常。
  2. 浅拷贝:创建一个新的对象,但只复制原始对象的基本数据类型的字段或引用(地址),而不复制引用指向的对象。这意味着新对象和原始对象中的引用指向相同的对象。如果原始对象中的字段是基本数据类型,那么这些字段会被复制到新对象中,而如果字段是引用类型,则新对象和原始对象的对应字段将引用同一个对象。因此,对新对象所做的修改可能会影响到原始对象,因为它们共享相同的引用。‌
  3. 深拷贝:创建一个新的对象,并且递归地复制原始对象的所有字段和引用指向的对象,而不仅仅是复制引用本身。深拷贝会递归复制整个对象结构,包括对象内部的对象,确保新对象和原始对象之间的所有关系都是独立的。这意味着对新对象所做的修改不会影响到原始对象,因为它们拥有彼此独立的副本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值