java 常用类库:Object类和Objects类
1,Object类:
2,Object常用方法:
(1),boolean equals(Object obj):
(2),protected void finalize():
(3),String toString():
3,对象克隆:clone()
自定义类实现克隆的步骤:
package com.zmd.common_class_libraries; import java.util.Objects; /**
* @ClassName CloneTest
* @projectName: object1
* @author: Zhangmingda
* @description: XXX
* date: 2021/4/6.
*/
public class CloneTest {
private static class Address {
String Detail; public Address(String detail) {
Detail = detail;
}
}
private static class User implements Cloneable{
private int age;
private Address address; public User(int age) {
this.age = age;
this.address = new Address("河北承德");
}
//重写clone方法返回User对象,返回值需要强制转换一下:(User)
@Override
protected User clone() throws CloneNotSupportedException {
return (User)super.clone();
}
}
//测试方法
public static void main(String[] args) throws CloneNotSupportedException { User user = new User(18);
User user1 = user.clone();
System.out.println(user == user1);
System.out.println(user.address == user1.address);
System.out.println(user.age == user1.age); }
}
克隆对象内存示意图图:
上面这个方式其实就是一个浅克隆,就是简单的堆对象的各个变量进行了复制,如果是引用变量类型,实际上指向的还是同一个内存地址。
3,Objects类:
User user = null;
/**
* 报错空指针异常
System.out.println(user.address);
System.out.println(user.hashCode());
System.out.println(user.toString());
*/
//使用Objects类获取null对象的Object的方法
System.out.println(Objects.hashCode(user)); //返回0
System.out.println(Objects.toString(user)); //返回null
//使用Objects工具类创建User对象,设置不允许对象为null并且设置错误提示。
User user1 = Objects.requireNonNull(user,"User不允许为null");
java 常用类库:Object类和Objects类的更多相关文章
- Java常用类库--观察者设计模式( Observable类Observer接口)
如果要想实现观察者模式,则必须依靠java.util包中提供的Observable类和Observer接口. import java.util.* ; class House extends Obse ...
- Java常用类库API之数字处理工具类
数字处理工具类BigDecimal和DecimalFormat Java提供的java.text.DecimalFormat类,帮助我们用最快的速度将数据格式化为我们想要的样子.例如,取两位小数 im ...
- JAVA(三)JAVA常用类库/JAVA IO
成鹏致远 | lcw.cnblog.com |2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不 ...
- Java 常用类库与技巧【笔记】
Java 常用类库与技巧[笔记] Java异常体系 Java异常相关知识 Java在其创立的时候就设置了比较有效的处理机制,其异常处理机制主要回答了三个问题:what,where,why what表示 ...
- Google的Java常用类库 Guava资料
java的人应该都知道Apache commons的java常用类库吧,这个Guava和commons一样,封装出一套比jdk本身提供的常用类库强大.既然有了这个这么强大的类库,我们就没必要重复造轮子 ...
- Java 常用对象-Object类
2017-10-31 23:42:08 Object类:类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法. 或者说,每个类都直接或者间 ...
- java 常用类库:操作系统System类,运行时环境Runtime
System类: System 类代表Java程序的运行平台,程序不能创建System类的对象, System类提供了一些类变量和类方法,允许直接通过 System 类来调用这些类变量和类方法. Sy ...
- 谈谈Java常用类库中的设计模式 - Part Ⅱ
概述 本系列上一篇:建造者.工厂方法.享元.桥接 本文介绍的设计模式(建议按顺序阅读): 适配器 模板方法 装饰器 相关缩写:EJ - Effective Java Here We Go 适配器 (A ...
- JAVA常用类库简介(转)
Java编程语言中为方便学习者学习,编制了许多类,这些类已经经过测试,都是我们编程的基础.如果不利用这些已存在的类,我们的编程工作将变得异常复杂并且效率低下.所以我们应尽可能多的掌握Java基本类库的 ...
随机推荐
- JavaSE复习巩固
第二天:复习if语句,扫描器,switch语句,循环语句 1.if语句---流程控制语句 if之前学的语句是顺序结构 1.1 单个if的语法结构 if(条件判断){ 满足条件需要做的事情: } int ...
- fluidity install on Cluster
fluidity install on Cluster 1.编译器安装 gcc4.6 openmpi python HOME_PATH= /hpcdata1/xiaozhong/ 1.1.gmp &a ...
- 【基因组组装】HiC挂载Juicebox纠错补充
目录 1. 主要纠错类型 misjoins translocations inversions chromosome boundaries 2. 其他有用操作 撤销与反撤销 移到边角料 1. 主要纠错 ...
- Perl语言入门10-13
----------第十章 其他控制结构---------------- unless结构 unless($fred =~ /\A[A-Z_\w*\z]/i){print "yes" ...
- MariaDB——简介
一.MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同.是MySQL的代替品. MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能.存储引擎以及一些新 ...
- selenium+chrome抓取数据,运行js
某些特殊的网站需要用selenium来抓取数据,比如用js加密的,破解难度大的 selenium支持linux和win,前提是必须安装python3,环境配置好 抓取代码: #!/usr/bin/en ...
- 【Linux】CentOS下升级Python和Pip版本全自动化py脚本
[Linux]CentOS下升级Python和Pip版本全自动化py脚本 CentOS7.6自带py2.7和py3.6 想要安装其它版本的话就要自己重新下载和编译py其它版本并且配置环境,主要是软链接 ...
- The Go tools for Windows + Assembler很好玩
我想用python做个tiny BASIC编译器.赋值和加减乘除,IF和FOR. 语法分析python有ply包,用ply.lex和ply.yacc做个计算器很简单,我已经做了. 做个解释器应该也不难 ...
- 一个神奇的JS混淆,JSFuck!
JSFuck,整体由6个字符[, ], (, ), !, +组成,但却是可以正常运行的JS代码,JSFuck程序可以在任何Web浏览器或引擎中运行解释JavaScript! 看一段代码,源代码为:do ...
- js中!!的妙用
0.-0.null."".false.undefined 或者 NaN转化为false,其他为true