java8类库简单了解(一)Object

java核心类库 Java 核心类库中常用类和工具类的实现和实践。 阅读详情

这里主要了解如下几个类:

java.lang 包

这个包称为 java 语言包,是由编译器自动引入的。程序中不必用 import 语句就可以使用。它所包含的类和接口对所有实际的 Java 程序都是必要的。

1.       object 类

2.       数学类 (Math)

3.       数据类型类

4.       线程类

5.       字符串类 (String 类和 StringBuffer 类 )

6.       系统及运行类 (System 类和 Runtime 类 )

7.       错误和异常处理类 (Throwable 、 Exception 、 Error)

8.       过程类 (process)

java.util 包

1. 日期类、日历类( Data 、 Calendar 、 GregorianCalendar )

2. 随机数类( Random )

3. 位运算类( BitSet )

4. 矢量类( Vector )

5. 数据结构类( Stack )

6. 散列表类( Hashtable )

7. StringTokenizer类

一、

这里直接在源码进行注释,如下:

/*
 * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package java.lang;

/**
 * Class {@code Object} is the root of the class hierarchy.
 * Every class has {@code Object} as a superclass. All objects,
 * including arrays, implement the methods of this class.
 * 类{Object}是类层次结构的根。每个类都有{Object}作为父类。所有的对象,包括数组,会实现这个类的方法。
 *
 * @author  unascribed
 * @see     java.lang.Class
 * @since   JDK1.0
 */
public class Object {

	/**
	为了使JVM发现您的本机功能,他们被一定的方式命名。例如,对于java.lang.Object.registerNatives。
	通过使用registerNatives(或者更确切地说,JNI(Java Native Interface)函数RegisterNatives),您可以命名任何你想要你的C函数。
	JNI允许Java代码使用以其他语言编写的代码和代码库。
	native表示该方法的实现java本身并没有完成,而是有c/c++来完成,形成.dll文件。
	*/
    private static native void registerNatives();
    static {
        registerNatives();
    }

    /**
		这个方法主要是获得该类的完整名称。
     */
    public final native Class<?> getClass();

    /**
     * Returns a hash code value for the object. This method is
     * supported for the benefit of hash tables such as those provided by
		这个方法native修饰,java本身不实现,由c/c++来实现,具体根据所依赖的平台来。返回该对象的哈希值
     */
    public native int hashCode();

    /**
	这个方法返回一个boolean类型。该方法主要是比较两个对象是否是同一个。而比较的不是对象本身,而是对非NULL对象的引用。
	这个方法具有自我性,对称型,传递性,一致性。
	自我性体现在:如果x.equals(x),那么在x不为空的前提下,那么返回true,否则抛出NullPointorException。
	对称型体现在:如果x和y相等,那么y和x也相等。
	传递性体现在:如果x==y,y==z,那么x==z。
	一致性体现在:如果x==y为true,那么只要不修改,后面无论调用多少次,一致为true。
	而且特别要注意的一点是:一个非空对象和null值比较,那么一定返回false。
	如果要对equals方法进行overide重写,那么一定要保证相同对象拥有同样的hash值。
     */
    public boolean equals(Object obj) {
        return (this == obj);
    }

    /**
	快速创建一个已有对象的副本
	Object类的clone()方法是一个native方法,native方法的效率一般来说都是远高于Java中的非native方法。
	Object.clone()方法返回一个Object对象。我们必须进行强制类型转换才能得到我们需要的类型。
	引申:
	1、
	Person p = new Person(23, "zhang"); 
	Person p1 = p;    
	System.out.println(p); 
	System.out.println(p1); 
	打印出来:
	com.pansoft.zhangjg.testclone.Person@2f9ee1ac
	com.pansoft.zhangjg.testclone.Person@2f9ee1ac
	打印的地址值是相同的,那么肯定是同一个对象。p和p1只是引用而已,这种现象叫做引用的复制。
	2、
	Person p = new Person(23, "zhang"); 
	Person p1 = (Person) p.clone(); 	   
	System.out.println(p); 
	System.out.println(p1); 
	打印出:
	com.pansoft.zhangjg.testclone.Person@2f9ee1ac
	com.pansoft.zhangjg.testclone.Person@67f1fba0
	两个对象的地址是不同的,也就是说创建了新的对象,然后将属性值复制到新对象,是拷贝
	3、
	Person p = new Person(23, "zhang"); 
	Person p1 = (Person) p.clone();    
	String result = p.getName() == p1.getName()  
			? "clone是浅拷贝的" : "clone是深拷贝的";    
	System.out.println(result);
	打印出:clone是浅拷贝的
	name是String类型,它只是一个引用,那么对这个属性的拷贝有两种方式:复制引用,或者拷贝(创建新对象)。测试证明clone对象时,对象非基本数据类型属性是复制引用
     */
    protected native Object clone() throws CloneNotSupportedException;

