javaSE 学习笔记关键字、抽象类、接口、数组

javase进阶

super

在这里插入图片描述
代码复用的意思是创建子类的对象的时候,先初始化父类型特征
1.final关键字
final可以修饰变量、方法、类等
如果不希望对一个类进行扩展,可以给这个类加final关键字,这样的话这个类就无法继承了
final修饰的方法无法被覆盖或者重写
final修饰的变量一旦赋值就不能修改
final修饰的引用只能指向一个对象,对象内的数据可以改变
final修饰实例变量 eg final int age;错误,必须手动赋值
终极结论 static final联合修饰的变量称为常量,大写
常量和静态变量都是存储在方法区
2.抽象类和接口以及抽象类和接口的区别
抽象类无法实例化无法创建对象
类和类之间有共同特征,将共同特征提起出来,形成的就是抽象类
抽象类属于什么类型?
抽象类也属于引用数据类型
怎么定义?
加abstract
抽象类用来被子类继承的,子类可以实例化。子类还可以是抽象类
抽象类有构造方法,供子类使用
抽象方法表示没有实现的方法,没有方法体的方法
特点是没有方法体以分号结尾,有abstract关键字
抽象类中不一定有抽象方法,但是抽象方法必须出现在抽象类中
子类必须将从父类中继承过来的抽象方法进行覆盖重写,或者也可以叫做实现
java语音中凡是没有方法体的方法都是抽象方法,错误,object类中很多方法没有方法体,表示调用本地jvm程序

接口也是一种引用数据类型
接口是完全抽象的,接口是特殊的抽象类
接口的定义 interface
接口支持多继承,一个接口可以继承多个接口
接口中只包含两部分内容,一个是常量,一个是抽象方法
接口中的抽象方法定义的时候,abstract可以省略
当一个非抽象的类实现接口,必须将接口中的方法全部实现 实现使用implements关键字
一个类可以实现多个接口,这种机制弥补了java中的单继承带来的缺陷
接口之间在进行强制类型转换的时候,,没有继承关系,也可以强转,但运行时可能出现异常

接口在开发中的作用
接口的作用类似于多态在开发中的作用
多态:面向抽象编程,降低程序的耦合度,提高程序的扩展力

在这里插入图片描述
包机制和import
在这里插入图片描述
**
**在这里插入图片描述
object类
tostring方法 :可以将一个java对象转换为字符串形式 一般是对象@地址在这里插入图片描述

一般都得重写

equals方法 判断对象是否相等,用的是双等号判断地址是否相等 (对象内存地址)
所以一般得重写
在这里插入图片描述
idea里面自动重写了这些方法
string类重写了equals方法和tostring方法

finalize方法
方法是protected修饰的,只有一个方法体,里面没有代码
JVM的垃圾回收期负责调用这个方法,java中的垃圾回收器不是轻易启动的,垃圾太少或者时间没到,也有可能不启动
finalize只需要重写,重写完自动会有程序来调用
在这里插入图片描述
hashcode方法 获得内存地址
在这里插入图片描述

内部类

匿名内部类(局部内部类很少用)
内部类:在类的内部定义了一个新的类
静态内部类:前面有static
没有就叫做实例内部类
类在方法里面称之为局部内部类
使用内部类代码,可读性很差,能不用尽量不用
匿名内部类是局部内部类中的一种
在这里插入图片描述
在这里插入图片描述
匿名内部类的缺点:可读性差、没办法重复使用

数组
在这里插入图片描述
在这里插入图片描述
缺点:因为地址连续,所以在数组上随机增删元素时效率较低
数组不能存储大数据量,因为很难在空间上找到特别大连续的空间
在这里插入图片描述
main方法中的string数组
传的一个空数组,长度为0,主要用来接收用户输入
数组扩容:建立一个大数组,把小数组拷贝进去,效率较低
用的是arraycopy函数
在这里插入图片描述
源、源的起始位置、目标、目标的起始位置、长度

在这里插入图片描述
如果拷贝的是引用,拷贝的是地址
在这里插入图片描述
压栈、弹栈操作,先设定栈帧,指向栈顶部
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
数组中常见的算法
排序算法:冒泡排序算法,选择排序算法
二分法查找
实际上java.ytil.arrays
这个数组工具类可以使用sort方法排序,可以自动从小到大排序Arrays.sort(数组名)
冒泡算法
在这里插入图片描述
选择排序
选择排序比冒泡排序的效率高,高在交换位置的次数上,选择排序的交换位置是有意义的
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
冒泡排序和选择排序的比较次数没变,但是选择排序交换位置的次数变少了

二分法查找

建立在已经排序好的数组之上,binarysearch已经写好了
在这里插入图片描述

Arrays工具类的使用

用的多的一个是排序 ,一个是二分法查找
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值