重载和重写:
- 重载发生在本类,重写发生在子类父类之间
- 重载和重写的方法名必须相同,而且重写返回值的类型也必须相同
- 重载是参数列表不同,重写的参数列表必须相同
final
- final修饰的类不能被继承;
- final修饰的变量,可以保证在使用中不被改变;
- final修饰的变量必须赋初始值,且只能赋值一次,不可修改;
- final修饰的方法也不能被重写。
不同数据及类型
byte与int相加,byte会自动转换为int,然后进行相加。
byte不能与byte相加,会损失精度
不同类型运算时以高精度的为准。
高精度类型得到低精度结果需要进行强转,这个过程中会损失精度
最好完全避免使用浮点数进行比较
因为他是 有限 离散 舍入误差 大约 接近但不等于。。。
那么银行业务该使用什么呢?
浮点数拓展: BigDecimal 数学工具类 (大小数)
注意:数组有length属性,字符串只有length()方法 ——————————————-
引用数据类型???
除了基本数据类型之外,其他的全都是引用数据类型
抽象类和接口
抽象类
- 可以在里面正常的定义方法,变量,构造方法等等。
- 可以定义抽象方法,抽象方法没有方法体。
- 抽象类不能被实例化,所以需要子类来继承从而实现抽象类中方法的调用
接口
- 关键词:interface
- 它是一种约束,只能够定义方法名
- 子类实现接口,必须要重写接口中的方法
- 只有一个方法的接口叫做函数式接口,可以使用Lambda表达式简化
什么是Lambda?(java)_java lambda - 接口比抽象类更加抽象
堆和栈
直接赋值,例如int a= 4 那么程序就会将4放到常量池里边
使用new就是堆内存中新建一个对象,有他自己的内存地址!
外部类,成员内部类。。。
HashMap
时间复杂度
时间复杂度视频
T(n) = O(…)
就是取代码执行次数
取n的最高次项,当为常数的时候,时间复杂度就为1
String相关类
- String 不可变性,final修饰的,操作次数少
- StringBuffer 可变长 ,append() 多线程数据量大的时候,效率低,安全
- StringBuilder 可变长 单线程数据量大的时候,效率高,不安全
集合框架
- Collection 都可以用来存放值
- List(有序可重复)
- ArrayList
- add remove contains size
- LinkedList
- getFirst() getLast() removeFirst() addFirst() …
- ArrayList
- Set(无序不可重复)
- HashSet
- TreeSet
- List(有序可重复)
- Map
- HashMap
- TreeMap
Io流
节点流中漏了一个 文件流 File开头的
关键字和标识符
java关键字都是小写。
2、 Java标识符命名规范是:
1)只能包含字母a-zA-Z,数字0-9,下划线_和美元符号$;
2)首字母不能为数字;
3)关键字和保留字不能作为标识符。
null是关键字,NULL不是关键字,java区分大小写。这题答案D是对的,但C是错的,for是关键字。
3、 标识符就是用于Java程序中变量,类,方法等命名的符号,Java标识符不能是Java关键字,还有区分大小写, 还有,标识符可以由字母,数字,下划线,$组成,不能包含@,%,空格,不以数字开头,,,NULL和null不一样啊
List和Set
- 他们都是接口 , 是实现而不是继承
- list,有序,他是按照对象进入的顺序保存对象,可重复,可以有多个null元素,可以使用Iterator(迭代器),遍历去获取所有元素,或者用get(index)来获取元素
- set,无序,不可重复,最多只能存在一个null元素,在获取元素的时候,只能通过迭代器遍历去找到那个元素
- Linklist和ArrayList是实现了List接口而不是继承。
equals与hashcode的区别与联系
equals与hashcode的区别与联系equals和hashcode的区别与联系
全选,Object 类中方法及说明:
registerNatives() //私有方法
getClass() //返回此 Object 的运行类。
hashCode() //用于获取对象的哈希值。
equals(Object obj) //用于确认两个对象是否“相同”。
clone() //创建并返回此对象的一个副本。
toString() //返回该对象的字符串表示。
notify() //唤醒在此对象监视器上等待的单个线程。
notifyAll() //唤醒在此对象监视器上等待的所有线程。
wait(long timeout) //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。
wait(long timeout, int nanos) //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
wait() //用于让当前线程失去操作权限,当前线程进入等待序列
finalize() //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/274091.html