今天阳光很暖

java

收录 Java 基础、JVM、并发编程、Spring 生态与工程化问题排查。

使用 assembly 对 SpringBoot 代码打包 使用 assembly 对 SpringBoot 代码打包
1. 背景最近向服务器上部署 spring boot项目时,会遇到一个问题,那就是 spring boot 打包时,会将自己写的代码和项目的所有依赖文件打成一个可执行的 jar 包。通常我们的项目都是运行在服务器上的,当项目更新时,每次都要
2023-03-17
Java service wrapper的使用与介绍 Java service wrapper的使用与介绍
1. 介绍Java Service Wrapper 是为了解决 Java 应用程序在部署和维护时的诸多问题而诞生的。它主要有以下几个功能: 将Java应用程序作为守护程序运行: Wrapper可以将Java应用程序作为Windows Se
2020-12-01
JVM系列(七)、不同的引用类型 JVM系列(七)、不同的引用类型
1. JVM中引用的介绍在java中,除了基本数据类型的变量外,其他所有的变量都是引用类型,指向堆中各种不同的对象。 在jvm中,除了我们常用的强引用外,还有软引用、弱引用、虚引用,这四种引用类型的生命周期与jvm的垃圾回收过程息息相关。
2020-03-15
Java中线程状态与线程死锁 Java中线程状态与线程死锁
1. 什么是线程 线程(英语:thread)是操作系统能够进行运算调度的最小单位。大部分情况下,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在
2020-02-15
JVM系列(六)、可视化工具介绍 JVM系列(六)、可视化工具介绍
1. Jconsole1.1 Jconsole 介绍Jconsole(Java Monitoring and Management Console)是从java5开始,是一种基于JMX(java management extensions)
2020-01-31
JVM系列(五)、常用命令(下) JVM系列(五)、常用命令(下)
1. jmapjmap (Memory Map for Java):命令用于生成堆转存快照。如果不使用jmap命令,想要获取Java堆转存快照,还有一些比较”暴力”的手段:-XX:HeapDumpOnOutOfMemoryError 参数,
2020-01-30
JVM系列(五)、常用命令(上) JVM系列(五)、常用命令(上)
一、介绍运用Jvm自带的命令可以方便的和监控和打印堆栈的日志信息帮忙我们来定位问题。虽然Jvm调用成熟的工具已经很多:jconsole、大名鼎鼎的VisualVM、IMBM的Memory Analyzer 等等。但是在生产环境出现问题的时候
2020-01-29
JVM系列(四)、垃圾收集器 JVM系列(四)、垃圾收集器
1、垃圾收集器 如果说收集算法时内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 2、 Serial收集器串行收集器是最古老、最稳定以及效率高的收集器,它进行垃圾收集时只使用一个线程去回收且必须暂停其他所有的工作线程,直到它收集结
2020-01-28
JVM系列(三)、GC算法 JVM系列(三)、GC算法
1. 介绍垃圾收集器( Garbage Collection ) 通常被称为 “GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。Jvm中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,
2020-01-10
JVM 系列(二)、 JVM 内存结构(下)方法区、栈 JVM 系列(二)、 JVM 内存结构(下)方法区、栈
1. 方法区方法区(Method Area)与Java堆一样,是各种线程共享的内存区域,它用于存储已被虚拟机加载的类的信息、常量、静态变量即时编译器编译后的代码等数据。虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名
2020-01-08
JVM系列(二)、Jvm内存结构(上)、堆 JVM系列(二)、Jvm内存结构(上)、堆
1. Java内存结构 JVM内存结构主要有三大块:堆内存、方法区和栈。 堆 :存放 new 出来的对象和数组,堆是JVM中最大的一块,由年轻代和老年代组成,而年轻代内存又被分为三部分:Eden空间、Form Survivor空间、To
2019-12-25
Intellij IDEA修改默认 Target bytecode version Intellij IDEA修改默认 Target bytecode version
1. 问题现象使用Intellij IDEA 新建Java项目,使用jdk1.8版本,设置好Target bytecode version 为1.8,Language level为8。但是,每次新加一个module,所有的设置都变成默认的1
2019-12-23
1 / 3