IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 类库,==和equals的区别,String,Scanner -> 正文阅读

[Java知识库]类库,==和equals的区别,String,Scanner

作者:recommend-item-box-tow

类库

Attach source ---->extrenal File或者Folder---->找到源码所在的目录即可

  1. Api就是别人写好的一些类型。编译之后,就是.class文件。
  2. 将字节码文件打包之后,生成一个jar包(java专用的压缩包)
  3. 将来只要导入jar包,就可以使用这个jar包中全部的类型。
  4. 各种jar包合成一个类库。
  5. 自己创建的工程,默认导入了一个JAR System Libary,里面包含了jdk提供的常用的jar包
  6. 如何生成jar包
    1. 在eclipse中,选中要导出的内容,右键export---->java---jar File,弹出以下窗口,填写生成jar存放的地址,起上jar包名称,点击finish

    ??

  7. 第三方jar包:
    1. Jdk开发商是第一方,程序员作为用户是第二方,开源社区、组织者或其他公司都可以人为是第三方。
    2. 一旦将第三方的jar包导入到咱们的工程中类,就可以使用第三方开发好的所有功能。
  8. 导入第三方jar包
    1. 在工程下新建一个目录(专门用于存放第三方jar),命名为lib
    2. 将下载好的第三方jar,拷贝到lib目录中。
    3. 将导入的jar包添加到build path中(鼠标右键选择build path-->add to build path)
    4. 看到奶瓶状的标记出现,就说明该jar包中的所有类型可以直接使用了
    1. 使用第三方jar包,查看源码使用鼠标右键,选择open declaration
    2. 使用快捷键F3
    3. 使用键盘ctrl + 鼠标左键
  9. 关联源码

Object类型的概述

object类是所有类型的顶层父类,所有类型的直接或间接的父类,所有类型中(包括数组)都含有object类中的所有方法。 随意定义一个类,不手动显式其父类,那么这个类的父类就是Object Object类的构造方法:object()

  1. 可以让自己创建对象
  2. 让子类访问,所有的子类都会直接或者间接的访问到这个顶层父类的构造方法
  3. Object类在执行构造方法时,不去访问自己的父类,因为没有父类。

导包

getClass方法

  1. 不需要导包的情况
    1. Java.lang
    2. 同一个包下
  2. 返回当前对象的运行时类
  3. 运行时类:真正创建对象所使用的那个子类类型,写代码的时候可能使用的是父类类型的引用或者是接口类型的引用。
  4. 返回值类型:class类型的对象(不详细解释),就是加载到方法区的那个字节码对象
  5. 其中class类型中有一个getName()方法,可以返回当前运行时类的全类名。
  6. 代码示例

hashCode方法

  1. 根据对象的情况,生成一个整数,就是哈希码值,生成数字的方法就是hashCode()方法;
  2. 生成数字的原则:
    1. 同一个对象多次调用hashCode方法,必须返回相同的整数(程序多次运行不要求哈希码值保持一致)
    2. Object类型的hashCode方法,确实会根据不同的对象生成不同的整数
  3. 代码示例

toString方法

  1. 重写的原则:返回对象中的所有成员变量的值(对象的属性)
  2. 最终操作:
    1. 不需要手动重写,可以直接使用快捷键生成。Alt + shift + s s

equals方法

  1. 用于比较两个对象是否相等的方法,比较的就是”调用者”和”参数”这两个对象。
  2. 性质:
    1. 自反性:自己和自己相等
    2. 对称性:(A和B相等,那么B和A就相等. A.equals(b)为true,那么B.equals(a)也就是为true
    3. 传递性: A.equals(B)如果为true,并且B.equals(C)为true,那么A.equals(C)就为true
    4. 一致性:A多次调用equals方法用于和B对象进行比较,应该返回相同的判断结果。
  3. 在object类型中,比较的是两个引用是否都指向同一个对象,如果是,才返回true,相当于是比较的两个对象的地址值是否相等。
  4. 在实际生活中,比较两个对象的内存地址,没有什么意义。因此在自定义的子类中,都要重写这个方法。
  5. 重写的原则:一般是比较两个对象中的所有属性是否都全部相同。
  6. 操作:
    1. 不需要手动自己重写equals方法,直接使用eclipse中的快捷键即可
      • Alt + shift + s h

==和equals的区别

  1. ==和equals都是用于比较数据是否相等的方法
  2. 不同点:
    1. 比较内容的不同
      • ==可以比较任意数据类型,既可以比较基本数据类型,也可以比较引用数据类型。
      • equals方法只能比较引用数据类型
    2. 比较规则不同:
      • ==在比较基本数据类型的时候,比较的是数据的值,比较引用数据类型时,比较的是地址值。
      • equals方法在重写之前,比较的是两个对象的地址值,在重写之后比较的是属性的值。

Scanner

  1. Scanner就是一个扫描器,可以扫描指定设备的基本数据类型和字符串。
  2. 构造函数
    1. Scanner(inputStream is)扫描指定的输入流
    2. Scanner(File f)扫描指定文件
    3. Scanner(String path)扫描一个指定的字符串路径
  3. 扫描器可以解析基本数据类型和字符串
    1. 录入基本数据类型
      • nextByte():获取一个byte数据
      • nextShort():获取一个short数据
      • nextInt():获取一个int数据
      • nextLong():获取一个long数据
      • nextFloat():获取一个float数据
      • nextDouble():获取一个double数据
      • nextboolean():获取一个boolean数据
      • 注意事项
        • 没有nextChar()这个方法,一般都是直接录入字符串
        • 键盘录入的数据,不是java代码,所以float类型的常量不需要加f
    2. 录入字符串类型
      • next():可以录入下一个完整的标记,返回一个字符串,通过空格分隔各个标记。
      • nextLine():可以录入一个完整的标记,返回一个字符串,通过换行符来分隔各个标记。
      • 注意事项:
        • 当你调用完以空格作为分隔符方法之后,在调用一个以换行符为分隔符的方法式,这个方法不会等待你继续录入,而是直接结束了程序。

String

  1. String就是字符串类型,属于java.lang包,不需要导包。
  2. 所有的字符串常量(“Hello World”,”abc”....)都属于String类型的对象
  3. 字符串字面值属于常量,存储在方法区的常量池里面。
  4. String类型是一个常量,在创建之后无法更改(是一个不可变的字符序列)
  5. 不变可变的原因是String类型只提供了构造方法,没有提供set方法,因此只能在创建对象的时候,初始化成员变量,将来对象创建完成之后,无法通过方法来修改。

String类型的构造方法

  1. String():创建一个空字符串
  2. String(String str):创建参数字符串的一个副本(参数字符串是在常量池中,构造方法创建的字符串是在堆内存中)
  3. 返回当前对象的字符串表示形式。
  1. Object类型中,这个方法的实现:全类名+ @+哈希码值的十六进制表示
    1. getClass().getName() + "@" + Integer.toHexString(hashCode());
    2. 打印结果内容简称为:对象的内存地址
  2. 对象返回这样的一个地址值的字符串,没有什么意义。因此对于子类而言,需要重写父类的这个方法。

??

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 11:43:27  更:2022-05-10 11:46:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:54:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码