Java 虚拟机学习
因为考虑到接下来的找工作的事情需要学习一点java的相关知识才可以,于是乎,就拿来《深入理解Java虚拟机》这本书,没事看看,这里记录一下自己的读书笔记,作为自己日后回顾的备份,也希望帮到需要的朋友。
Java体系结构包括了四个独立的但相关的技术:
Java程序设计语言、Java class文件格式、java应用编程接口(API)、Java虚拟机
当编写并运行一个Java程序时,就同时体验了这四种技术,用Java编写源代码,把它编译成Java class文件,然后再在Java虚拟机中运行class文件,编写程序时,通过调用类中的方法来访问系统资源如:I/O,程序运行时候它通过调用class文件中实现了Java API的方法来满足程序的Java API调用。
Java虚拟机和Java API组成了一个“平台”,所有Java程序都在这上面编译。
Java的面向网络的核心就是Java虚拟机,它支持Java面向网络体系结构三大支柱的所有方面:平台无关性、安全性、网络移动性。
Java虚拟机是一台抽象的计算机,其规范定义了每个Java虚拟机都必须实现的特性,但是为每个特定实现都留下了很多选择。
Java虚拟机的主要任务是:装载class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件,Java API中只有程序执行时需要的那些类才会被装载,字节码由执行引擎来执行。
当Java虚拟机是由主机操作系统上的软件实现的时候,Java程序通过调用本地方法和主机交互。Java中有两种方法:Java方法和本地方法。Java方法由Java语言编写,编译成字节码,存储在class文件中。本地方法是由其他语言编写的,编译成和处理器相关的机器代码。本地方法保存在动态链接库中,格式各个平台专有的,Java方法是与平台无关的,但是本地方法不是,运行中的Java程序调用本地方法时,虚拟机装载包含这个本地方法的动态库,并调用这个方法。
Java 虚拟机学习相关推荐
- Java虚拟机学习(8):查看JVM参数及值的命令行工具
查看JVM各个参数值方式 1. HotSpot vm中的各个globals.hpp文件 查看jvm初始的默认值及参数 globals.hpp globals_extension.hpp c1_glo ...
- Java虚拟机学习(7):对象内存分配与回收
对象优先在Eden上分配 大多数情况下,对象优先在新生代Eden区域中分配.当Eden内存区域没有足够的空间进行分配时,虚拟机将触发一次 Minor GC(新生代GC).Minor GC期间虚拟机将E ...
- Java虚拟机学习(6):对象访问
对象访问会涉及到Java栈.Java堆.方法区这三个内存区域. 如下面这句代码: 1 Object objectRef = new Object(); 假设这句代码出现在方法体中,"Obje ...
- Java虚拟机学习(5):内存调优
JVM调优主要是针对内存管理方面的调优,包括控制各个代的大小,GC策略.由于GC开始垃圾回收时会挂起应用线程,严重影响了性能,调优的目是为了尽量降低GC所导致的应用线程暂停时间. 减少Full GC次 ...
- Java虚拟机学习(4):JDK可视化监控工具
1.JConsole JConsole工具在JDK/bin目录下,启动JConsole后,将自动搜索本机运行的jvm进程,不需要jps命令来查询指定.双击其中一个jvm进程即可开始监控,也可使用&qu ...
- Java虚拟机学习(3): 类加载机制
类加载机制 JVM把class文件加载的内存,并对数据进行校验.转换解析和初始化,最终形成JVM可以直接使用的Java类型的过程就是加载机制. 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命 ...
- Java虚拟机学习(2):垃圾收集算法
跟踪收集器 跟踪收集器采用的为集中式的管理方式,全局记录对象之间的引用状态,执行时从一些列GC Roots的对象做为起点,从这些节点向下开始进行搜索所有的引用链,当一个对象到GC Roots 没有 ...
- Java虚拟机学习(1):体系结构 内存模型
一:Java技术体系模块图 二:JVM内存区域模型 1.方法区 也称"永久代" ."非堆", 它用于存储虚拟机加载的类信息.常量.静态变量.是各个线程共享的内 ...
- 深入java虚拟机学习 -- 类的加载机制(续)
昨晚写 深入java虚拟机学习 -- 类的加载机制 都到1点半了,由于第二天还要工作,没有将上篇文章中的demo讲解写出来,今天抽时间补上昨晚的例子讲解. 这里我先把昨天的两份代码贴过来,重新看下: ...
- java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)
java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深 ...
最新文章
- 多线程程序 怎样查看每个线程的cpu占用
- 当excel 导入数据库的字段大于255时,把第一行的字段加长超过255.
- [Java基础]Arrays的常用方法
- 属性 方法c语言,C语言如何实现C++中对象属性和方法
- Chapter7-1_Overview of NLP Tasks
- 掌控谈话~谈价格的秘诀
- Metasploit Framework(6)客户端渗透(上)
- 【求助】测试XCode v8.0的正向反向功能
- 28335scififo中断接收与发送
- 随机森林入门攻略(内含R、Python代码)
- 5.28 周末笔记(三)
- php 正则预搜索?=
- aizu 0121 Seven Puzzle
- Mac OS X 清除DNS缓存
- spring session Session().removeAttribute 异常
- #swust oj971 和972统计利用先序遍历创建的二叉树的深度和宽度
- 运放的信号叠加电路与求差电路
- 处理办公文档通过共享打印机无法打印
- SQL导入文本错误:大容量插入: 在数据文件中遇到意外的文件结尾 (EOF)。
- 数据库 explain详解
热门文章
- Linux基础(day74)
- 斯坦福大学CS224d基础1:线性代数回顾
- Android窗口管理服务WindowManagerService显示Activity组件的启动窗口(Starting Window)的过程分析...
- 【通用权限管理】角色的分类管理,角色-用户组-职位职务-系统角色的设计上的迷惑也解开...
- Android开发:setAlpha()方法
- 执行计划:SET AUTOTRACE TRACEONLY
- ES6读书笔记(一)
- 源码编译安装screen
- 《物流与供应链管理》课程论文
- 面试问题——fread和read的区别