Java(五)(Object类,克隆,Objects类,包装类,StringBuilder,StringJoiner,BigDecimal)

目录

Object类

Object类的常见方法:

克隆

浅克隆

深克隆

Objects类

包装类

StringBuilder

StringJoiner

BigDecimal


Object类

Object类是java中的祖宗类,因此,Java中所有的类的对象都可以直接使用object类提供的一些方法

Object类的常见方法:

public String toString() 返回对象的字符串类型    // 返回一坨字符串,应该是地址

public boolean equals(Object o) 判断两个对象是否相等 // 这里是比较地址

具体代码案例:

但是这个toString() 一般子类会对他进行重写

这样重写以后就能,返回我们定义学生对象的内容了

我们一般也会对equals()方法进行重写,为了比较两者的内容一不一样

这样我们就可以直接比较内容了

克隆

浅克隆

拷贝处的新对象,和元对象中的数据一摸一样(拷贝的只是地址)

深克隆

对象的基本类型的数据直接拷贝

对象中的字符串数据拷贝的还是地址

对象中还包含的对象,不会拷贝地址,会创建新对象

Objects类

public static Boolean equals(object a,object b)  这个方法先进行非空判断,再比较两个对象

public class test {public static void main(String[] args) {String a = "李小谦";String b = "李大谦";System.out.println(Objects.equals(a,b));}
}

public static Boolean isNULL(object a)

public static Boolean nonNULL(object a)

public class test {public static void main(String[] args) {String a = "李小谦";String b = "李大谦";System.out.println(Objects.isNull(a));System.out.println(Objects.nonNull(a));}
}

包装类

把基本类型的数据包装成对象

public class test {public static void main(String[] args) {Integer a2 = Integer.valueOf(12);System.out.println(a2);// 自动装箱机制,自动把基本类型的数据转换成对象Integer a3 = 12;// 自动拆箱,自动把包装类型的对象转换成对应基本数据类型int a4 = a3;// 泛型和集合不支持基本数据类型的使用ArrayList<Integer> List = new ArrayList<>();List.add(3);int rs = List.get(0);}
}

常见操作

可以把基本类型的数据转化成字符串类型

// 将基本类型的数据转换成字符串Integer a = 3;String rs1 = Integer.toString(a);System.out.println(rs1+1);String rs2 = a.toString();System.out.println(rs2+1);// 其实也不要那么麻烦,上面对我们的开发其实帮助不大String rs3 = a+"";System.out.println(rs3 + 1);

将字符串类型的数值转换成数值本身对应的数据类型

// 2.把字符串类型的数值转换成对应的基本类型String ageStr = "29";// int ageI = Integer.parseInt(ageStr);int ageI = Integer.valueOf(ageStr);System.out.println(ageI + 1);String scoreStr = "99.5";// double score = Double.parseDouble(scoreStr);double score = Double.valueOf(scoreStr);System.out.println(score+0.1);

StringBuilder

代表可变字符串对象,相当于一个容器,既然是一个容器我们要将这个容器对象构造出来,就需要我们的类中构造器

public StringBuilder()  创建一个空白的字符串对象,不包含任何内容

public StringBuilder() 创建一个指定字符串内容的可变字符串对象

