从本科时期学C语言的时候,我们就被教导: ++i 是先自增,后赋值 i++ 是先赋值,后自增 最近在看jvm虚拟机和java并发编程,希望从字节码的角度来进行介绍。 其实这个细节写的人已经不少了,但本人还是想稍微综合一下,更通俗、更直观地进行描述。 阅读本文需要对Java 虚拟机(Java Virt ...
分类:
编程语言 时间:
2020-04-11 23:43:49
阅读次数:
79
现在很多SDK都提供了JAVA接口。但是没有Delphi接口。 没有办法只好曲线救国。我们可以通过 JNI 的方式在 Delphi10.3 中调用 Java 的函数。 第一步:创建 Java 虚拟机和运行环境 procedure TForm1.FormCreate(Sender: TObject); ...
分类:
编程语言 时间:
2020-04-11 13:11:48
阅读次数:
75
[TOC] Java 程序运行机制 运行过程 1. 源文件 (a.java) 2. Java 编译器 3. 字节码文件(a.class) 4. 进入 JRE ,分别执行 类装载器 字节码校验器 解释器 5. 系统平台,执行. 注释 JRE 中包含 JVM (JAVA虚拟机); 其中的字节码校验器也是 ...
分类:
编程语言 时间:
2020-04-10 00:59:13
阅读次数:
77
1.JVM Java虚拟机(JVM)是运行Java字节码的(.class)。-->高效;可移植 Java程序从源代码到运行一般有以下3步: .java文件(源代码) -->(JDK中的javac编译) --> .class文件(JVM可理解的Java字节) --> (JVM) -->机器可执行的二进 ...
分类:
编程语言 时间:
2020-04-10 00:26:42
阅读次数:
80
运行时数据区域 java虚拟机在执行java程序过程中会把他所管理的内存划分为若干个不同的数据区域。 java虚拟机运行时数据区 方法区(线程共享区),虚拟机栈,本地方法栈,堆(线程共享区),程序计数器 1.程序计数器 程序计数器是一块较小的内存空间,他可以看作当前线程所执行的字节码指示器。每条线程 ...
分类:
编程语言 时间:
2020-04-09 14:11:41
阅读次数:
81
一.class类文件的结构 Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。 根据Java虚拟机规范的规定,Class文件格式采用一种类 ...
分类:
编程语言 时间:
2020-04-09 00:48:13
阅读次数:
70
Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。 将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存 ...
分类:
编程语言 时间:
2020-04-08 16:19:24
阅读次数:
59
多线程概念 进程与线程 进程是操作系统进行资源分配的最小单位,CPU从一个进程切换到另一个进程叫做进程上下文切换。 线程是CPU调度的最小单位,是进程的一部分,由进程创建,一个进程拥有1~N个线程。线程又分为用户线程和守护线程,两者的区别是,后者会随着主线程结束而结束。 Thread线程类 继承th ...
分类:
编程语言 时间:
2020-04-07 22:15:27
阅读次数:
103
1、bulk的格式: {action:{metadata}}\n {requestbody}\n 2、为什么不使用如下格式: [ { "action":{}, "data":{} } ] 这种方式可读性好,但是内部处理就麻烦了:耗费更多内存,增加java虚拟机开销 1)将json数组解析为JSONA ...
分类:
其他好文 时间:
2020-04-07 12:51:14
阅读次数:
69
简介 jps 命令类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。 jps用法 参数说明 -q 只输出进程 ID -m 输出传入 main 方法的参数 -l 输出完全 ...
分类:
其他好文 时间:
2020-04-07 00:26:26
阅读次数:
78