Java笔记-Object,String,Math,BigInteger类

2023-10-28

一 项目的jar包的导入与导出

    jar包是一个可以包含许多.class文件的压缩文件。我们可以将一个jar包加入到项目的依赖中,从而该项目可以使用该jar下的所有类;也可以把项目中所有的类打包到指定的jar包,提供给其他项目使用。

1.1导出jar包

    即把项目中所有类,打包到指定的jar包中,步骤如下图:

    

1.2导入jar包

    即把指定的jar包,加入到指项目中,提供给项目使用。

    导入jar包的过程是将jar包加入到项目的.classpath文件中去,让项目识别,便可以使用jar包中所有的.class文件类。以下是加入步骤:

         1:项目根文件夹下创建lib文件夹,用于统一管理所有的jar文件

         2:把jar文件复制到lib文件夹目录中

         3:右键点击jar文件,点击Build Path,选择Add to Build Path,此时查看项目根文件夹下的.classpath文件,发现新加入的jar包路径被配置到了该文件中。说明可以使用jar包中所有类了。

    

二 Java的API及Object类

2.1Java的API

    Java 的API(API: Application(应用) Programming(程序) Interface(接口))

    Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。

    在JDK安装目录下有个src.zip文件,这个文件解压缩后里面的内容是所有Java类的源文件。可以在其中查看相对应的类的源码。

    我们在每次查看类中的方法时,都打开源代码进行查看,这种方式过于麻烦。其实,我们可以通过查帮助文档的方式,来了解Java提供的API如何使用。如下图操作:查找Object类

    

2.2 Object类

    Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。在Object类众多方法中,我们先学习equals方法与toString方法。

2.3 equals方法

    equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符。

    在开发中要比较两个对象是否相同,经常会根据对象中的属性值进行比较,也就是在开发经常需要子类重写equals方法根据对象的属性值进行比较。如下代码演示:

        

注意:在复写Object中的equals方法时,一定要注意public boolean equals(Object obj)的参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前必须进行类型判断。

2.4 toString方法

    toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值

    由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

        

三 String类

