Java--java.lang.Object

1.wait 和notify()/notifyAll()

  调用wait()和notify()之前必须获得对象锁,一般用在synchronized.调用wait()方法之后,线程便释放了对象的锁,必须重新获得对象锁

2.clone()  ->"shadow copy"  and "deep copy"

浅层复制与深层复制概念:

  浅层复制: 被复制的对象的所有成员属性都有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅层复制仅仅复制所考虑的对象,而不复制它所引用的对象。(概念不好理解,请结合下文的示例去理解)

  深层复制:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不是原有的那些被引用的对象。换言之,深层复制要复制的对象引用的对象都复制一遍

  

3.registerNatives() 作用:将C/C++中的方法映射到Java中的native方法,实现方法命名的解耦

时间: 2024-11-10 08:06:52

Java--java.lang.Object的相关文章

Java总结篇系列:java.lang.Object

从本篇开始,将对Java中各知识点进行一次具体总结,以便对以往的Java知识进行一次回顾,同时在总结的过程中加深对Java的理解. Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java中最基本的类java.lang.Object开始谈起. Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起.作为其他所有类的基类,Object具有哪些属性和行为, 是Java语言设计背后的思维体现. Object类位于java.lang包中,java.lang包包

java.lang.Object 之 clone() 使用

Java的所有类都默认继承 java.lang.Object 类,在 java.lang.Object 类中有一个方法 clone().JDK API的说明文档解释这个方法将返回Object对象的一个拷贝.要说明的有两点:一是拷贝对象返回的是一个新对象,而不是一个引用.二是拷贝对象与用 new操作符返回的新对象的区别就是这个拷贝已经包含了一些原来对象的信息,而不是对象的初始信息.对于Java中使用 clone() 方法有几点需要注意 1:被clone的类必须实现 Cloneable 接口,Clo

java.lang.Object

java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. Object类是Java中唯一没有父类的类. 其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法. Object类中的方法 构造方法:public Object() 文档中的类概览: Java中的每个类都具有定义在Object类中的这些方法. protected Object clone() Creates and returns

java 数组的 toString 方法和 equals 方法以及 java.lang.Object 对象的 toString 方法和 equals 方法

1 public class Test { 2 public static void main(String[] args) { 3 int[] a = {1, 2, 4, 6}; 4 int[] b = a; 5 int[] c = {1, 2, 4, 6}; 6 7 //下面这个方法打印的是a数组的引用地址 8 System.out.println(a.toString()); 9 //下面这个方法比较的是两个数组的引用是否相等 10 System.out.println("a.equals

Java.lang.Object.clone()分析

首先,看一下源码: 1 public class Object { 2 protected native Object clone() throws CloneNotSupportedException; 3 } 由源代码我们会发现: 第一:Object类的clone()方法是一个native方法,native方法的效率一般来说都是远高于Java中的非native方法.这也解释了为什么要用Object中clone()方法而不是先new一个类,然后把原始对象中的信息复制到新对象中,虽然这也实现了c

深入研究java.lang.Object类

一.概述:       Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类.      可以使用类型为Object的变量指向任意类型的对象.      Object类有一个默认构造方法pubilc Object(),在构造子类实例时,都会先调用这个默认构造方法.      Object类的变量只能用作各种值的通用持有者.要对他们进行任何专门的操作,都需要知道它

解决 java/lang/NoClassDefFoundError: java/lang/Object 错误

安装完JDK ,设定环境变量后出现这个错误: [[email protected] lib]# javacError occurred during initialization of VMjava/lang/NoClassDefFoundError: java/lang/Object [[email protected] lib]# javaError occurred during initialization of VMjava/lang/NoClassDefFoundError: jav

type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds int,java.lang.Object

今天在进行代码检查的时候出现下面的异常: 1 type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds int,java.lang.Object 当时的第一感觉就是代码因为jdk版本太低引起的. 因为最后咨询了配置管理组的同事,确实发现是因为我本地jdk用的是1.7版本,而代码检查机器上用的是jdk1.6版本.因此出现

eclipse中java文件报错:The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files

问题:The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files 大概意思就是.class文件引用错误, 联想一下 编译出了问题, JRE问题. 解决办法:先在Java Bulid Path中把所有的JRE先remove掉,然后重新引入JRE即可.( 右键工程 > Build Path > Configure Build Path > )

The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files

在用eclipse开发中,有时候需要导入别人的项目进行学习研究偶尔会出现代码无端端显示一大推错误,甚至连包名都出错的情况,这是后把鼠标移动到包名,系统就会弹出The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files的提示 原因是jdk出错. 解决方法是:更换一个jdk,操作步骤:project->properties->Java Bulid Path