垃圾回收算法1.标记清除标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。在标记阶段首先通过根节点(GC Roots),标记所有从根节点开始的对象,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象。适用场合:存活对象较多的情况下比较高效适用于年老代(即旧生代)缺点:容易产生内存碎片,再来一个比较大的对象时(典型情况:该对象的大小大于空闲表中的每一块儿大小但是小于其中两块儿的...
异常现象 异常信息如下java.lang.OutOfMemoryError: PermGen spaceat java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader.java:800)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2374)at org.apache.catalina.loader.WebappClassLoaderBase....
第一部分: 一、dos命令 *快捷查看电脑ip: Win + R进入cmd;输入ipconfig/all查看IPv4:192.168.0.xxx(首选); 基本命令: cd进入目录;d: 直接进入盘符;. 当前目录;..上级;/根目录;md 创建目录;dir查看当前目录下所有文件; rd + 文件夹名:删除文件夹;del+文件名:删除文件;cls:清屏;type nul>*.*;这里我们在前面创建的myfolder文件夹中进行展示,分别创建带有文件名的myfile.txt文件和不带文件名的.test两个文件,:...
异常显示: :8080解决方法 - 文章图片" /> 问题所在:之前启动的tomcat未停止,端口被占用。 解决方法:养成良好的习惯,用完之后停掉服务。
一、概述执行引擎是java虚拟机最核心的组成部件之一。虚拟机的执行引擎由自己实现,所以可以自行定制指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。本节将主要从概念模型的角度来讲解虚拟机的方法调用和字节码执行。 二、运行时栈帧结构1.什么是栈帧栈帧也叫过程活动记录,是编译器用...
一、谈谈你对java的理解 1.Java特性 (1)平台无关性一次编译到处运行 (2)GC垃圾回收机制 (3)语言特性泛型-反射机制-lambda表达式 (4)面向对象面向对象语言-三大特性(封装,继承,多态) (5)类库集合库,并发库,网络, (6)异常处理自定义异常
对于java开发者来说,不论是新手还是老手,都会听说jvm一词,jvm算是java里比较核心与关键的东西了,但是对于一些新手或者工作有一段时间的java程序员来说,貌似感觉jvm并不那么重要一样,自己平时写代码写得好好的,不是很了解jvm好像也没什么的,其实这就大错特错了,jvm是时时刻刻的起着重要的作用,你写的代码都是基于他上面运行的,那么有的人就可能说不需要了解jvm照样能写好代码,有这种可能吧,但是,我们来一起看看下面这...
解释型语言:使用专门的解释器对源码逐行解释成特定平台的机器码并立即执行的语言。优势:容易跨平台,只需提供特定平台的解释器即可(可以方便实现移植,不过这是以低效率为代价的);劣势:每次执行解释型语言的程序都需要进行一次编译,因此效率比较低,而且不能脱离解释器独立运行;举例:Ruby,Python。 编译型语言:一次性地编译成机器码,生成可执行文件。优势:可以脱离开发环境独立运行,运行效率较高;劣势:可执行文件在...
1、 什么是JVM?JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码...
报错:java.net.bindexception: address already in use: jvm_bind ?原因:8080端口被占用
Java语言比较特殊,由Java语言编写的程序需要经过编译步骤,但这个编译步骤,但这个编译步骤并不会生成特定的平台机器码,而是生成一种与平台无关的字节码文件(*.class文件)。当然,这种字节码文件不是可执行的文件,必须使用Java解释起来执行。因此可以认为:Java语言既是编译型语言,也是解释型语言。或者说,Java既不是纯粹的编译型语言,也不是纯粹的解释型语言。Java程序执行过程必须经过先编译、后解释两个步骤。 Java语言...
通用类 package lddxfs.jvm.gclog;import java.util.HashMap; import java.util.Map;/*** Author:lddxfs(lddxfs@qq.com;https://www.cnblogs.com/LDDXFS/)* Date:2018/10/15*/ public class Common {public static Map<Integer, byte[]> map = new HashMap<>();public static void gcTest(String[] args) {for (int i = 0; i < 20; i++) {for (int j = 0; j < 20; j++) {map.put(i, new byte[1 * 1024 * 1024]);}map.clear();}ma...
JDK: java development kit, java开发工具包,针对开发者,里面主要包含了jre, jvm, jdk源码包,以及bin文件夹下用于开发,编译运行的一些指令器。JRE: java runtime environment, java运行时环境,针对java用户,也就是拥有可运行的.class文件包(jar或者war)的用户。里面主要包含了jvm和java运行时基本类库(rt.jar)。rt.jar可以简单粗暴地理解为:它就是java源码编译成的jar包(解压出来看一下),用eclipse开发时,当你ctrl点...
前言关于jvm类加载器我们面试的时候会经常问到,如果相关概念不清楚的话可以参阅我的深入理解虚拟机之类加载器 。这一篇文章旨在实战演示jvm执行的顺序。示例代码package com.jdk.learn;/** ?* Created by ricky on 2017/8/25. ?* ?* 类加载器加载顺序考究 ?*?* ?*/ public class ClassLoaderTest {? ? public static void main(String[] args) { ? ? ? ? son sons=new son(); ? ? } }class parent{ ? ? private static ?int a=1; ...
https://tech.imdada.cn/2017/06/18/jvm-safe-exit/?utm_source=tuicool&utm_medium=referral 背景用户:货都到了,购物车里怎么还有刚买的东西,what?产品:有用户反映,提单完成了,怎么没清购物车,研发赶紧看看是不是有bug啊?研发:恩,我看看,!@#¥%……&*()一顿狂查,搜嘎,当时在上线,重启应用,异步任务丢了……产品:能不能行,上线你就丢任务,丢不丢人啊!研发:…………上线!重启!你还在为丢失任务而烦恼么?看这...