3.1 String类的概述

    查阅API中的String类的描述,发现String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。

    字符串是常量;它们的值在创建之后不能更改,这是什么意思呢?其实就是说一旦这个字符串确定了,那么就会在内存区域中就生成了这个字符串。 字符串本身不能改变,但 str 变量中记录的地址值是可以改变的

    字符串有大量的重载的构造方法。通过String类的构造方法可以完成字符串对象的创建,那么,通过使用双引号的方式创建对象与new的方式创建对象,有什么不同呢?看如下程序与图解:

        

    上图中s3和s4的创建方式有什么不同呢?

        s3创建,在内存中只有一个对象。这个对象在堆的一小部分区域叫字符串常量池中

        s4创建,在内存中有两个对象。一个new的对象在堆中,一个字符串本身对象,在字符串常量池中

    再举一个例子:

    

    注意:String类的equals

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java笔记-Object,String,Math,BigInteger类 的相关文章

  • 解压 R 数据框中的列表

    我有一个dataframe其中一个字段包含不同长度的列表 我想将该字段中列表的每个元素提取到其自己的字段中 以便我可以将结果收集到一个很长的字段中dataframe每个列表元素都有一个 id 这是一个例子dataframe dat lt s
  • Instagram 勒克斯效果

    Instagram 最近添加了一个 Lux 按钮 可以对您拍摄的照片进行自动对比 调平 我有一堆图片需要以类似的方式自动调平 使这些图片看起来更好 如果我想在 Imagemagick 中使用批处理命令 需要使用什么 秘密成分 我应该坚持对比
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 修改 ADW Android 启动器?

    我想更改和修改开源 ADW 启动器 启动器可在此处获取 https github com AnderWeb android packages apps Launcher https github com AnderWeb android p
  • 如何移动 Zend_Layout 的“视图”

    通常它会是这样的结构 application modules somemodule views scripts index index phtml 我如何将其移动到 application templates somemodule temp
  • 期望最大化算法的数值示例[重复]

    这个问题在这里已经有答案了 由于我不确定给出的公式 有人可以提供 EM 算法的简单数字示例吗 一个非常简单的具有 4 或 5 个笛卡尔坐标的坐标就可以了 那这个呢 http en wikibooks org wiki Data Mining
  • 使用 eclipse IDE 配置 angularjs

    我想开始使用 AngularJs 和 Java Spring 进行开发 我使用 Eclipse 作为 IDE 我想配置我的 Eclipse 以使这些框架无缝工作 我知道我可能要求太多 但相信我 我已经做了很多研究 你们是我最后的选择 任何帮
  • 使用 Python 生成类似于 Messenger 或 kik 代码的圆形二维码

    我可以使用 Python 生成圆形 QR 码 就像 Facebook Messenger 或 kik 使用的那样吗 我访问了很多网站 但找不到这种类型的二维码 默认情况下 Python 生成方形 QR 码 但在我的项目中我想要圆形 QR 码
  • Rails 7 缺失部分

    我正在升级到 Rails 7 1 并在使用 JS 部分的视图中遇到奇怪的错误 缺少部分 account stripe js erb application stripe js erb 与 locale gt fr formats gt ht
  • Django South - 将 null=True 字段转换为 null=False 字段

    我的问题是 转变的最佳做法是什么null True场变成null False使用 Django South 的字段 具体来说 我正在与ForeignKey 你应该先写一个数据迁移 http south aeracode org docs t
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co
  • 绘制大位图时 nSyncAndDrawFrame 速度极慢

    我想用多个大位图优化视差滚动视图 在我的 Nexus 5 上 一切都很顺利 Traceview 转储如下所示 doFrame 方法大约需要 18 毫秒才能完成 但是 当使用我的 Nexus 7 或 Android 6 模拟器 Genymot
  • 尝试使用带有有效购买令牌的 Java Google Play Developer API v3 检索应用内购买信息时出现错误请求(无效值)

    当使用 Java Google Play Developer API 版本 3 并请求有效购买令牌的购买信息时 我收到以下异常 API 调用返回 400 Bad Request 响应以及以下消息 code 400 errors domain
  • 如何为React hooks(useState等)做流类型注解?

    我们应该如何将 Flow 类型注释与 React hooks 一起使用 例如useState 我尝试寻找一些如何实施它们的示例 但找不到任何东西 我试过这个 const allResultsVisible setAllResultsVisi
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束
  • 与文件名中的冒号“:”作斗争

    我有以下代码 用于加载大量 csv gz 并将它们转储到其他文件夹中 并将源文件名作为一列 object DailyMerger extends App def allFiles path File List File val parts
  • 无法在 Windows 10 上构建 Detectron2

    尽管 Windows 上的 Detectron2 没有官方支持 但有很多可用的说明 我尝试按照这些说明进行操作 但最终出现了相同的错误 这是我的设置 OS Windows 10 专业版 19043 1466 微软视觉工作室 2019 CUD

