java基础入门-预定义类与自定义类
预定义类与自定义类
先上代码
<span style="font-size:14px;">package com.ray.object;import java.util.Date;/*** 预定义类与自定义类* * @author ray* @since 2015-04-22* @version 1.0* */ public class Person {public static void main(String[] args) {Person bill = new Person();Person jack = new Person();System.out.println(bill.equals(jack));Date date1 = new Date();Date date2 = new Date();System.out.println(date1.equals(date2));}} </span>
输出结果:
false
true
从上面的输出结果可以看见,
1.自定义类Person实例化后,指向两个不同的对象,也可以说指向不同的内存块
2.预定义类Date实例化后,指向的是同一个对象,也就是说指向同一个内存块
为什么?
在这里我就需要说一下jvm的加载机制
启动(Bootstrap)类加载器:引导类装入器是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib 下面的类库加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。可以通过System.out.println(System.getProperty("sun.boot.class.path"));得到启动类加载器可以加载的路径,一般将java class文件(不是jar包)放在<Java_Runtime_Home>/classes路径中将会被启动类加载器加载。
标准扩展(Extension)类加载器:扩展类加载器是由 Sun 的 ExtClassLoader(sun.misc.Launcher$ExtClassLoader) 实现的。它负责将 < Java_Runtime_Home >/lib/ext 或者由系统变量 java.ext.dir 指定位置中的类库加载到内存中。开发者可以直接使用标准扩展类加载器。可以通过System.out.println(System.getProperty("java.ext.dirs"));得到扩展类加载器可以加载的路径,将jar文件放在这个路径中将会被扩展类加载器加载。
系统(System)类加载器:系统类加载器是由 Sun 的 AppClassLoader(sun.misc.Launcher$AppClassLoader)实现的。它负责将系统类路径(CLASSPATH)中指定的类库加载到内存中。开发者可以直接使用系统类加载器。由于ClassLoader.getSystemClassLoader()返回的是这个类加载器,因此得名系统类加载器。
在jvm启动的时候,其实有一部分预定义的类就加载到内存里面去,所以上面会得到不同的结果。
java基础入门-预定义类与自定义类相关推荐
- Linux中的Java类,Java基础入门学习-Java中类的属性
Java基础入门学习-Java中类的属性 发布时间:2006-05-27 00:46:15来源:红联作者:WWW Public.private.protected显示了三种类中的属性和服务的类型,pu ...
- Java 基础入门,小白提升路线图
1000+最新Java面试题 获取学习路线资料啦 Java的基础知识就像我们所住的房子的地基,如果地基不稳,上面所盖的楼房再宏伟,也是没人敢去入住的,同理Java的基础不牢固,以后也很难成为真正意义上 ...
- java基础入门了解
java基础入门了解 Java发展简史 java语言的用处(数据存储,数据分析,数据处理) java被运用的程度 java语言的特点 java语言体系的结构 java语言运行机制 课后知识补充 Jav ...
- Java基础知识(二)(Object类的常用方法、日期时间类、System类、StringBuilder类、包装类、Collection集合、Iterator迭代器、泛型、list集Set接口...)
文章目录 Java基础知识(二) 1.Object类的常用方法 1.1 toString方法 1.2 equals方法 1.3 Objects类 2.日期时间类 2.1 Date类 2.2 DateF ...
- Java基础入门必备词汇汇
#Java基础入门必备词汇汇 一 1.Public ['pʌblik] 公开 2.Static ['stætik] 静态 3.void [vɔid] 无返回 4.main [main] 主要的,主方法 ...
- 叮!您收到一份超值Java基础入门资料!
摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...
- 叮!您收到一份超值Java基础入门资料! 1
Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家Java ...
- 大数据必学Java知识(一):Java基础入门语法和安装
Java基础入门语法和安装 1. Java概述 1.1 Java语言背景介绍(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应用) 2. ...
- Java基础入门--学习笔记
Java基础入门教程 itheima–java基础小白教程 学习配套软件:eclipse 1.基础知识 (1)常用DOS命令:切换盘–>E:,cd–>进入文件,可多级,cd - --> ...
最新文章
- 错误信息:Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务
- 科大星云诗社动态20210810
- Android的DataBinding原理介绍
- Linux学习笔记 --iptables防火墙配置
- Homography 知多少?
- Ubuntu18.04 LTS Melodic ROS 教程:使用URDF创建一个虚拟机器人模型
- 数据结构最佳路径代码_【微服务】149:商品数据结构
- mysql group by 查询慢_MySQL慢查询优化(线上案例调优)
- 一个上帝视角的java游戏_从上帝视角看Java如何运行
- Mac otool替代readelf命令
- python猜数字游戏_C++编程基础: 9. 猜数字小游戏
- 数据挖掘常用的基本技术,主要有哪些?
- Excel十八个快捷键
- html5 blockquote,HTML5 Blockquote引用区块使用实例
- 狗头人与地下世界冒险模式通关记录 [20171224]
- 总结--看帖收“货”
- NEO(小蚁)Seraph ID调研
- matlab出现问题:TRANSPOSE 不支持 N 维数组。请使用 PAGETRANSPOSE/PAGECTRANSPOSE 转置页,或使用 PERMUTE 重新排列 N 维数组的维度。
- QGroundControl 提示 Power redundancy not met: 0 instead of 1
- 如何利用微信进行微信签到呢?
热门文章
- CCRD_TOC_2015_EULAR专刊第二辑
- Java新手问题集锦
- nginx和fpm的进程数配置和502,504错误
- php arraymap()函数
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- STL容器是否是线程安全的
- javax.validation.ParameterNameProvider
- golang 解析html
- linux 路由跟踪表 nf_conntrack 数据结构 参数 简介
- stun 协议 NAT穿透方式 简介