黑加白
黑加白
全部文章
分类
Arraylist(1)
HTML(6)
http(1)
java(32)
java web(1)
java底层(26)
JDBC(5)
JS(1)
Linux(1)
mysql(5)
Oracle(8)
Python(6)
Redis(1)
云计算(3)
产品运营(2)
产品运营之道(7)
剑指offer(3)
多线程高并发(4)
大数据(2)
排序算法(1)
数据库(3)
未归档(174)
框架(5)
继承(1)
设计模式(1)
运营(1)
面向对象(2)
面试(19)
归档
标签
去牛客网
登录
/
注册
黑加白的博客
全部文章
(共322篇)
JVM优化Java代码时都做了什么?
JVM 在对代码执行的优化可分为运行时(runtime)优化和即时编译器(JIT)优化。 运行时优化主要是解释执行和动态编译通用的一些机制, 比如说锁机制(如偏斜锁)、内存分配机制(如TLAB)等。除此之外,还有一些专门用于优化解释执行效率的,比如说模版解释器、内联缓存(inline cache...
2019-04-14
0
468
JMM简介
Java的内存模型JMM(Java Memory Model) JMM主要是为了规定了线程和内存之间的一些关系。根据JMM的设计,系统存在一个主内存(Main Memory),Java中所有实例变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Working Memory),...
2019-04-14
0
596
JVM中的新生代和老年代
JVM在程序运行过程当中,会创建大量的对象,这些对象,大部分是短周期的对象,小部分是长周期的对象,对于短周期的对象,需要频繁地进行垃圾回收以保证无用对象尽早被释放掉,对于长周期对象,则不需要频率垃圾回收以确保无谓地垃圾扫描检测。 为解决这种矛盾,Sun JVM的内存管理采用分代的策略。 1)年轻...
2019-04-13
0
534
JVM优化Java代码时都做了什么?
JVM优化Java代码时都做了什么? JVM在对代码执行的优化可分为运行时化和即时编译器优化。运行时优化主要是解析执行和动态编译通用的一些机制,比如说锁机制(如偏向锁)、内存分配机制(如TLAB)。除此之外,还有一些专门优化器执行效率的,比如说模板解析器,内联缓存。 JVM的即时编译器优化是指将热...
2019-04-13
0
470
Java 虚拟机中所有与 GC日志有关的参数
说到 Java 虚拟机,不得不提的就是 Java 虚拟机的 GC(Garbage Collection)日志。而对于 GC 日志,我们不仅要学会看懂,而且要学会如何设置对应的 GC 日志参数。今天就让我们来学习一下 Java 虚拟机中所有与 GC 日志有关的参数。 -XX:+UseSerialG...
2019-04-13
0
488
Java常见的垃圾收集器有哪些?
Serial GC, 它是最古老的垃圾收集器, “Serial”体现在其收集工作是单线程的,并且在进行垃圾收集过程中,会进入臭名昭著的“Stop-The-World”状态。当然,其单线程设计也意味着精简的GC实现,无需维护复杂的数据结构,初始化也简单,所以一直是Client模式下JVM的默认选项。 ...
2019-04-13
0
852
如何监控和诊断JVM堆内和堆外内存使用?
可以使用综合性的图形化工具,如JConsole、 VisualVM(注意,从Oracle JDK 9开始, VisualVM已经不再包含在JDK安装包中)等。这些工具具体使用起来相对比较直观,直接连接到Java进程,然后就可以在图形化界面里掌握内存使用情况。 以JConsole为例,其内存页面可以显...
2019-04-13
0
919
谈谈JVM内存区域的划分,哪些区域可能发生 OutOfMemoryError?
首先,程序计数器(PC,Program Counter Register)。在 JVM 规范中,每个线程都有它自己的程序计数器,并且任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的 Java 方法的 JVM 指令地址;或者,如果是在执行本地方法,则是未指...
2019-04-13
0
712
有哪些方法可以在运行时动态生成一个Java类?
我们可以从常见的 Java 类来源分析,通常的开发过程是,开发者编写 Java 代码,调用 javac编译成 class 文件,然后通过类加载机制载入 JVM,就成为应用运行时可以使用的 Java 类了。从上面过程得到启发,其中一个直接的方式是从源码入手,可以利用 Java 程序生成一段源码,然后保...
2019-04-13
0
506
Java并发类库提供的线程池有哪几种? 分别有什么特点?
通常开发者都是利用 Executors 提供的通用线程池创建方法,去创建不同配置的线程池,主要区别在于不同的 ExecutorService 类型或者不同的初始参数。 Executors 目前提供了 5 种不同的线程池创建配置: newCachedThreadPool(),它是一种用来处理大量短...
2019-04-13
0
524
首页
上一页
2
3
4
5
6
7
8
9
10
11
下一页
末页