jvm jre jdk
Spring Boot 中的 AOP,到底是 JDK 动态代理还是 Cglib 动态代理?
好啦,开始今天的正文。 大家都知道,AOP 底层是动态代理,而 Java 中的动态代理有两种实现方式: 基于 JDK 的动态代理 基于 Cglib 的动态代理 这两者最大的区别在于基于 JDK 的动态代理需要被代理的对象有接口,而基于 Cglib 的动态代理并不需要被代理对象有接口。 那么小伙伴们不 ......
linux 下 golang jdk 环境变量配置
export GOPROXY=https://goproxy.cn,direct export GOROOT=/usr/local/go export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT/bin:$GO ......
jvm面试常问
1 设置jvm内存大小xmx, xms, Xss -Xss:规定了每个线程虚拟机栈及堆栈的大小,一般情况下,256k是足够的,此配置将会影响此进程中并发线程数的大小。 -Xms:表示初始化JAVA堆的大小及该进程刚创建出来的时候,他的专属JAVA堆的大小,一旦对象容量超过了JAVA堆的初始容量,JA ......
JDK20正式发布了GA版本,短期维护支持,以及JDK21预览
JDK20正式发布了GA版本,短期维护支持,以及JDK21预览 最近,Oracle发布了JDK20,相比对于Java开发者来说,JDK的发版是比较收关注的事情了,小简也来和大家一起了解了解JDK20发生了什么变化呢? 首先,JDK20是一个短周期版本,有6个月的维护时间,据开发者计划,下一个LTS也 ......
Debian 11环境下安装配置JDK
一、通过APT的方式安装配置OpenJDK (1)安装JDK 11 sudo apt install openjdk-11-jdk-headless -y (2)配置JDK的环境变量 ① 查看JDK的安装路径 sudo update-alternatives --config java ② 将环境变 ......
阅读jdk源码和框架源码有什么好处?
感受一种优秀的编程思想:通过阅读JDK源码和框架源码,可以学习到Java编程中很多优秀的设计思想,例如面向对象编程、设计模式以及良好的编码风格等。 理解底层原理:深入学习JDK源码和框架源码可以帮助你更好地理清框架和工具背后的原理,这样可以帮助你更好地实现基于该技术的目标。 发现潜在的Bug:通过阅 ......
jdk的安装,以及配置和环境变量
卸载JDK 删除java的安装目录 删除path中关于java的目录 删除JAVA_HOME java -version 安装JDK 百度搜索JDK8,找到下载的地址 同意协议 双击安装JDK 记住安装的路径 配置环境变量 -->JAVA_HOME 配置path变量 检查安装是否成功 打开cmd J ......
JDK的安装与卸载
我主要用JDK8,所以进入Oracle官网下载了对应版本的JDK8软件包 卸载 我的电脑-属性-高级系统设置-环境变量-JAVA_HOME中的文件路径-连包直接删除 环境变量中的JAVA_HOME删除,path中与Java有关的也删除 win+r打开运行输入cmd,再输入java -version, ......
JDK1.8中ConcurrentHashMap计算tableSize的细节
JDK1.8中ConcurrentHashMap关于table的大小和HashMap保持一致,即保证初始容量和每次扩容后的容量都为2的幂,这是为了扩容后很容易计算元素的新位置,即要么是原位置,要么是原位置+oldCapacity,具体细节网上资料很多,这里不多赘述。 学习源码时发现,Concurre ......
jenkins jvm内存调整以及一些说明
jenkins 调整jvm 内存有几个配置地方,比如通过/etc/sysconfig/jenkins 以及通过直接修改systemd 的服务定义(以centos 来说) systemd 配置 /usr/lib/systemd/system/jenkins.service 文件 参考修改 Enviro ......
决战圣地玛丽乔亚Day38---JVM相关
JVM的内存结构: 1.程序计数器:线程私有,保存执行指令地址。 2.java虚拟机栈(线程创建,并存方法调用的相关参数): 每个线程在创建时候都会被分配一个虚拟机栈。当线程调用方法时,会创建一个栈帧,入栈,方法执行完毕栈帧出栈。 栈帧会在调用方法的时候把存局部变量表,操作数栈,动态连接,方法出口等 ......
JVM类加载机制
JVM的类加载分为5个阶段:加载、验证、准备、解析和初始化。在类初始化完成后可以使用该类的信息,在一个类不再被需要时可以从JVM中卸载 1.加载 指JVM读取Class文件,并根据Class文件描述创建Java.lang.Class对象的过程。类加载过程主要包含将Class文件读取到运行时区域的方法 ......
JVM 运行状态监控
1、在程序启动时添加下列参数,以SpringBoot项目启动为例 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -Dcom.sun.management.jmxremote -Dcom.sun.managemen ......
Spring Cloud Alibaba微服务搭建(一)- 搭建虚拟机,安装JDK
关于搭建虚拟机的 ,可以看一下这个博客,我根据这个博客搭建的,没有遇到问题 https://blog.csdn.net/SoulNone/article/details/126681722 我还安装了XShell与XFtp 这个就自行百度吧,就是一直下一步下一步。 这边就说一下安装JDK 我遇到的坑 ......
JDK dockerfile
包含了时区,中文字体,tini FROM openjdk:8u342-jre-slim-bullseye ENV TZ=Asia/Shanghai \ DEBIAN_FRONTEND=noninteractive \ TINI_VERSION=v0.19.0 ADD https://github.c ......
Java/.Net双平台核心,Jvm和CLR运行异同点
前言: 本篇以.Net 7.0.2 CLR 和 OpenJDk19参照,解析下它们各自调用函数的异同。 以下为个人理解。 概述 JDK大约5.9G,CLR大约7.6G,两者相差1.7G左右。 root@tang-virtual-machine:/home/tang# cd jdk-jdk-19-36 ......
记录一个cpu彪高的BUG处理--jvm调优
业务场景:游戏行业,N个服务器,要进行大批量的合服处理,玩家数据会上升,从新整理和服务器的分配情况和逻辑处理,正常开发后,当天白天正常,然后晚上高峰期开始玩家频繁反馈无法登录~~~ 处理逻辑: 优先确认服务是否宕机,如果是,就重启,分析linux系统日志,根据宕机的原因进行处理即可; 再确认服务器情 ......
面试必问:JVM 如何确定死亡对象?
在 JVM 中,有两个非常重要的知识点,一个是 JVM 的内存布局(JVM 运行时的数据区域),另一个就是垃圾回收。而垃圾回收中又有两个重要的知识点,一个是如何确定 JVM 中的垃圾对象,另一个是使用不同的垃圾收集器进行垃圾回收。而本篇要讨论的是前者,后面的内容咱们下一篇再聊。 垃圾对象的判定有两种 ......
Linux上安装jdk Tomcat mysql redis等
1.安装JDk 1.1这里使用xshell中xfxp进行文件的上传,将jdk二进制包上传到Linux服务器上 下载地址:https://www.oracle.com/java/technologies/downloads/#java8 或者这里有下载好的安装包:链接:https://pan.baid ......
Java JDK Proxy和CGLib动态代理示例讲解
简介 代理模式在Java中有很多应用场景,而代理又分静态代码和动态代理。静态代理是编写、编译或加载时织入代码实现,而动态代理则在运行时实现。简单而言,静态代理是在运行前就已经存在,而动态代理则在运行时才存在的。而常用的动态代理有两种实现: JDK Proxy: JDK Proxy是JDK自带的,不需 ......
Java JDK1.5: 泛型 新特性的讲解说明
Java JDK1.5: 泛型 新特性的讲解说明 每博一文案 听到过这样一句话:“三观没有标准。在乌鸦的世界里,天鹅也有罪。” 环境、阅历的不同,造就了每个人独有的世界观、人生观、价值观。 三观并无对错高下,只有同与不同。恰如飞鸟不用和游鱼同行,高山不必同流水相逢。 总用自己的尺子去度量别人,无疑是 ......
JDK8 四大核心函数式接口及扩展接口总结
前言 Java8的四大函数式接口及相关的扩展接口在日常使用中的频率也是非常多的,包括自己定义的函数式接口,在JDK1.8之前,我们定义的方法都是用来接收参数,然后自己根据参数传递实现逻辑。在1.8之后,可以通过参数传递一段行为代码,将公共的行为代码封装成一个函数式接口传递,可以减少很多代码量,在St ......
精华推荐 | 【JVM深层系列】「GC底层调优系列」一文带你彻底加强夯实底层原理之GC垃圾回收技术的分析指南(GC原理透析)
前提介绍 很多小伙伴,都跟我反馈,说自己总是对JVM这一块的学习和认识不够扎实也不够成熟,因为JVM的一些特性以及运作机制总是混淆以及不确定,导致面试和工作实战中出现了很多的纰漏和短板,解决广大小伙伴痛点,我写了本篇文章,希望可以帮助大家夯实基础和锻造JVM技术功底。 什么是垃圾收集(GC) 在JV ......
一次JVM GC长暂停的排查过程
作者:京东科技 徐传乐 背景 在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题。 事情最初是线上某应用垃圾收集出现Full GC异 ......
解读JVM级别本地缓存Caffeine青出于蓝的要诀3 —— 讲透Caffeine的数据驱逐淘汰机制与用法
上一篇文章中我们聊了Caffeine的同步、异步的数据回源方式。本篇文章我们再一起研讨下经Caffeine改良过的异步数据驱逐处理实现,以及Caffeine支持的多种不同的数据淘汰驱逐机制和对应的实际使用。 ......
【JVM故障问题排查心得】「内存诊断系列」Xmx和Xms的大小是小于Docker容器以及Pod的大小的,为啥还是会出现OOMKilled?
为什么我设置的大小关系没有错,还会OOMKilled? 这种问题常发生在JDK8u131或者JDK9版本之后所出现在容器中运行JVM的问题:在大多数情况下,JVM将一般默认会采用宿主机Node节点的内存为Native VM空间(其中包含了堆空间、直接内存空间以及栈空间),而并非是是容器的空间为标准。 ......
jdk调度任务线程池ScheduledThreadPoolExecutor工作原理解析
jdk调度任务线程池ScheduledThreadPoolExecutor工作原理解析 在日常开发中存在着调度延时任务、定时任务的需求,而jdk中提供了两种基于内存的任务调度工具,即相对早期的java.util.Timer类和java.util.concurrent中的ScheduledThread ......