    /**
	toString 方法会返回一个“以文本方式表示此对象”的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
     */
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }


    /**唤醒在此对象监视器上等待的单个线程。*/
    public final native void notify();

    /**唤醒在此对象监视器上等待的所有线程。*/
    public final native void notifyAll();

	
	/**在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。*/ 
    public final native void wait(long timeout) throws InterruptedException;

	/** 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。*/
    public final void wait(long timeout, int nanos) throws InterruptedException {
        if (timeout < 0) {
            throw new IllegalArgumentException("timeout value is negative");
        }

        if (nanos < 0 || nanos > 999999) {
            throw new IllegalArgumentException(
                                "nanosecond timeout value out of range");
        }

        if (nanos > 0) {
            timeout++;
        }

        wait(timeout);
    }

  
    /**Thread对象调用wait()方法就是这个。
	在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。换句话说,此方法的行为就好像它仅执行 wait(0) 调用一样。   
	当前线程必须拥有此对象监视器。该线程发布对此监视器的所有权并等待,直到其他线程通过调用 notify 方法,或 notifyAll 方法通知在此对象的监视器上等待的线程醒来。
	然后该线程将等到重新获得对监视器的所有权后才能继续执行。*/
    public final void wait() throws InterruptedException {
        wait(0);
    }

    /**
	finalize()方法:垃圾回收器准备释放内存的时候,会先调用finalize()。
  (1).对象不一定会被回收。
    (2).垃圾回收不是析构函数。析构函数定义主要是针对c++,往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。
    (3).垃圾回收只与内存有关。
    (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪费时间进行垃圾回收的。
     */
    protected void finalize() throws Throwable { }
}


Java 8增强的工具类-Arrays java-for 立即下载

相关推荐

国产谷歌地球,地形分析秒杀同款地图软件

咱们做地质、林业、水文、水利、电力、GIS、地图、水保、环境的,需要经常用到各种数据,比如影像、地形、矢量、模型等,但目前80%的规划大数据展示都离不开ArcGIS,令人头大的是很多朋友连ArcGIS软件安装起来都费劲。。。 那不会ArcGIS又装不了Google Earth怎么开展工作? 今天推荐大家一款国产免费专业地图浏览下载测量分析神器—图新地球 图新地球,国产三维gis软件。可以查看高清卫星影像地形以及其他很多常用电子地图,对地图需求的掌握远胜过Google Maps,而且上手比国外软件要简单

GISWorld3D的博客 3685

Java基础汇总(十一)——Java8新特性

Java基础汇总(十一)——Java8新特性

weixin_45864705的博客 706

MySQL 优化 - index_merge 导致查询偶发变慢

今天遇到了一个有意思的问题,线上数据库 CPU 出现了偶发的抖动。定位到原因是一条查询语句偶发变慢造成的,随后通过调整表中的索引解决。优化器通过某种机制检测到 index_merge 能带来性能提升,某些情况下不会带来提升,反而会耗费更长的时间,属于优化器的缺陷,可以通过调整表中的索引来解决。

分享既学习 1255

java基础类库

java程序的基本类object、string、stringbuilder

neodke的博客 540

MMDetection框架入门教程(完全版)

  网上MMDetection的教程看似有很多,但感觉都不成系统,看完一圈下来还是不知道MMDetection要怎么用。这里还是推荐直接跟着官方教程,结合源码学习MMDetection,相关链接汇总如下: 官方教程 - MMCV 官方教程 - MMDetection 官方教程 - 不得不知的 MMDetection 学习路线(个人经验版) 西安交大课件 - mmdetection教程(使用篇)   本文会介绍如何在MMDetection中从头开始搭建一套属于自己的算法。前几篇博客算是本人学习过...

