摘要: 当我们写完HelloWorld.java文件后,计算机怎么知道我们要干什么?那就需要说下编译了(可见文章:JIT编译),这里也简单补充点: 1.编程语言: 编程语言分为高级语言和低级语言:C、C++、Java等属于高级语言;机器语言和汇编语言属于低级语言。那和编译有什么关系呢? 简而言之,编译就是把 阅读全文
posted @ 2018-07-26 19:43 柠檬柚子冰糖茶 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 1.关于Java命令之jstat 是用于监控虚拟机各种运行状态信息的命令工具,包括了堆Heap size和垃圾回收状况的监控。 jstat命令格式: 参数含义: option:选项,我们一般使用-gc查看gc情况 vmid:VM的进程号,即当前运行的Java进程号 interval:间隔时间,单位为 阅读全文
posted @ 2018-07-19 17:10 柠檬柚子冰糖茶 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 1.Java常用命令 jps:查看本机的Java进程信息。 jstack:打印线程的栈信息,制作线程Dump。 jmap:打印内存映射,只做堆Dump。 jstat:性能监控工具。 jhat:内存分析工具。 jconsole:简易的可视化控制台。 jvisualvm:功能强大的控制台。 2.什么是J 阅读全文
posted @ 2018-07-11 19:30 柠檬柚子冰糖茶 阅读(3862) 评论(0) 推荐(0) 编辑
摘要: 1.什么是类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 2.类的加载时机 图中的七个阶段代表这类的生命周期,其中加载、验证、准备、初始化和卸载的顺序是确定的,按这种顺序按部就班的 阅读全文
posted @ 2018-07-06 11:10 柠檬柚子冰糖茶 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1.什么是JIT编译器 JIT编译器,即Just-In-Time Compiler(即时编译器)。JIT编译属于动态编译(即运行时编译)的一种,与之对应的是静态编译(AOT)。 2.为什么要用JIT编译器 我们都知道,通常通过javac将程序源代码编译(前端编译,与语言有关,机器无关)成字节码,JV 阅读全文
posted @ 2018-07-04 18:56 柠檬柚子冰糖茶 阅读(203) 评论(0) 推荐(0) 编辑
摘要: Java与C++相比,具有动态分配内存和垃圾回收机制的技术优势,使得我们不用把精力集中在内存的管理上,那我们为什么还要去了解GC和内存分配呢?原因很简单:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。 1.为什 阅读全文
posted @ 2018-07-03 20:23 柠檬柚子冰糖茶 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 让我们思考这样一个问题:一个Java对象如何在基于c++实现的系统中运行?对象在JVM内部是如何表示的?它在内存中是如何存储的...... 1.OOP-Klass 二分模型 Java是面向对象的语言,面向对象有三个特征:封装、继承和多态。而HotSpot基于C++实现,C++也是面向对象的语言,那这 阅读全文
posted @ 2018-07-01 19:22 柠檬柚子冰糖茶 阅读(318) 评论(0) 推荐(0) 编辑
摘要: UT测试的小问题 1.问题描述:假设有一个业务场景:创建用户->添加信息>添加地址>添加..>查询信息->查询...->修改...... 在这样的一个简单的场景下,你有很多接口要做UT测试,每个接口都要写一个测试类,那如何让这些接口像一条流水线一样,产生业务联系,后面的接口可以用到前面测试接口生成的 阅读全文
posted @ 2018-06-28 19:22 柠檬柚子冰糖茶 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 内存模型同并发息息相关,熟悉内存模型将对虚拟机、多线程及线程安全问题有更深入的了解。 1.什么是内存模型? 给出定义之前,让我们先来了解一下物理计算机中的并发问题。我们都知道,处理器运行时必然要和内存交互,而且这个I/O操作是很难消除的,但由于计算机存储设备和处理器的运算速度有几个数量级的差距,所以 阅读全文
posted @ 2018-06-27 17:21 柠檬柚子冰糖茶 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 1.JVM是什么? JVM:Java Virtual Mechinal(Java虚拟机).它是一个虚构的计算机,是通过在实际的计算机上模拟各种功能来实现的。JVM的主要工作是解释自己的指令集(字节码,如java源码编译成class文件在虚拟机上运行)并映射到本地的CPU指令集或OS的系统调用。Jav 阅读全文
posted @ 2018-06-23 20:34 柠檬柚子冰糖茶 阅读(169) 评论(0) 推荐(0) 编辑