1-类,对象解析

1. 类与对象

1.1. 类

对具有同一种或多种属性的一类事物的抽象

1.1.1. 封装: 封装是指将一系列代码逻辑进行代码块包裹,使其构成一段完整逻辑

1.1.2. 继承: 子类继承父类的方法和属性,

①若没有重写,则可以使用父类的方法和属性,

②若进行重写,则不同子类在实现接口或类的方法会有不同的特异性行为

1.1.3. 多态: 不同类继承或实现同一类和接口会产生不同行为,

多态是建立在继承的基础上的

**初始化: **类会在第一次调用时进行初始化,

1.1.4. 成员

成员变量: 对象的属性,每个对象有不同属性值

​ **成员变量初始化: ** ①在非static时,会在对象创建时初始化,②在static时会在类加载时初始化③初始化时,若属性在类中被赋值 , 则该成员使用该值, 若未赋值, 属性在初始化时会被赋予默认值

成员方法: 对象的行为,

static关键字: 使用static关键字修饰的则属于类,

private关键字: 私有化处理, ①无法直接使用对象进行调用 ②无法继承, ③只能这个类使用或者使用反射进行强制调用

this关键字: this是指向调用本方法的对象, 若本方法为static方法,则不允许使用this(静态方法随着类的加载而加载,没有指向对象)在前端js中亦是如此,所以,对于前端js的方法中的方法若要使用vue的属性或方法,可以先将this赋值给临时变量

final关键字: 不能被继承, 从变量变成常量,对象的值无法发生改变

1.1.5. 局部

局部变量: 在方法中定义,随着方法的结束而消亡

1.1.6. 内部类

成员内部类: 成员位置的内部类, 成员内部类和外部类可以互相访问彼此的私有成员

静态内部类: 随着调用外部类,静态内部类加载

局部内部类: 在方法中定义的类,局部内部类是类的声明,无法通过导包等方式访问(只有调用了方法,并且局部内部类代码块执行了,局部内部类才存在), 声明了局部内部类之后才能使用局部内部类

匿名内部类: 用来实现

1.2. 对象

某一类事物的具象化,具有明确的特性,是独特的个体

**初始化: **对象会在创建时进行初始化, 对象是实际存在的个体, 有分配的地址,有唯一确定的属性和行为, 字段会被赋予默认值

1.3. 抽象类和接口

1.3.1. 接口是用来规范子类所属更大类

1.3.2. 抽象类使用abstract修饰,也是用来规范子类所属的更大的类

抽象类一般作为父类,和接口的区别在于,抽象类可以有属性,(供子类继承,进一步提高规范)抽象类可以有自己的方法逻辑和代码块(特别是静态方法和静态代码块,可以作为前置处理,进一步封装)抽象类和接口都不允许有对象

1.4. 代码块

静态代码块: 在类加载时执行

构造代码块: 在对象实例化时执行

局部代码块,调用时执行

1.5类加载的初始化

类在初始化时,①父类初始化,②静态成员变量创建, 执行静态代码块, 静态成员初始化,③静态方法加载(若需要创建对象)④父类对象创建⑤子类对象创建

2. String类

2.1. String

使用final修饰,无法被继承, String的值生成就会在常量池中,栈中地址指向堆中地址,堆中地址指向常量池

jdk1.8使用的是char[]存储字符串,jdk1.9之后String的底层是byte数组, 每次通过不同途径创建的String类型都会在栈中创建一个地址,地址指向常量池,

每次字符串发生变化时,都会在常量池中指向新的地址,若常量池中没有,则会在常量池中创建新的对象

2.2. equals()方法

若未重写则继承object的方法比较地址值

若重写, 使用idea和注解重写equals()方法, 则调用每个字段的equals()方法,①若这个字段的类型重写了equals方法则比较这个字段的实际值②若未重写,则比较这个字段的地址值, ③String重写了equals()方法

String重写了equals()的逻辑

String底层数据存储是基于数组,

链表底层是基于节点, 节点由数据域和指针域构成,数据域存放节点存储内容,指针域存放与节点相连节点的地址值

3.数据类型

3.1各数据类型

​ 容器:存放信息数据的载体.

​ 数据类型(字面量):

bit: 比特, 计算机最小信息单元, 即代表0/1的二进制

byte: 字节, 计算机最小数据单元, 一个字节由8个比特 , 在数字类型中,第一个比特位正负符号,由于存在0, 所以 byte类型容器,取值范围为-2的七次方~2的七次方-1,

short: 占用两个字节长度, 即16个比特位,取值在**-2的15次方~2的15次方-1**

int: 最常用的整形, 四个字节, 32个比特位, 约为正负21亿

​ **long:**8byte,很大,大概约为21亿的平方吧

​ 浮点型: float: 4byte,表示的数比long大,double: 很大, 浮点型计算会产生精度丢失, 推荐使用BigDecimal

​ 字符: char: 字符型,用于表达各种字符, 字符需要遵循使用编码, ex:iso-8859-1,gbk,utf-8(unicode字符集的一个编码表,网站(中文)编码为utf-8),推荐使用同一字符集,不要来回切换

​ boolean: true/false,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值