一.前景提要 Object类中定义有public String toString()方法,其返回值是 String 类型. 二.默认返回组成 类名+@+16进制的hashcode,当使用打印方法打印的toString()默认就是返回整个格式 三.场景 很多时候默认的返回,无法让人直观的看到对象的数据和结构类型,所以,一般重写其toString()方法,打印或输出需要的信息 四.实例重写 重写代码 @Override public String toString() { return "User{…
public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; int[] c = {1, 2, 4, 6}; //下面这个方法打印的是a数组的引用地址 System.out.println(a.toString()); //下面这个方法比较的是两个数组的引用是否相等 System.out.println("a.equals(b):"+a.equals(b…
1. 需要实现接口java.lang.Cloneable 2. 重写java.lang.Object的clone 3. clone访问权限扩大为public 4. 不实现(java.lang.Cloneable)接口,重写clone编译通过,调用会抛出CloneNotSupportedException异常 5. 不重写clone方法,采取反射调用clone方法,不一定成功克隆对象…
一.数组基础 1.定义和特点 数组也可以看做是对象,数组变量属于引用类型,数组中每个元素相当于该队形的成员变量,数组对象存储在堆中. 2.初始化数组 常用类初始化 // 整型初始化 int[] integerInitialization = new int[10]; 对象初始化 // 对象初始化 User[] usersInitialization = new User[10]; 3.数组赋值 动态初始化(根据数组角标) // 整型初始化 int[] integerInitialization…
Vector 向量 Vector简述 1).Vector底层是用数组实现的List 2).虽然线程安全,但是效率低,所以并不是安全就是好的 3).底层大量方法添加synchronized同步标记,synchronized检查对象是否添加了对象的对象锁 4).容器对象,需要多个线程共享的时候,考虑使用Vector 5).实际使用情况不多,一般笔试面试中会问到差异性 Vector与ArrayList.LinkedList简单区分 需要线程安全时,使用Vector 不存在线程安全问题时,并且查找较多用…
一.实现get方法 1.一般思维实现思路 1).将对象的值放入一个中间变量中. 2).遍历索引值,将中间量的下一个元素赋值给中间量. 3).返回中间量中的元素值. 4).示意图 get(2),传入角标,循环两次获取到[1]元素,如图. 2.实现思路实现 1).核心方法 /** * 最基本的写法 * * <p>按照角标循环元素,获取最后一个元素的值</p> * * <p>存在问题:效率不高</p> * * @param index 元素的角标 * @retur…
本系列博客将对JDK1.8版本的相关类从源码层次进行介绍,JDK8的下载地址. 首先介绍JDK中所有类的基类——java.lang.Object. Object 类属于 java.lang 包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入.Object 类是所有类的基类,当一个类没有直接继承某个类时,默认继承Object类,也就是说任何类都直接或间接继承此类,Object 类中能访问的方法在所有类中都可以调用,下面我们会分别介绍Object 类中的所有方法. 1.Object…
想要深入学习JAVA,还需追本溯源,从源码学起.这是我目前的想法.如今JAVA各种开源框架涌出,很多JAVA程序员都只停留在如何熟练使用的层次.身为其中一员的我深感惭愧,所以要加快学习的脚步,开始研究源码.希望这个系列我可以坚持下去. JAVA程序员都知道Object是所有类的父类,所以,今天就从Object开始记录我的源码之路. 网上有很多关于Object类的详解,这里我只总结一点我所学到的,算是做个记录吧. 首先要看Object.class中的几个方法: private static nat…
现在做一下记录,这个看了两天,看的过程发现了很多c++的高级特性,没接触过,还得慢慢撸,禁止很慢 那么现在开始 吧 先打两个断点 java.c:351 JavaMain(void * _args) { JavaMainArgs *args = (JavaMainArgs *)_args; 文件加载的断点 systemDictionary.cpp:1289 instanceKlassHandle SystemDictionary::load_instance_class(Symbol* class…
安装完JDK ,设定环境变量后出现这个错误: [root@localhost lib]# javacError occurred during initialization of VMjava/lang/NoClassDefFoundError: java/lang/Object[root@localhost lib]# javaError occurred during initialization of VMjava/lang/NoClassDefFoundError: java/lang/…