Sual 10万+

音频测试专题

麦克风与扬声器单体测试指标及整机性能测试概述 麦克风测试指标包括频率响应、灵敏度、指向性等10项关键参数,用于评估声音捕捉和信号转换性能。扬声器测试包含频率响应、灵敏度等12项指标,涉及声学特性和物理参数。整机性能测试覆盖安静、嘈杂和正常三种环境,重点检测麦克风底噪、清晰度、扬声器音量及通话质量等12项功能指标。两类单体测试与整机测试共同构成完整的音频设备质量评估体系,确保产品在不同场景下的性能表现。

weixin_52640906的博客 1317

Java——常用类库

Collections接口是集合层次框架的跟接口,是存储单一对象的集合(即每个位置保存的是单一的对象)。1、Collections接口有两个直接扩展的子类:List和SetList接口里存放的集合元素是有顺序的、可以重复的,该接口常用的实现类主要有ArrayList、Vector(顺序储存,支持元素的快速访问,但是插入、删除速度慢),LinkedList(链式储存,元素插入、删除性能好);

2302_79062950的博客 3429

USRP X410 MPM版本与主机UHD版本不匹配问题记录与解决

至此大功告成!之前安装软件的坑算是填起来了,再次记录一下,希望能帮到有同样问题的小伙伴~

yanzuwu233的博客 1435

java8----object类

java8----object类 Java 的API 了解object类之前,要先知道java的API(API: Application(应用) Programming(程序) Interface(接口)) java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要知道这些类如何使用即可。 而这些java类的源文件可以在src.zip...

weixin_45686974的博客 687

线性代数学习笔记(十)——矩阵运算(二)

本篇笔记讲解矩阵的幂运算和矩阵的转置,其中矩阵进行幂运算的前提是矩阵为方阵,矩阵幂运算的两条性质与数的幂运算规则类似;矩阵转置的定义与行列式转置类似,但要注意由于矩阵的行数和列数不同,所以转置之后行数和列数变换。

li2008kui的专栏 1万+

USB_TYPE-C 母座电路设计

本文详细介绍了USB Type-C接口(C2765186)的电路设计要点,重点解析了电源、识别和数据三部分的关键连接方案。电源部分需并联VBUS和GND引脚并加宽走线以承载3A电流;识别部分必须为CC1/CC2引脚配置5.1kΩ±1%精度的下拉电阻,这是触发PD充电的核心条件;数据部分通过短接正反插引脚实现盲插功能。文档还提供了完整的引脚对照表,并强调PCB布局需注意ESD防护、差分走线阻抗控制等要点,为Type-C接口设计提供了实用指导。

在读研究生,FPGA电路设计与功能开发。 585

java8常用类源码解析之Object

/* * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * 1994-2012版权归属Oracle及其附属机构,保留所有权利。 * Orac

qq_39465296的博客 426

Python3+PCAN-USB基于PCAN-Basic二次开发实现上位机功能

一、环境搭建 1.概述 本文主要是通过Python3与CAN总线工具PCAN-USB基于官方PCAN-Basic库实现CAN总线消息读写功能。 2.PCANBasic.py和PCANBasic.dll下载地址 https://www.peak-system.com/fileadmin/media/files/pcan-basic.zip 3.Python安装 下载地址:https://www.p...

测试领域技术分享 5185

java调用C#类库,java调用dll文件,超详细过程,理清步骤之后非常简单。

java调用C#类库,java调用dll文件,超详细过程。

weixin_46801673的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

作为一名Java程序员,这8个锦囊你不得不知道啊!!!!!

成为一名优秀的 Java 开发者

沉默王二 8251

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java常用类库

Java常用类库的应用。

golove666的博客 1718

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java类库介绍_JAVA基本类库介绍

我们曾经讲过,Java已经为编程者编制了许多类,这些类已经经过测试,基本上不存在错误,这些类都是我们编程的基础。如果不利用这些已存在的类,我们的 编程工作将变得异常复杂,所以我们应尽可能多的掌握Java基本类库的内容。这一章和下一章将向读者介绍Java基本类库的结构和一些常用类以及如何参考 Java技术文档,让读者能进一步提高自己学习重点● 包的概念● java.lang中的几个基本类● 如何查阅...

weixin_34118593的博客 868

java 数学 类库_java8类库简单了解(二)Math

这里笔者注意和好奇的方法是:addExact(),subtractExact(),multiplyExact(),incrementExact(),decrementExact(),negateExact(),toIntExact这几个是java8新增的方法,如果调用就简单规避了基本数据类型转换时的溢出问题。摘录部分源码:package java.lang;import java.util.Ran...

weixin_36338813的博客 426

Java 常用类库(20种)

一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车。《Effective Java》的作者Joshua Bloch曾经说过:“建议使用现有的API来开发,而不是重复造轮子”。在本文中,我将分享一些Java开发人员应该熟悉的最有用的和必要的库和API。顺便说一句,这里不包括框架,如Spring和Hibernate因为他们非常有名,都有特定的功能。 本文总结了日志、JSON解析、单测、X...

天空之城的博客 8761

【Java校招面试】基础知识(一)——Java常用类库

基础知识”是本专栏的第一个部分,本篇博文是第一篇博文,主要介绍Java中的常用类库。1. 编程时常用的2. 面试时常考的3. 笔试时做题可以走捷径的。

石沉溪洞 1174

java的类库介绍

Java 提供了一个丰富的标准库,其中包含了许多基础类库来帮助开发者进行常见任务。这些类库可以处理数据结构、输入输出、网络编程、日期时间、字符串操作等多种功能。Java 的基础类库提供了各种工具和功能,极大地简化了开发者的工作,包括数据结构、输入输出、日期处理和网络通信等阅读~~ ,你的支持,是我创作的最大动力!~~

weixin_50055999的博客 932

JAVA类库

Java基础类库 概念:代码重用是面向对象程序设计的一个最著优势、生成可重用、可继承的类可以节省大量的时间和精力, 大大提高编程效率。Java把代码重用作为实现的核心,提供许多可为Java编程使用的标准对象,这些标准的Java对象统一称作Java类库。 Java类库结构: 从功能上划分:语言类库、输入输出类库、实用程序类库和applet类库、图形用户接口awt类库、网络类库 基础类库: import java.lang.; import java.io.; import java.util.*; 1) 语言

马农莎的博客 1018

java提供了丰富的类库_Java核心技术梳理-基础类库

一、引言Oracle为Java提供了丰富的基础类库,Java 8 提供了4000多个基础类库,熟练掌握这些基础类库可以提高我们的开发效率,当然,记住所有的API是不可能也没必要的,我们可以通过API文档或直接网上搜索来逐渐熟悉大部分类的功能和方法,下面我们来学习一些基础类库。二、ScannerScanner类可以很方便的获取用户的键盘输入,是一个基于正则表达式的文本扫描器,可以从文件、输入流、字符...

weixin_39813200的博客 665

java 8 update 51_Java8 (JRE) Update

51下载网提供Java运行环境《Java8 (JRE) Update》 安装版下载,该软件为免费软件,文件大小为137 MB,推荐指数4颗星,作为国外软件中的顶尖厂商,完全可以放心下载哦!JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JRE软件功能简介JRE为Java Runtime Envi...

weixin_26901145的博客 1444

Java 核心类库一览

作者:白色蜗牛来源:蜗牛互联网阅读本文你将收获:类库与 JAR 文件什么是类库我们知道,在面向对象的程序设计里,一个类是可以调用另外一个类的方法,只要把被调用的那个类引入到 classp...

程序员蜗牛 3045

Java中最基础的类库是什么_Java核心技术梳理-基础类库

Java核心技术梳理-基础类库发布时间:2019-04-24 08:23,浏览次数:127, 标签:Java一、引言Oracle为Java提供了丰富的基础类库,Java 8提供了4000多个基础类库,熟练掌握这些基础类库可以提高我们的开发效率,当然,记住所有的API是不可能也没必要的,我们可以通过API文档或直接网上搜索来逐渐熟悉大部分类的功能和方法,下面我们来学习一些基础类库。二、Scanner...

weixin_35672512的博客 253
上一篇: java多线程初探(一)构建线程安全类
下一篇: java8类库简单了解(二)Math
gcc_front
博客等级 码龄9年 16粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值