`
李灵晖-raylee
  • 浏览: 135663 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

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 基础入门(传智播客)》_高清中文版pdf 网盘链接

    根据提供的文件信息,我们可以推断出这是一本关于Java编程语言的基础入门教程,由传智播客出版。虽然具体的PDF内容未给出,但从标题、描述和部分可见内容来看,本书主要面向初学者,旨在帮助他们掌握Java编程的基本...

    Java基础入门.rar

    "Java基础入门"这个压缩包提供了学习Java编程的基础资源,包括经典的入门书籍源码和JDK11的中文版API文档。 首先,让我们来了解一下Java API。API(Application Programming Interface)是一系列预先定义的函数,...

    01.Java教程-基础必备--2.Java核心基础好评30天入门---Eclipse、IDEA通用配置

    本教程“01.Java教程-基础必备--2.Java核心基础好评30天入门---Eclipse、IDEA通用配置”旨在帮助新手快速掌握这两种IDE的通用配置,以提升开发效率。 首先,我们来了解Eclipse。Eclipse是一款开源的、跨平台的IDE,...

    完整版Java全套入门培训课件 Java基础 01-Java概述(共31页).rar

    这份"完整版Java全套入门培训课件 Java基础 01-Java概述(共31页)"为初学者提供了一个全面的起点,深入理解Java的核心概念。下面我们将详细探讨其中可能涵盖的知识点。 1. **Java起源与特性** - Java由James ...

    自定义View入门---自定义一个TextView

    本文将引导你入门自定义View,以自定义一个TextView为例,深入理解自定义视图的过程。 首先,自定义View的基本步骤包括: 1. **创建新类**:你需要创建一个新的Java类,继承自Android的View或其子类。在这个例子中...

    《Java基础入门》-PPT.rar_Java基础入门PPT_fairlygtz_java基础 ppt_java自学ppt_r

    《Java基础入门》是一份专为初学者设计的PPT教程,由fairlygtz制作,旨在帮助新手快速掌握Java编程语言的基础知识。这个PPT教程涵盖了Java编程的核心概念,是自我学习Java的理想资源。通过这份教程,学习者能够逐步...

    卓月教育 Java编程实训 Java开发基础入门教程 全套PPT课件资源 共13个章节.rar

    Java编程实训 Java开发基础入门教程1-03 自定义方法(共14页).ppt Java编程实训 Java开发基础入门教程1-04 面象对象编程初步-类和对象(共54页).ppt Java编程实训 Java开发基础入门教程1-05 面向对象编程-封装(共...

    Java基础入门学习资料

    Java基础入门学习资料通常涵盖以下几个关键知识点: 1. **Java环境搭建**:首先,你需要安装Java Development Kit(JDK),这是编写、编译和运行Java程序所需的基础工具。在Windows、Mac或Linux系统上,都可以找到...

    java 反射入门-属性方法调用实例

    1. **序列化与反序列化**:例如实现自定义的JSON库。 2. **插件机制**:动态加载插件类并调用其方法。 3. **框架设计**:如Spring框架的依赖注入和AOP。 4. **测试工具**:JUnit等测试框架使用反射来调用私有方法或...

    完整版Java全套入门培训课件 Java基础 02-Java基础语法1(共35页).pptx

    首先,Java语言的关键字是被语言本身预定义并具有特殊含义的单词,它们全都是小写的。例如,`class`用于定义类,`interface`用于声明接口,`byte`, `short`, `int`, `long`, `float`, `double`, `char`和`boolean`是...

    初学Java傻瓜版-第2版

    这本书以清晰易懂的语言,为那些有一定英文基础但对编程知识尚为陌生的读者提供了深入浅出的Java学习路径。"初学"标签表明了它的目标受众,而"java"标签则明确指出了主题——Java编程语言。"清晰"和"高清"的标签可能...

    Java软件开发实战 Java基础与案例开发详解 3-10 java基础知识章节练习 共4页.pdf

    3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 ...

    Java 基础学习PPt---适合准备学习Java的初学者

    这份"Java 基础学习PPT"是专为初学者设计的教程,旨在帮助那些准备踏入Java编程领域的学习者建立坚实的基础。以下是PPT中可能包含的主要知识点: 1. **第一章:Java概述** - Java的历史:由James Gosling在Sun ...

    完整版Java全套入门培训课件 Java基础 03-面向对象(共18页).pptx

    总结来说,Java的面向对象特性包括理解面向对象的概念、类与对象的关系、封装、构造函数的使用、this关键字的作用以及static关键字的应用。掌握这些概念对于理解和编写高质量的Java代码至关重要。通过学习这些基础...

    Java软件开发实战 Java基础与案例开发详解 2-7 java上机练习 共5页.pdf

    3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 ...

    java 基础入门学习教程

    ##### 7.1 Java语言基础类 - **Object类**:所有类的基类,提供了通用方法。 - **基本数据类型的包装类**:如`Integer`、`Double`等。 - **Math类**:提供数学运算方法。 - **System类**:提供与系统相关的操作,如...

    Java软件开发实战 Java基础与案例开发详解 9-5 java程序国际化的实现 共9页.pdf

    3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 ...

    Java入门教程-微学苑-part-all

    初学者通过微学苑提供的Java入门教程,可以系统学习Java语言的基础知识和编程技巧,为后续的深入学习打下坚实的基础。 Java概述部分首先介绍了Java语言的发展历史,包括Java虚拟机(JVM)的概念以及跨平台的工作...

    《Java基础入门》-课后习题答案--1-6.doc

    ### Java基础入门知识点详解 #### 第1章 Java 开发入门 **一、填空题解析** 1. **Java EE、Java SE、Java ME** - **Java SE (Standard Edition)**:标准版,适用于桌面应用程序。 - **Java EE (Enterprise ...

Global site tag (gtag.js) - Google Analytics