首页 > 编程语言 >javaSE13-- API_常用类--默认继承Object--toString()--==与equals()[详解]

javaSE13-- API_常用类--默认继承Object--toString()--==与equals()[详解]

时间:2022-10-28 12:31:07浏览次数:50  
标签:abc String -- Object equals 对象 name


API_常用类

API应用程序编程接口

API文档

是对Java预定定义的类或接口功能和方法功能的说明文档,目的是提供给开发人员进行使用帮助说明

默认继承Object,

Java中所有类没有显示的继承类,默认继承Object,因为要实现多态(Object类型,可以表示任何类型)

public class ObjectDemo extends Object{

public static void main(String[] args) {

ObjectDemo obj = new ObjectDemo();

int[] a = new int[5];//数组也是继承了Object
a.hashCode();
}

toString();

输出对象时:会自动调用对象中的toString();如果对象中没有,则会调用Object类中的toString(),对象中的hashCode值转为16进制

return getClass().getName() + "@" + Integer.toHexString(hashCode());

我们为了显示更简单 ,可以在子类中重写toString(),从而调用子类中的.

public class Person extends  Object{

String name;
int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
        Person p = new Person("jim",18);

System.out.println(p);
System.out.println("info==="+p);

输出

Person{name='jim', age=18}
info===Person{name='jim', age=18}

==与equals()

  1. java基本类型
  2. 比较包装类型
  3. 比较String类型
  4. 比较对象

Java基本类型

  • byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。

比较包装类型

  • ==基本类型比较的就是具体的值.
  • ==再对引用类型进行比较的时,比较的时引用的对象地址是否相同
  • equals()一般类重写Object类中equals(),他们有自己的方式,比较的时对象中包含的类容(仅限类容)是否相同
= new String("abc");
String s2 = new String("abc");
// == 基本类型比较的就是具体的值
// == 再对引用类型进行比较时,比较的是引用的对象地址是否相同
System.out.println(s1==s2);

//一般类都重写Object类中equals(), 他们有自己的实现方式,比较的是对象中包含的内容(具体值)是否相等
System.out.println(s1.equals(s2));

输出

false
true

附件:equals源码

public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}

比较String类型

==比较的是内存地址,equal比较的是值

= new String("abc");
String s4 = new String("abc");
System.out.println(s3==s4);//false
System.out.println(s3.equals(s4));//true


String s1 = "abc";
String s2 = "abc";
System.out.println(s1==s2);//true
System.out.println(s1.equals(s2));//true

String类

Java中所有字符串,都是String类的对象,值一旦给给定就不能改变,一旦修改描绘重新创建一个新的对象

两种创建方法:

  1. String s = “abc”;
    第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在**字符串常量池中,**如果没有则在堆中创建一个String对象object,
    第二次创建时,常量池已经存在,直接让引用变量指向已有的字符串对象
  • 特点
    jvm会自动根据栈中数据的实际情况来决定是否有必要创建新对象
  1. String s = new String(“abc”)
    一概在队中创建新对象,而不管其字符串值是否相等,是否有必要创建新对象。


标签:abc,String,--,Object,equals,对象,name
From: https://blog.51cto.com/u_15850876/5804362

相关文章

  • 907. 子数组的最小值之和
    907.子数组的最小值之和给定一个整数数组arr,找到min(b) 的总和,其中b的范围为arr的每个(连续)子数组。由于答案可能很大,因此返回答案模10^9+7。示例一输......
  • Linux使用ifconfig命令没有显示ens33或者没有ip地址
    1.首先win+R输入services.msc进入服务窗口,看一下服务有没有启动2.修改网络配置文件ONBOOT修改为yesvi/etc/sysconfig/network-scripts/ifcfg-ens33---进入配置文件3......
  • Dapr实现.Net Grpc服务之间的发布和订阅,并采用WebApi类似的事件订阅方式
    大家好,我是失业在家,正在找工作的博主Jerry,找工作之余,总结和整理以前的项目经验,动手写了个洋葱架构(整洁架构)示例解决方案OnionArch。其目的是为了更好的实现基于DDD(领域驱......
  • uniapp打包h5
    1.找到项目中 manifest.json---H5 配置---运行时的基础路径, 将路径修改为相对路径(./) 注意:1.运行的基础路径系统默认打包路径为绝对路径,如不改,打包时找不到......
  • 【随手记录】 关于nginx请求500错误 - CreateFile() "/temp/client_body_temp/0000000
    这几天一位前端同事在处理上传请求时候nginx返回500错误,没有额外错误信息,后端也没有接收到请求,看他本地nginx日志错误:[crit]28700#21636:*1389CreateFile()"\nginx-......
  • Django 删除models 中的表
    在models中创建了表,但是又要大改,本想着直接在mysql中删除表后再次makemigrations但发现这样子操作后,进行objects.create操作,发现报错,部分字段不在表中, ......
  • 第6章上 梯度下降法
     6-1什么是梯度下降法                       ......
  • sb合集
    开个坑,记录一些自己的sb错误。\(\text{Thinktwice,Codeonce.}\)用std::set装Node的时候要谨慎,因为如果两个Node不一样但是operator==判断他们相等,那么......
  • Wireshark的基本配置
    1.打开Wireshark的首页,双击指定的网卡接口进行数据包捕获      2.数据包捕获页面           3.混杂模式和普通模式1.混杂模式......
  • 测试有哪些最高原则
    测试原则是一个测试人员时刻要铭记在心的,甚至要形成一种本能,指导测试工作。原则1:测试找不出所有的Bug软件的复杂性仅次于生命体,甚至现在很多软件都已经有了人工智能的属......