简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
一、平台无关性:Java的无关性的实现,是由于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。无关性包括:平台无关性以及语言无关性。(1)平台无关性,是指java代码可以运行在不同操作系统的虚拟机上面,因为不同的操作系统都有各自的Java虚拟机,从而实现程序的“一次编写,到处运行”。(2)语言无关性是指Jav...
概述:给一个系统定位问题的时候,知识、经验是关键基础,数据是依据。工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照文件(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。## JDK的命令行工具:JDK的命令行工具大多数是对jdk/lib/tools.jar类库的一层薄包装而已,它们的主要功能代码是在t...
一、Java把内存划分成两种:一种是栈内存,一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回...
一、什么是ClassLoader?ClassLoader就是类加载器,当我们写好一个Java程序之后,都是由若干个.class文件组成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在的,...
VMware workstations为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式):VMnet0表示的是用于桥接模式下的虚拟交换机;V...
JMM 是 Java 虚拟机定义的一种多线程访问 Java 内存各个变量的访问规范,主要围绕如何解决并发过程中的原子性、可见性、有序性这三个问题来解决线程的安全问题。Java 内存模型将内存分为了主内存和工作内存。主内存存放所有的共享变量,所有线程都可以访问。每个线程都有自己的工作内存,存储了该线程使用到的变量的副本,线程对变量的所有操作都必须在自己的工作内存中完成,不能直接操作主存中的变量。操作
synchronized 通过当前线程持有对象锁,从而拥有访问权限,而其他没有持有当前对象锁的线程无法拥有访问权限,保证在同一时刻,只有一个线程可以执行某个方法或者某个代码块,从而保证线程安全。synchronized 锁机制在 Java 虚拟机中的同步是基于进入和退出监视器锁对象 monitor 实现的
在GC开始时,对象会存在Eden和From区,To区是空的,当Eden区没有足够的内存分配给对象时,虚拟机会发起一次Minor GC。进行GC时,Eden区存活的对象会被复制到To区,From区存活的对象会根据年龄值决定去向,达到阈值的对象会被移动到老年代中,没有达到阈值的对象会被复制到To区(但如果符合“动态年龄判断”的条件,即使未达到阈值也会从Survivor区直接移动到老年代)。这时Eden
一、Java运行时内存中的数据区域:每一个Java程序启动后,会获得一个JVM的实例,用来管理内存。Java 虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有个字的用途,以及创建和销毁时间。Java虚拟机所管理的内存将会包括以下几个运行时数据区域:1、程序计数器:程序计数器是一块较小的空间,是当前线程执行的字节码的行号指示器,字......
一、常见的JVM参数配置:1、垃圾回收统计信息:-XX:+PrintGC打印GC简要信息-XX:+PrintGCDetails打印GC的详细信息-XX:+PrintGCTimeStamps打印CG发生的时间戳-Xloggc:log/gc.log指定GC log的位置,以文件输出-XX:+PrintHeapAtGC每一次GC前和GC后,都打印堆信息。2...