 方法名称:

public StringBuilder append(任意类型)  添加数据并返回StringBuilder对象本身

public StringBuilder reverse() 将对象的内容反转

public int length()  返回对象内容长度

public String toString()  通过toString()就可以实现把StringBuilder转换成String

public class test {public static void main(String[] args) {StringBuffer s = new StringBuffer("李小谦");//1.拼接内容s.append(12);s.append("hhh");s.append(true);// 2. 支持链式编程s.append(666).append(666).append(666);System.out.println(s);// 3.反转操作s.reverse();System.out.println(s);//4.返回字符串的长度System.out.println(s.length());//5.把StringBuilder对象转换成String类型String rs = s.toString();System.out.println(rs);}
}

我们来区分一下StringBuilder对象和String对象

StringBuilder创建的字符串对象是可变的,它可以在它自己身上执行一些操作

String创建的字符串对象是不可变的,对它进行了一些操作之后,它不会变,会将执行操作后的字符串另外创建一个String对象赋给它,就像下面一样,我们执行replace代码想要改变string对象的,但是没有创建一个对象来接收,所以这行代码没有意义,a不会改变,操作后a还是a

StringJoiner

BigDecimal

public class test {public static void main(String[] args) {// 小数失真的问题double a= 0.1;double b = 0.2;double c = a+b;System.out.println(c);System.out.println("---------------------");// 1. 把他们变成字符串
//        BigDecimal a1 = new BigDecimal(Double.toString(a));
//        BigDecimal b1 = new BigDecimal(Double.toString(b));// 推荐用一下方式,把小数转化成字符串对象再得到BigDecimal对象使用BigDecimal a1 = BigDecimal.valueOf(a);BigDecimal b1 = BigDecimal.valueOf(b);BigDecimal c1 = a1.add(b1);System.out.println(c1);}
}

重点说一下除法,在两个BigDecimal对象进行相除的时候,如果除不尽就会报错,我们就需要给它进行小数精确的设置

public class test {public static void main(String[] args) {BigDecimal i = BigDecimal.valueOf(0.1);BigDecimal j = BigDecimal.valueOf(0.3);BigDecimal k = i.divide(j,2, RoundingMode.HALF_UP);System.out.println(k);// 将BigDecimal对象转换成double类型的数据double rs = k.doubleValue();System.out.println(rs);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/157455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

23111701[含文档+PPT+源码等]计算机毕业设计javaweb点餐系统全套餐饮就餐订餐餐厅

文章目录 **项目功能简介:****点餐系统分为前台和后台****前台功能介绍&#xff1a;****后台功能介绍&#xff1a;** **论文截图&#xff1a;****实现&#xff1a;****代码片段&#xff1a;** 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;77687156…

智能座舱架构与芯片- (8) 视觉篇

一、概述 相比起用于ADAS感知系统的摄像头&#xff0c;用于智能座舱内部的摄像头&#xff0c;其功能特性和性能要求相对简单。例如&#xff0c;OMS乘客监控摄像头&#xff0c;一般达到5MP即可有良好的效果。同时&#xff0c;OMS也可应用于车内会议系统&#xff0c;还应用于车内…

微服务 Spring Cloud 8,开源RPC框架如何选型?

目录 一、开源RPC框架有哪些&#xff1f;1、跟语言平台绑定的开源RPC框架2、跨语言平台的开源RPC框架 二、跟语言平台绑定的开源RPC框架 -- Dubbo1、Dubbo的架构主要包含四个角色2、Dubbo的调用框架是如何实现的&#xff1f; 三、如何选择&#xff1f;四、跨语言平台的开源RPC框…

UI for Apache Kafka

文章Overview of UI Tools for Monitoring and Management of Apache Kafka Clusters | by German Osin | Towards Data Science中介绍了8种常见的kafka UI工具,这些产品的核心功能对比信息如下图所示, 通过对比发现 UI for Apache Kafka 功能齐全且免费,因此可以作为我们的首…

Kubernetes容器状态探测的艺术

在Kubernetes集群中维护容器状态更像是一种艺术&#xff0c;而不是科学。原文: The Art and Science of Probing a Kubernetes Container[1] 在Kubernetes集群中维护容器状态更像是一种艺术&#xff0c;而不是科学。 本文将带你深入理解容器探测[2]&#xff0c;并特别关注相对较…

Linux安装ErLang(亲测可用)

注&#xff08;我这里安装完成后显示的是中文&#xff0c;有的是显示的英文&#xff09; 1.下载er wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm2.安装er yum -y install epel-release截图截不全&#xff0c;就只截安装完成的部分了 rp…

2023年中国语言大模型行业发展趋势分析:预计未来行业将迎来高速增长[图]

自然语言处理&#xff08;NLP&#xff09;大模型是一种利用深度学习技术来理解、解释和生成人类语言的高参数模型。语言大模型通过编码解码的方式模仿人类处理语言的过程从而达到进行自然语言文本输出的能力。 语言大模型主要组成部分 资料来源&#xff1a;共研产业咨询&#…

STM32出现 Invalid Rom Table 芯片锁死解决方案

出现该现象的原因为板子外部晶振为25M&#xff0c;而程序软件上以8M为输入晶振频率&#xff0c;导致芯片超频锁死&#xff0c;无法连接、下载。 解决方案 断电&#xff0c;将芯片原来通过10k电阻接地的BOOT0引脚直接接3.3V&#xff0c;硬件上置1上电&#xff0c;连接目标板&am…

3.9-Dockerfile实战

这一节介绍怎么将python程序打包成一个image&#xff0c;然后运行为一个container。 首先&#xff0c;创建/home/python/目录 mkdir /home/python/ 然后创建app.py文件。 vim app.py app.py文件的内容如下&#xff1a; from flask import Flaskapp Flask(__name__)app.route(…

解决收集问卷难的方法与策略:提升数据收集效率

随着社会的发展和科技的进步&#xff0c;问卷调查成为了获取信息和研究数据的重要手段之一。然而&#xff0c;面临的一个普遍难题是如何解决收集问卷困难的问题。无论是在学术研究、市场调研还是社会调查中&#xff0c;都存在着一些挑战和阻碍因素。本文将从不同角度探讨如何突…

B032-服务器 Tomcat JavaWeb项目 Servlet

目录 服务器服务器的认识 Tomcat服务器Tomcat服务器的介绍Tomcat的安装Tomcat报错的情况Tomcat要启动成功的条件 JavaWeb项目Web的项目结构发布项目的第一种方式发布项目的第二种方式 Eclipse中搭建动态Web项目eclipse安装Tomcat插件servletservlet示例servlet的执行流程servle…

同为科技(TOWE)工业连接器:保障高效、可靠、安全的电气连接

国内经济快速的发展&#xff0c;人们生活水平的不断提高&#xff0c;基础设施的建设是发展的基础&#xff0c;完善的基础设施对加速经济的发展起到至关重要的作用。其中&#xff0c;基础建设中机场、港口、电力、通讯等公共设施必须配套相应的电气设施&#xff0c;工业用插头插…

函数模板(成长版)

与普通函数区别&#xff1a;1.多了个template<class T>;2.某些确定类型变不确定类型T 一&#xff1a;引子&#xff1a; #include<iostream> using namespace std; template<typename T> T Max(T a, T b) {return a > b ? a : b; } int main() {int x, …

Mysql数据库 17.Mysql存储引擎

Mysql体系结构分为4层&#xff1a; 1.连接层 最上层是一些客户端和连接服务&#xff0c;包括大多数基于客户端/服务端工具实现的类似于TCP/IP的通信&#xff0c;主要功能是完成一些类似于连接处理、授权认证、安全方案等&#xff0c;在该层上还引入线程池的概念&#xff0c;为…

vue实现聊天栏定位到最底部(超简单、可直接复制使用)

原理 通过watch监听聊天内容的加载&#xff0c;一旦加载完成或者数据更新触发vue的数据监听时&#xff0c;就重新修改【滚动滑钮到滚动条顶部的距离滚动条的高度】&#xff0c;从而实现定位到底部的效果。 实现 1、布局 新建一个div&#xff08;聊天框&#xff0c;如下&…

微信收款助手消息不弹窗的解决办法

最近在做微信个人收款的回调&#xff0c;主要方法是根据通知栏截取收款信息&#xff0c;然后进行回调。 其中&#xff0c;发现一个问题&#xff0c;就是微信版本某次升级后&#xff0c;发现微信收款时不弹出消息了。 于是找到了这个解决方法&#xff0c;遇到相同问题的同学们…

Qt TCP相关的一些整理:服务端常见操作 socket 通信 network

目录 前言&#xff1a; 1、相关的库和类 2、服务端常用API 核心代码呈上&#xff1a; 前言&#xff1a; 在Qt的服务端上&#xff0c;不单单会用到服务端本身的API&#xff0c;对连接上来的客户端&#xff0c;也需要进行数据交互&#xff0c;也要用到一些收发包相关的…

代码随想录刷题】Day16 二叉树03

文章目录 1.【104】二叉树的最大深度&#xff08;优先掌握递归&#xff09;1.1 前言1.2 题目描述1.3 递归法java代码实现1.4 迭代法java代码实现1.5 相关练习题【559】N叉树的最大深度 2.【111】二叉树的最小深度&#xff08;优先掌握递归&#xff09;2.1 题目描述2.2 递归法ja…

力扣每日一题-美化数组的最少删除数-2023.11.21

力扣每日一题&#xff1a;美化数组的最少删除数 开篇 今天的力扣每日一题居然写出来了&#xff0c;好开心&#xff0c;迫不及待地把题目分享出来&#xff0c;希望你也能把它狠狠拿下。 题目链接: 2216.美化数组的最少删除数 题目描述 代码思路 创建一个list集合来保存数组&a…

c语言上机作业:给函数增加防御机制

1.题目 2.思路 1.首先&#xff0c;我们可以知道&#xff0c;我们必须先要把z求出来&#xff0c;但这里需要注意的是x&#xff0c;y并不包含了全部的定义域&#xff0c;所以我们必须先判断是否输入的数据满足条件。而这&#xff0c;就是我们所需要突破的函数的防御&#xff0c;…