最近刚刚看了《深入java虚拟机》的前几张,趁着还有点印象,还是先写下来。
第一章:java的体系机构
java的设计之初就是了方便地从网络上获取编译好的.class文件,使用本地的java虚拟机执行程序。java的跨平台运行就是利用了这个特性,《java虚拟机规范》规定了所有虚拟机编译后必须按规范产生.class,这就保证了编译java的虚拟机和执行.class文件的虚拟机实现方式不同也能执行相同的程序。所谓的跨平台,我的理解是.java文件和.class文件可以被跨平台地编译和执行,但java虚拟机并不能跨平台。java虚拟机需要根据主机和操作环境的不同而有不同的实现,这就跟c和c++为指定的操作系统编写特定的编译器一样,所以java跨平台还有是它的局限性。
大家都知道,运行java程序都需要指定环境变量中的classpath,一般指向的都是当前类路径和jdk的路径。java中加载.class文件采用双亲委托加载模式,即先加载jdk源码中的class文件,再加载当前类路径中的class文件,最后才是classloader指定的class文件。
什么是classloader? java为了确保每个类拥有各自独立的命名空间,除了类名和包路径外还隐式地包含了classloader对象名,只有三者完全一致才能判断两个类相同。一般的程序都无需手动指定classloader,所以默认都采用系统提供的classloader,所以我们看到的类对象基本都是同一个。
正是应该有了classloader,所以我们能从网络上获取.class文件进行加载。classloader还有一些经常被我们使用到场景,但我们往往都感觉不到。比如tomcat的webapp目录下有多个工程,怎么能确保每个工程的命名空间项目独立呢,正是由于classloader发挥了关键的作用,使得多个工程同时运行时也不会发生相互干扰。
分享到:
相关推荐
笔记会涉及类加载机制、内存模型、垃圾回收等JVM核心概念。 9. **设计模式**:笔记会介绍常见的23种设计模式,如单例模式、工厂模式、装饰器模式等,这些都是解决软件开发中常见问题的成熟方案。 10. **Java框架**...
12. **JVM内存模型**:理解Java虚拟机的工作原理,包括堆内存、栈内存、方法区等,以及垃圾回收机制。 13. **Spring框架**:如果笔记涵盖了Spring,那么会讲解依赖注入、AOP、MVC等核心概念,这是Java开发中广泛...
本知识点的标题为“Java学习笔记(必看经典)”,意味着所整理的内容是针对Java初学者的一系列核心概念和原理的总结。 首先,面向对象编程是Java语言的核心,它与传统的面向过程编程有显著的不同。面向对象编程强调的...
笔记可能涵盖了JVM内存模型(堆、栈、方法区、本地方法栈、程序计数器),垃圾收集(GC)机制,类加载过程,以及如何通过JVM参数进行性能调优。 张龙老师的笔记以实战和案例为导向,旨在帮助读者深入理解这些核心...
7. **JVM优化**:理解JVM内存模型(如堆、栈、方法区、本地方法栈等)、垃圾收集机制以及性能调优技巧。 8. **设计模式**:设计模式是解决软件设计中常见问题的通用解决方案,如工厂模式、单例模式、观察者模式、...
Java开发学习笔记主要针对的是初学者,旨在帮助他们掌握Java编程的基础知识。下面将详细讲解Java开发中的核心概念和步骤。 一、Java环境变量设置 在开始Java编程之前,我们需要安装Java Development Kit (JDK)并...
在内存管理和垃圾回收方面,书中有专门章节讲解Java的内存模型以及自动内存管理机制,解释了如何避免内存泄漏和理解引用类型,这对于优化程序性能和解决内存问题非常有帮助。 书中还详细阐述了异常处理,这是Java...
Java编程语言是全球广泛使用的高级编程语言之一,尤其在企业级应用开发中占据主导地位。这份"java笔记"涵盖了从基础到进阶的各种Java知识,旨在帮助学习者系统地掌握这门语言。以下是对笔记内容的详细解读: 1. **...
Java内存管理主要涉及到堆内存和栈内存的分配与回收。堆内存主要用于存储对象实例,由垃圾收集器自动管理。垃圾收集器通过可达性分析判断对象是否可被访问,不可达的对象将被回收。JVM提供了几种不同的垃圾收集算法...
### JAVA经典教材笔记知识点梳理 #### 第一章:JAVA概述及开发环境搭建 - **Java学习概述** - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA...
笔记可能涵盖类加载、内存模型、垃圾回收等话题。 10. **设计模式**:设计模式是软件开发中的最佳实践,如单例模式、工厂模式、装饰器模式等,笔记将解释这些模式的应用和优缺点。 通过韩顺平老师的Java视频课堂...
20. **JVM**:简要了解Java虚拟机的工作原理,包括类加载、字节码执行和内存模型。 这份笔记不仅适合初学者,也对有经验的开发者巩固基础非常有帮助。通过学习这些内容,你可以建立起坚实的Java编程基础,为进一步...
10. **33、JVM探究.pdf**:深入Java虚拟机,理解内存模型、垃圾回收、性能优化等方面的知识。 通过这些内容的学习,读者不仅可以掌握Java编程的基本技能,还能了解到如何在实际项目中运用这些技能,提升自己的软件...
5. **自动垃圾回收**:Java拥有自动内存管理功能,通过垃圾回收机制自动清理不再使用的对象,从而避免了手动管理内存可能导致的内存泄漏等问题。 6. **跨平台性**:Java的一个重要特性就是“编写一次,到处运行”...
8. **JVM内存模型**:理解堆、栈、方法区、本地方法栈和程序计数器,以及垃圾回收机制。 9. **设计模式**:常见的23种设计模式,如单例、工厂、观察者等,它们在实际开发中的应用场景。 10. **网络编程**:TCP和...
最后,文档介绍了JVM的内存模型,包括堆(Heap)和栈(Stack),以及对象在内存中的分配和回收机制。这是Java开发者需要具备的核心知识之一,因为不当的内存管理可能会导致内存泄漏等问题。 整体来看,这份Java入门笔记...
11. **JVM**:理解Java虚拟机的工作原理,如类加载机制、内存模型(堆、栈、方法区等)、垃圾收集等。 12. **Java 8及更高版本的新特性**:例如Lambda表达式、函数式接口、Stream API、Optional类等。 在"java...
10. **JVM**:Java虚拟机的工作原理,内存模型(堆、栈、方法区等),垃圾回收机制。 11. **JavaWeb**:Servlet、JSP的基本概念,HTTP协议,MVC设计模式,以及JSTL和EL表达式。 12. **框架技术**:如Spring框架的...
8. **JVM内存模型**:理解Java虚拟机(JVM)的工作原理对于优化程序性能至关重要。笔记会探讨堆、栈、方法区等内存区域,以及垃圾回收机制。 9. **Java集合框架深入**:这部分可能包括对泛型、并发容器(如...