ServletContext和servletconfig区别

ServletContext和servletconfig区别ServletContext接口- -安装在一个服务器中的一个特定URL名字空间(比如,/myapplication)下的所有Servlet,JSP,JavaBean等Web部件的集合构成了一个Web的应用,每一个Web应用(同一JVM),容器都会有一个背景对象,而javax.servlet.ServletContext接口就提供了访问这个背景对象的途径。你可以通过一个Servlet实例的getServletContext方法得到该Servlet运行其中的这…

【深入Java虚拟机JVM 03】Java内存模型

  说明:文章所有内容均摘自《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 1. 概述 对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”又是从事最基础工作的“劳动人民”——既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维…

JVM JDK JRE

文章目录JVM JDK JREJVM:Java编译与解释共存的理解:JDK和JRE JVM JDK JRE JVM: Java是一种平台无关性(一次编译,随处可以运行)的编程语言,而平台无关性的核心在于.class字节码文件,以及Java虚拟机(JVM)。 .class字节码文件是平台无关的,其实质是面向JVM的,JVM是通过类加载器加载字节码文件,而不同的操作系统,如Windows,Linux,macOS,则有不同的JVM的实现。 Java编译与解释共存的理解…

基于CDC的JRE要支持的应用模型

我们的CDC JRE需要支持三种形式的应用: 1. 单机应用程序(standalone Application):这种应用也是最基本的java应用了,这类应用一定有一个主类,在主类中一定一个有个main方法,在main方法中会引用到其它的类对象,这样,引擎起来之后就根据主类的名字,加载主类的.class文件,通过main方法来加载其它的类,创建其它类的对象,以及执行相应类的方法。这样应用直接与JVM交互,管理自己的生命周期和所…

java内存配置说明

java内存分为动态内存和静态内存 动态内存可以理解为堆内存 JVM Heap   静态内存可以理解为PermGen space  用来存放 静态变量及class类 1、 JVM Heap  JVM在启动的时候会自动设置JVMHeap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间不可超过物理内存, 可以利用JVM提供的-Xmn,-Xms,-Xmx等选项进行配置 2、PermGen space 内存的永久保存区域 这块内存主要被JVM存放Meta信息的,cla…

jdk8永久代从方法区移除的验证

Java , , 发表评论
测试使用jdk8中是否仍然可以使用永久代 jvm options -Xms20m -Xmx20m -Xmn10m -XX:PermSize=10m -XX:MaxPermSize=10m -XX:+PrintGCDetails 结果运行提示: Java HotSpot(TM) Client VM warning: ignoring option PermSize=10m; support was removed in 8.0 Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=10m; support was removed in 8.0 结论: jdk8 hotspot已经不再使用方法区…

jvm crash,疑似GC的bug

在对一个应用做压力的时候,不定时发生jvm crash,查看hs_error.log内容摘要如下:Current thread (0x0000000051f8f800): GCTaskThread [stack: 0x00000000413c2000,0x00000000414c3000] [id=15399]Heap PSYoungGen total 348288K, used 347520K [0x00002aaae0cb0000, 0x00002aaaf6200000, 0x00002aaaf6200000) eden space 347072K, 100% used [0x00002aaae0cb0000,0x00002aaaf5fa0000,0x00002aaaf5fa…

启动报错 :JVM terminated.Exit Code=-1

Java , , , , , 发表评论
无法启动eclipse,启动报错 :JVM terminated.Exit Code=-1.   1. 安装jdk6.0后jvm.dll为jre6/bin/client/jvm.dll,应改为jdk目录下的jvm.dll(jdk/bin/client/jvm.dll)。        你会发现弹出的对话框上的jvm.dll为jre中的,即为此错误。          解决: 在eclipse.ini中添加或者更改 -vm c:program files/java/jre6/bin/client/jvm.dl 2.eclipse.ini中内存设置过大。应把       Xmx512m  ->  Xmx25…

JVM调优总结(二)-一些概念

  Java对象的大小     基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。     在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句: Object ob = new Object();     这样在程序中完成了一个Java对象的生命,但是它所占的空间为:4byte+8byte。4byte是上面部分所说的Java栈中保存引用的所需要的空间…

JVM预热

背景 讲JVM的预热,就离不开JVM的类加载, JVM的三个类加载器:Bootstrap、ExtClassLoader、AppClassLoader 什么是JVM预热 JVM预热 : JVM Warm Up 一旦类加载完成,所有重要的类(在进程启动时使用)都会被推送到JVM缓存(本机代码)中,这使得它们在运行时可以更快地访问。其他类是根据每个请求加载的。 对Java Web应用程序的第一个请求通常比进程的生命周期中的平均响应时间慢得多。这个预热期通…

JVM(八)JVM 垃圾收集器介绍

前面介绍了垃圾回收算法,但是 JVM 如何根据这些算法进行内存回收呢?因为内存回收如何进行是由虚拟机所采用的GC收集器决定的,而通常虚拟机中往往不止有一种GC收集器。下面继续来看HotSpot中有哪些GC收集器。 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。HotSpot虚拟机包含的所有收集器如下: 上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就…

JVM 性能调优

JVM 发表评论
一.jvm 大小设置 1. 典型JVM参数设置:       java -Xmx128m -Xms128m -Xmn64m -Xss1m       -Xmx128m:设置JVM最大可用内存为128M。       -Xms128m:设置JVM最小内存为128m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。       -Xmn2g:设置年轻代大小为2G。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大…

JVM可创建的最大线程数

限制该值的因素: 线程堆栈大小——》进程的最大内存——》操作系统位数   linux线程   查看默认的线程栈大小 ulimit -a   调整栈大小 ulimit -s   是否存在硬限制, /proc/sys/kernel/threads-max是否为硬限制? cat   /proc/sys/kernel/threads-max: ? echo   12000   >   /proc/sys/kernel/thread_max      JVM线程   JVM线程堆栈  应用程序中的每个线程都需要内存来存储器堆栈(用于在调用函数…

JVM垃圾收集

参考:https://docs.oracle.com/javase/10/gctuning/ 目录(不只是搬运工...) 1、垃圾收集器简介 1.1、什么是垃圾收集器? 1.2、选择垃圾收集器的重要性? 2、Ergonomics(人体工程学) 2.1、垃圾收集器、堆、编译器的默认选择  2.2、基于行为的调整 2.3、调优策略 3、垃圾收集器实现 3.1、分代垃圾收集 3.2、分代 3.3、性能注意事项 3.4、吞吐量和占用空间测量 4、影响垃圾收集性能的因素 4.1、总堆…
下一页 »