Java基础15 内存分析和面向对象
创始人
2024-01-18 08:10:29

文章目录

    • 一、内存分析
    • 二、数组的基本特点
    • 三、Arrays类
    • 四、类的构造器
    • 五、封装
    • 六、继承
    • 七、this和super关键字
    • 八、方法重写
    • 九、多态
    • 十、instanceof和类型转换
    • 十一、static关键字
    • 十二、抽象类
    • 十三、接口类
    • 十四、内部类
    • 十五、异常
    • 十六、异常处理
    • 十七、自定义异常

一、内存分析

java内存:

存放new的对象和数组
可以被所有的线程共享,不会存放别的对象引用

存放基本变量类型(包含这个基本类型的具体数值)
引用对象的变量(会存放这个引用在堆里面的具体地址)
方法区
可以被所有线程共享
包含了所有class和static变量

二、数组的基本特点

数组分静态和动态两种创建方式
数组的四个特点:
长度是确定的,一旦创建大小不可以改变
元素类型必须相同
元素可以是任何数据类型,包括基本类型和引用类型
数组变量属于引用类型,可以看成是对象,每个元素相当于是成员变量,
数组对象本身也在堆中

三、Arrays类

常用功能:
fill 给数组赋值
sort 给数组排序
equals 比较数组中的元素值是否相等
binarySearch 查找数组元素,用二分查找法

四、类的构造器

必须和类的名字相同
必须没有返回类型,也不能写void

五、封装

为了追求 高内聚 低耦合
属性私有 get set

六、继承

继承的本质是对某一批类的抽象,为了实现更好的建模。
extends是拓展的意思,子类就是父类的拓展
java中只有单继承,没有多继承

继承是java中类与类的一种关系,除此以外还有依赖、组合、聚合等
子类继承父类,子类就拥有父类所有的方法 (public)
java中所有的类 都默认直接或间接继承Object

七、this和super关键字

this代表当前类
super代表父类
super注意点:
super调用父类的构造方法
super必须只能出现在子类的方法或者构造方法中
super和this不能同时调用构造方法
super和this的区别:
代表的对象不同
前提
this没有继承也可以使用
super只能在继承条件下才可以使用”
构造方法
this()本类的构造方法
super()父类的构造方法

八、方法重写

@override 重写 有功能的注释
注意:
重写需要有继承,子类重写父类的方法
方法名必须相同
参数列表必须相同
修饰符的范围可以扩大 public>protected>Default>pribate
抛出的异常 范围可以被缩小 不可以扩大

九、多态

父类可以指向子类,但是不可以调用子类独有的方法
注意:
多态是方法的多态,属性没有多态
父类和子类,有联系
存在条件,继承关系,方法需要重写,父类引用指向子类对象
static final private方法不可以被重写

父类引用指向子类对象
子类转换为父类,向上转型
父类转换为子类,向下转型 强制转换 可能会丢失一些方法
方便方法的调用,减少重复的代码,有效提升利用率

十、instanceof和类型转换

判断两个类之间是否存在父子关系

引用类型转换
低转高 自动就转换
高转低 强转换

十一、static关键字

静态变量 类名.变量 多线程 不需要new
静态代码块
static{
}
类一加载就执行 只执行一次
先运行静态方法块,然后运行匿名方法块
最后执行构造方法

十二、抽象类

abstract来修饰类,类就变成一个抽象类
抽象类可以没有抽象方法,但是有抽象方法的类 一定要声明为抽象类
抽象类不可以用new来创建对象,要用子类来继承
抽象方法只有方法的声明,没有方法的实现,留着给子类实现

子类继承抽象类,就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类

十三、接口类

声明接口的关键字是interface
普通类 只有具体的实现
抽象类 具体的实现和抽象方法都有
接口 只有抽象类

接口就是规范,定义的是一组规则,自己无法写方法
专业的抽象
类可以通过implements实现接口,接口可以多继承
作用:
约束
定义一些方法,让不同人去实现
默认方法是public abstract
所有的常量都是public static final
接口不能实例化,接口中没有构建方法
implements可以实现多个接口
实现接口必须要重写接口中的方法

十四、内部类

直接在类里面class定义一个类,即内部类
成员内部类
一个java类中可以有多个class类
但是只能有一个public class
写在方法里的 是 局部内部类

还可以写匿名内部类,不需要将实例保存到对象中,直接用
new A().say()

十五、异常

java把异常当做一个对象来处理,并定义一个基类Throwable作为所有异常的超类
主要异常分为Error和Exception两种
Error:灾难性
VirtualMachineError 虚拟机异常
StackOverFlowError
OutOfMemoryError
AWTError 图形界面化异常
Exception:可以被程序处理
IOException 输入输出异常
EOFException
FileNotFoundException
RuntiomeException 运行时异常
ArithmeticException 算术异常
MissingResourceException 资源丢失异常
ClassNotFoundException 找不到类异常
NullPointerException 空指针异常
IllegalArgumentException 非法参数异常
ArrayIndexOutOfBoundsException 数组下标越界异常
UnknowTypeException 未知类型异常

十六、异常处理

try
catch 捕获异常
finally 无论异常与否都会执行
throw 抛出异常 一般在方法里面去主动抛出异常
throws 方法中处理不了异常,则在方法上抛出异常

在用多重catch捕获异常的时候,最后用catch(Exception)处理可能遗漏的异常
尽量去处理异常 而不是print
尽量添加finally去释放占用的资源

十七、自定义异常

只需要继承Exception类 就可以自定义异常
步骤:
创建自定义异常类
在方法中通过throw关键字抛出异常
如果在当前抛出异常的方法中处理异常,用try-catch捕获并处理,否则在方法声明出通过throws指明抛出的异常
在出现异常方法的调用者中捕获并处理异常

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
苁蓉的食用方法 鲜苁蓉的吃法有... 肉苁蓉号称“温而不热,补而不峻,暖而不燥,滑而不泄,故有从容之名。”历来也是传统药食同源的滋补佳品。...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
阳澄湖在哪里哪个省的 阳澄湖是... 点击题目下方苏州生活指南有用 有趣 有态度近期的阳澄湖度很高,3月24日,央视二套《第一时间》直播连...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...