2020-05-22 就我最近学的,我感觉java如果不接触底层的话 项目我觉得大部分都是不断的调用,解耦合 比如工厂模式, 或者你可能会发现,很多类都提供自定义的方法 就是你修改方法 就是不断的调用,跳转 但是你一旦接触到底层,或者是JVM(java虚拟机)的时候 就是很麻烦,就是掉头发的那种 我 ...
分类:
其他好文 时间:
2020-05-22 12:31:07
阅读次数:
111
1、java虚拟机:解析,执行java程序,java虚拟机可运行在各种操作系统上。 2、jdk类库:基础java类,各种使用类,如:java.long、java.io、java.util、java.awt、javax.swing、java.sql 3、开发工具:可执行的程序,如:javac.exe( ...
分类:
其他好文 时间:
2020-05-22 09:41:28
阅读次数:
83
本篇文章 idea 来自 "用了这么多年的泛型,你对它到底有多了解?" ,恰好当时看了「深入 Java 虚拟机的第三版」了解泛型的一些历史,感觉挺有意思的,就写了写 Java 版的泛型。 作为一个 Java 程序员,日常编程早就离不开泛型。泛型自从 JDK1.5 引进之后,真的非常提高生产力。一个简 ...
分类:
编程语言 时间:
2020-05-22 09:27:24
阅读次数:
56
2020-05-21 22:42:36 1.1.1 程序计数器 内存空间小,内存私有,字节码解释器工作就是通过这个计数器的值来选取下一条需要执行指令的字节码指令,分支,循环,跳转,异常处理,线程恢复等基础功能都需要依赖计数器完成。 1.1.2 Java 虚拟机栈 线程私有,生命周期和线程一致。描述的 ...
分类:
编程语言 时间:
2020-05-22 00:12:20
阅读次数:
68
1.JVM内存模型 ?程序计数器:当前线程字所执行节码的行号指示器,用于记录正在执行的虚拟机字节指令地址,线程私有。 ?Java虚拟机栈:存放基本数据类型,对象的引用,方法出口等,线程私有。 ?本地方法栈:和虚拟栈类似,不过它服务于本地方法,线程私有。 ?Java堆:Java内存中最大的一块,所有对 ...
分类:
编程语言 时间:
2020-05-21 21:18:05
阅读次数:
64
参考:https://mp.weixin.qq.com/s/DZkGRTan2qSzJoDAx7QJag 建议阅读:《深入理解Java虚拟机》相关章节 多线程下的 原子性 可见性 指令重排序 无法保证(单线程 可以保证) static int mainMemoryVariable=0; 线程1: m ...
分类:
编程语言 时间:
2020-05-21 21:06:23
阅读次数:
50
JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细 ...
分类:
其他好文 时间:
2020-05-21 16:30:50
阅读次数:
49
title: 深入理解Java虚拟机 date: 2020 05 14 10:58:24 tags: JVM,虚拟机 [TOC] 1.运行时数据区域 1.程序计数器 当前线程执行字节码的行号指示器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法,则为空) 2.虚拟机栈 虚拟机栈描述的 ...
分类:
编程语言 时间:
2020-05-19 22:46:31
阅读次数:
72
去分析多线程就要分析线程栈。 先了解一下java虚拟机的结构: Class file是类文件。写完程序后源码扩展名.java,源码是不能被运行的,需要做编译,编译的命令叫javac。编译后class文件,首先会调用一个系统,叫Classloader sub-system. jdk目录下有一个java ...
分类:
编程语言 时间:
2020-05-19 18:24:01
阅读次数:
58
避免使用finalize方法 1. Java对象回收与finalize方法 Java虚拟机使用 可达性分析算法(Reachability Analysis) 判断对象是否可回收。事实上, 即使对象被判定为不可达,最终也不一定会被回收 。 对象被判定为不可达后,Java虚拟机将检查是否有必要执行对象的 ...
分类:
其他好文 时间:
2020-05-18 22:47:14
阅读次数:
93