随机推荐

  • 简易虚拟培训系统-UI控件的应用3

    目录 Button组件的组成 Button组件方法1 在Button组件中设置OnClick 回调 Button组件方法2 在脚本中添加Button类的监听 上一篇使用了文件流读取硬盘数据并显示在Text组件中 本篇增加使用按钮来控制显示哪
  • 牛客网SQL题目解析(答案+解析+理解)

    本文记录了牛客网sql全部题目的答案与难题解析 部分题目包含多种解法 并且涵盖了开窗函数等各种语法点的理解 标题中高亮的题目 是易错题 牛客网刷题链接 牛客网sql在线练习 本文所有语句使用mysql8 0 参考教程资源 mysql教程1
  • 贪心法求解背包问题

    编写程序 输入一组物体重量以及它们的价值大小 对每一个物体求出它对的价值重量比 按由大到小的顺序排列 每一次取出这个比值最大且物体可以被包装下的物体 直到包装满为止 输出装入背包的物体 并给出装入物体的编号以及它们各自的价值和装入背包的物体
  • java commons-chain_Apache commons chain 初探

    Apache commons chain 是什么 Apache common chain 是对责任链设计模式的改造封装 让使用者更加方便的使用 简单回顾一下责任链设计模式 在阎宏博士的 JAVA与模式 一书中开头是这样描述责任链 Chain
  • 收藏

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 仅作学术分享 不代表本公众号立场 侵权联系删除 转载于 来自 知乎 https www zhihu com question 56024942 编辑 AI有道 卷积神经网
  • tnsnames.ora配置小结

    oracle网络配置 三个配置文件 listener ora sqlnet ora tnsnames ora 都是放在 ORACLE HOME network admin目录下 1 sqlnet ora 作用类似于linux或者其他unix
  • 利用一根网线实现新电脑一键迁移文件和软件

    文章目录 问题 方法 Win10下用网线在两台电脑之间高效传输文件数据 第一步设置电脑ip 第二步 利用PING命令测试两台电脑是否连通 360手机助手实现文件迁移 参考文献 问题 最近来到了一个新的实验室 实验室新分配了一台电脑 于是想要
  • OutputStreamWriter在完成write()后 一定要立即关闭,不然写入内容不完整!

    在开发中 同一个程序中需要两次写文件 通过OutputStreamWriter来实现 刚开始为了管理方便 我把这两个操作的关闭过程统一都放到了程序的最后 但是发现写入的内容变得不完整 无论文本长短 最后总是有大约几百个字符没有写进去 后来在
  • el-table 记住选中状态

  • Gitlab部署报错There was an error running gitlab-ctl reconfigure: ruby_block[authorize Grafana with Gitla

    安装gitlab 报错 There was an error running gitlab ctl reconfigure ruby block authorize Grafana with Gitlab monitoring grafan
  • 亲身实践,这份SpringCloud Alibaba全彩笔记助你高效学习

    SpringCloud Aliababa简介 大家好 我最近在学习SpringCloud Alibaba 在此过程中积累了很多学习笔记 为了方便更多人学习 我决定将这套SpringCloud Alibaba全解笔记开源 这套笔记包含Spri
  • 计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器优化和硬件预取(六)

    优化七 编译器优化 降低miss率 处理器和主内存之间不断扩大的性能差距促使编译器编写者仔细检查内存层次结构 看看编译时优化是否可以提高性能 再次 研究分为指令缺失的改进和数据缺失的改进 接下来介绍的优化可以在许多现代编译器中找到 有些程序
  • Java常用的stream流操作,附源码

    Java常用的stream流操作 附源码 问题背景 stream操作方法 1 去重 2 对象无序去重 通过name去重 3 对象无序去重 通过name且age去重 注意 不是先使用name去重 再使用age去重 3 1 对象有序去重 4 整
  • dockerfile 中 ENTRYPOINT 和 CMD的区别

    大家好 在dockerfile当中 ENTRYPOINT 和CMD的作用于效果是很类似的 我们今天就来说一下它们两者的区别 ENTRYPOINT 指定这个启动的时候启动的时候要运行的命令 可以被替代 CMD 指定这个启动的时候启动的时候要运
  • struct和typedef struct的区别

    在了解struct和typedef struct之前 我们先学习下typedef的定义和用法 typedef为C语言的关键字 作用是为一种数据类型定义一个新名字 这里的数据类型包括内部数据类型 int char等 和自定义的数据类型 str
  • 网络安全(黑客技术)自学

    前言 网学黑客技术的人越来越多了 不少人都不知道该怎么学 今天就来详细的说一说黑客是如何自学成为一名黑客 首先 什么是黑客 黑客 泛指擅长IT技术的电脑高手 黑客一词 源自英文Hacker 早期其实就是一群爱好电脑技术的人 他们有着与常人不
  • awk 练习题

    test txt为cp etc passwd test txt 用awk 打印整个test txt 以下操作都是用awk工具实现 针对test txt awk F print 0 test txt 查找所有包含 bash 的行 awk ba
  • web前端知识总结一(HTMl+CSS)

    web前端知识总结一 HTML CSS 文章目录 web前端知识总结一 HTML CSS 浏览器 HTML基础 换行标签 水平线标签 图片标签 绝对路径 相对路径 视频标签 链接标签 锚点 无序列表 有序列表 自定义列表 表格 表格属性 合
  • vue使用什么进行css开发,教你在Vue项目中使用React超火的CSS-in-JS库: styled-components...

    什么是CSS in JS 顾名思义 CSS in JS就是可以使用JS来编写CSS样式 那么为什么要用JS来编写CSS呢 我写CSS写的好好的 干嘛非给自己找不自在呢 相信以前大家都听说过这么一个词 关注点分离 就算没听过这个词那么你肯定至
  • Java笔记-Object,String,Math,BigInteger类

    一 项目的jar包的导入与导出 jar包是一个可以包含许多 class文件的压缩文件 我们可以将一个jar包加入到项目的依赖中 从而该项目可以使用该jar下的所有类 也可以把项目中所有的类打包到指定的jar包 提供给其他项目使用 1 1导出