java
花行远
行远必自迩,登高必自卑
展开
-
生产环境中部署ActiveMQ,生产者和消费者连接不上MQ服务器的一个原因
问题:在服务器A上部署MQ服务器后,部署成功通过本地可以正常访问。但是服务器B上的消费者连接不上MQ服务器(因为之前都是在单机上部署、调试都是没问题的),这种情况有可能是A服务器上MQ服务对应的接口被防火墙拦截了,查看,果然是!解决方法1:直接到服务器A上的防火墙通过设置入口规则来允许这些端口被访问,测试有效。解决方法2:这种需要手动去设置的方式是不是有点LOW呀,我们可以直接修改MQ的安装服务批处理文件,把对应接口放开访问权限即可。如下图(方框位置就是我添加的代码):...原创 2020-07-09 18:01:24 · 1391 阅读 · 0 评论 -
Java中并发编程问题总结(持续更新中...)
由于CSDN上地编辑器用起来不是很舒服,我直接上传附件。最近一直都在肝,算是给自己加深这一块地知识记忆吧。如果对你也有帮助地话那就再好不过了。如果有写得不对的地方,敬请大佬纠正。...原创 2020-07-06 20:34:50 · 116 阅读 · 0 评论 -
JVM基础06-垃圾回收器
1. 什么是垃圾? 要确认一个对象是否为垃圾,可以从以下两个算法进行判断。1.1 引用计数法 只要应用程序中持有该对象的引用,也就是该对象的引用计数不为0,就说明它不是垃圾。反之如果没有任何引用指针对其引用就说明是 垃圾。 注:这种算法有一个很明显的弊端,那就是两个对象中相互引用时,则不会被回收1.2 可达性分析法 1.2.1 通过GC Root的对象,开始向下寻找,看某个对象是否可达。 1.2.2 能作为GC R...原创 2020-06-23 11:55:33 · 207 阅读 · 0 评论 -
JVM基础05-Java内存模型、JVM内存模型及Java对象模型
1. 什么是Java内存模型(JMM)Java内存模型(Java Memory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。Java内存模型规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存,线程的工作内存中保存了该线程中是用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存。不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量的传原创 2020-06-23 11:49:41 · 180 阅读 · 0 评论 -
JVM基础04-运行时数据区
1. 什么是运行时数据区?查看官网描述(JDK8):https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5翻译一下就是:Java虚拟机定义了在程序执行期间使用的各种运行时数据区域。其中一些数据区域是在Java虚拟机启动时创建的(方法区和堆,他们是线程共享的),仅在Java虚拟机退出时才被销毁。其他数据区域是每个线程的(Java虚拟机栈、本地发放栈、程序计数器,他们是线程私有的)。在创建线程时创建每个线程的数据区原创 2020-06-23 11:47:03 · 102 阅读 · 0 评论 -
JVM基础03-类加载机制
1. 什么是类加载机制就是把class文件加载到内存,并对数据进行校验、解析和初始化,形成JVM能直接使用的类型:Java.lang.class2. 图示3. 分步描述1)装载 step1:通过类的全限定名获取加载此类的二进制字节流 step2:将字节流中的静态存储结构转化为方法区的运行时数据结构(类信息、常量、静态变量、即时编译器编译后的代码) step3:在Java堆中生成Java.lang.class对象,封装了方法区中的数据结构,作为对方...原创 2020-06-23 11:45:34 · 125 阅读 · 0 评论 -
JVM基础02-了解class文件
一、What Is JVM1. 什么是JVMJava虚拟机,针对不同平台的JVM能把.class文件翻译成机器码提供给不同的操作平台执行。2. 特性跨平台,Write One Run Anywhere3. 图解4. JVM JRE JDK的关系详情查看官网:Java官网 :https://docs.oracle.com/javase/8/Reference-> Developer Guides-> 定位到:https://docs.oracle.com/javase/8/原创 2020-06-23 11:44:00 · 122 阅读 · 0 评论 -
JVM基础01-高级语言
一、编译型语言1. 什么是编译型语言针对特定的平台,使用专门的编译器,将高级语言一次性编译成计算机硬件能识别和执行的语言。如C、C++、Golang2. 特性执行速度快,效率高,但需要依靠专门的编译器,跨平台性差一些。二、解释型语言1. 什么是解释性的语言?使用专门的解释器对源码逐行解释成特定平台的机器码并执行。如Python、JavaScript在源程序被执行时才会进行解释。2. 特性速度慢,效率低,借用专门的解释器,跨平台性好一点代码运行时,逐行解释执行,并不是在运行前就翻译原创 2020-06-23 11:41:03 · 98 阅读 · 0 评论 -
JVM新人必看,visualVM哪去了?
最近JDK升级到14后发现bin目录下的visualvm.exe文件不见了,也就是Java自带的visualvm不见了。查了下官网发现JDK8之后都不自带visualvm了。需要到官网下载您需要的版本:https://visualvm.github.io/download.html然后把下载的visualvm解压到JDK目录下就好了,轻松解决!...原创 2020-06-23 09:12:59 · 3298 阅读 · 0 评论 -
JVM调优之工具篇
01 简述一下你对吞吐量和停顿时间的理解吞吐量=应用程序运行时间÷总消耗时间(应用程序运行时间+gc时间)停顿时间:gc时间02常见的jdk命令和工具有什么?并简述他们的作用?一.常用的命令jps->显示当前所有java进程PIDjinfo->查看jvm配置参数信息jstat->查看加载到jvm的类信息和gc信息jstack->查看java进程里的线程信息jmap->查看、打印堆中的对象二.常用工具jvisualVM,jconsole,arthas.jar原创 2020-06-18 15:38:53 · 146 阅读 · 0 评论 -
druid的相关资料网址
druid介绍及配置原创 2018-01-09 09:30:53 · 192 阅读 · 0 评论 -
面试的时候被问到jvm时该怎么回答(基础篇)
0.1 jvm是JAVA虚拟机,jre是java运行环境,jdk是java开发工具包。java开发工具包包含java运行环境,java运行环境包含java虚拟机。像我们在服务器上部署java应用时只需要安装java运行环境就可以了,没必要装jdk。0.2 类加载机制的作用就是把java文件编译后的.class文件加载到java虚拟机(将二进制数据放在方法区,并在堆中new一个object来封装类的数据结构)。其过程包括:装载、链接(验证数据的合法性、为静态变量分配内存并初始化默认值、将能够确认的符号引用转原创 2020-06-16 23:21:44 · 568 阅读 · 0 评论 -
面试的时候被问到垃圾回收时该怎么回答?
01结合Eden区,S0,S1和old区,描述一下一个对象创建的过程。回答:jvm在创建对象时,首先会试图在Eden区为该对象分配内存(如果该对象是大对象,占用内存空间很大,超出临界值则直接在old区为该对象分配内存,如果old区放不下则触发outofmemory异常),如果Eden区剩余空间没有足够的大的区域装载该对象则触发一次young gc,jvm会把Eden存活的对象复制到s0区(也就是from区),Eden区清空。下一次young gc (minor gc)触发时,Eden区和s0区的存活对象会原创 2020-06-16 23:18:23 · 285 阅读 · 0 评论 -
JVM类加载机制个人的理解
个人理解:类加载机制就是通过类加载器将编译后的.class文件加载到虚拟机并执行其指令以完成指定功能的流程。类加载机制的生命周期为:加载、验证、准备、解析和初始化等五个阶段(这里忽略使用和卸载阶段)。也可以将其划分为三个阶段第一阶段:类的加载类的加载指的是ClassLoader将类的.class文件中的二进制数据读入到内存中,将其放在方法区内,然后在堆区创建一个 object,用来封装类在方法区内的数据结构类装载器分为三种:Bootstrapstrap Classloader(顶层加载类)、Exte原创 2020-06-15 15:51:54 · 96 阅读 · 0 评论 -
关于一些实用工具服务器
RMI远程调用rtti运行时类识别 class类对象dwr服务器推送:点击打开链接http://blog.csdn.net/threesan333/article/details/12502689http://blog.csdn.net/pangliang_csdn/article/details/68945872...转载 2018-01-12 09:42:54 · 189 阅读 · 0 评论 -
资料收集
jQuery中的ajax方法,我们有自己封装的工具库utils.js,包含以上多数常用的方法。----------------------------------------------------------------------------------关于遮罩层及其简单实现,遮罩层使用在表单提交的时候为了防止二次提交--------------------------------------...原创 2018-01-11 11:00:08 · 209 阅读 · 0 评论