ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java基础

2022-07-13 16:34:23  阅读:135  来源: 互联网

标签:Java 对象 重写 基础 接口 线程 方法 final


重载和重写:

  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() //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

标签:Java,对象,重写,基础,接口,线程,方法,final
来源: https://www.cnblogs.com/maomao777/p/16474330.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有