Java基础


重载和重写:

  1. 重载发生在本类,重写发生在子类父类之间
  2. 重载和重写的方法名必须相同,而且重写返回值的类型也必须相同
  3. 重载是参数列表不同,重写的参数列表必须相同

final

  1. final修饰的类不能被继承;
  2. final修饰的变量,可以保证在使用中不被改变;
  3. final修饰的变量必须赋初始值,且只能赋值一次,不可修改;
  4. 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(…)
就是取代码执行次数
image-20220319170232721

取n的最高次项,当为常数的时候,时间复杂度就为1

String相关类

  • String 不可变性,final修饰的,操作次数少
  • StringBuffer 可变长 ,append() 多线程数据量大的时候,效率低,安全
  • StringBuilder 可变长 单线程数据量大的时候,效率高,不安全

集合框架

  • Collection 都可以用来存放值
    • List(有序可重复)
      • ArrayList
        • add remove contains size
      • LinkedList
        • getFirst() getLast() removeFirst() addFirst() …
    • Set(无序不可重复)
      • HashSet
      • TreeSet
  • Map
    • HashMap
    • TreeMap

Io流

image-20220319230110770

image-20220319230528048

节点流中漏了一个 文件流 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

(0)
上一篇 2022年7月13日
下一篇 2022年7月13日

相关推荐

发表回复

登录后才能评论