Java开发中的问题分析
文章平均质量分 52
点滴~
进阶中的工程师
展开
-
Java服务,CPU100%问题如何快速定位?
假设,服务器上部署了若干Java站点服务,以及若干Java微服务,突然收到运维的CPU异常告警。如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代码导致CPU过载?简要步骤如下:(1)找到最耗CPU的进程;(2)找到最耗CPU的线程;(3)查看堆栈,定位线程在干嘛,定位对应代码;步骤一、找到最耗CPU的进程工具:top方法: 执行to...转载 2020-04-20 16:00:57 · 235 阅读 · 1 评论 -
Java服务,内存OOM问题如何快速定位?
某Java服务(假设PID=10765)出现了OOM,最常见的原因为: 本身资源不够,有可能是内存分配确实过小,而正常业务使用了大量内存 申请资源太多,某一个对象被频繁申请,却没有释放,内存不断泄漏,导致内存耗尽 资源耗尽,某一个资源被频繁申请,系统资源耗尽,例如:不断创建线程,不断发起网络连接 一、确认是不是内存本身就分配过小方法:jmap-heap 1076...转载 2020-04-20 15:57:39 · 427 阅读 · 1 评论 -
java.util.ConcurrentModificationException异常
这是一次异常,在for循环中新加了一大堆代码结果调试报异常debug的方法,对新加的代码选择性的注释掉些代码,再次运行,然后还是报错,再注释,再报错,再注释,再报错。一步步的缩写范围,终于注释掉下面这条代码,好了!为什么会这样?我们看看sort()方法:看到迭代器的操作,估计是这里的问题了。具体参考:java.util.ConcurrentModificationExcept...原创 2019-11-29 20:32:58 · 229 阅读 · 0 评论 -
String、StringBuffer、StringBuilder
String使用举例String str = new String("welcome to ");str += "here";它的处理步骤实际上是通过建立一个StringBuffer,让侯调用append(),最后再将StringBuffer toSting();这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣。 并且由于Strin...原创 2018-08-30 20:01:14 · 231 阅读 · 0 评论 -
@Slf4j 不起作用的问题
原创 2018-12-13 16:29:14 · 7807 阅读 · 0 评论 -
设置IDEA支持JS ES6语法
原创 2018-12-14 10:16:27 · 3899 阅读 · 0 评论 -
@RequestBody、@RequestParam 、@PathVariable、mvn
@RequestBodyhttps://blog.csdn.net/justry_deng/article/details/80972817https://www.cnblogs.com/jimmy-c/p/4142441.htmlhttps://blog.csdn.net/micro_hz/article/details/53157738@RequestParamhttps...原创 2019-03-27 16:00:17 · 225 阅读 · 0 评论 -
阿里巴巴 Java 开发手册
一、编程规约(一)命名风格1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例:_name / __name / $name / name_ / name$ / name__2. 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要...转载 2019-03-28 16:42:19 · 476 阅读 · 0 评论 -
StringUtils里面的isBlank()方法的使用以及StringUtils的其他方法的使用
https://blog.csdn.net/qq_26584263/article/details/80004353转载 2019-03-29 12:23:50 · 1842 阅读 · 0 评论 -
map按照key,value比较
import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.List;i...转载 2018-08-04 23:49:09 · 3883 阅读 · 0 评论 -
Cookies 和 Session的区别
Cookies 和 Session的区别转载 2018-07-07 15:29:03 · 184 阅读 · 0 评论 -
Java是如何实现跨平台的?
Java是如何实现跨平台的?跨平台是怎样实现的呢?这就要谈及Java虚拟机(Java Virtual Machine,简称 JVM)。JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编...原创 2018-07-07 15:21:08 · 4189 阅读 · 0 评论 -
List集合中的元素进行排序
面试的时候问到这么个问题,以前没有注意,现在总结一下。Collections对List集合中的数据进行排序,有时候需要对集合中的元素按照一定的规则进行排序,这就需要用到,Java中提供的对集合进行操作的工具类Collections,其中的sort方法。先看一个简单的例子:public static void main(String[] args) { List<Integer&g...转载 2018-04-10 13:59:17 · 1258 阅读 · 0 评论 -
Java中equals,Hashcode和==的区别
参考:Java中equals,Hashcode和==的区别转载 2018-04-17 22:32:03 · 134 阅读 · 0 评论 -
final修饰的类有什么特点
变量定义为final,一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。方法定义为final,是为了防止任何继承类改变它。类定义为final,则该类无法给任何类继承。final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final成员变量表示常量,只能被赋值一次,赋...转载 2018-04-22 10:59:31 · 1958 阅读 · 0 评论 -
浏览器中输入URL到返回页面的全过程
第一步,解析域名,找到主机IP(1)浏览器会缓存DNS一段时间,一般2-30分钟不等。如果有缓存,直接返回IP,否则下一步。(2)缓存中无法找到IP,浏览器会进行一个系统调用,查询hosts文件。如果找到,直接返回IP,否则下一步。(在计算机本地目录etc下有一个hosts文件,hosts文件中保存有域名与IP的对应解析,通常也可以修改hosts科学上网或破解软件。)(3)进行了(1)(2)本地查...转载 2018-05-25 11:45:43 · 463 阅读 · 0 评论 -
什么是java OOM?如何分析及解决OOM问题?
最近查找了很多关于OOM,甚至于Java内存管理以及JVM的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要继续学习。1)什么是OOM?OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明: Thrown w...转载 2018-06-05 10:43:49 · 829 阅读 · 0 评论 -
浅谈HTTPS、SSL、数字证书
转载自:http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html全球可信的SSL数字证书申请:http://www.shuzizhengshu.com在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。本文追本溯源围绕这个模式谈一谈。名词解释首先解释一下上面...转载 2018-06-05 16:42:50 · 710 阅读 · 0 评论 -
Java线程池大小的设置
一般说来,大家认为线程池的大小经验值应该这样设置:(其中N为CPU的个数)如果是CPU密集型应用,则线程池大小设置为N+1如果是IO密集型应用,则线程池大小设置为2N+1如果一台服务器上只部署这一个应用并且只有这一个线程池,那么这种估算或许合理,具体还需自行测试验证。但是,IO优化中,这样的估算公式可能更适合:最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目因...转载 2018-05-31 16:31:48 · 4549 阅读 · 3 评论 -
序列化和反序列化的底层实现原理是什么?
请点击:序列化和反序列化的底层实现原理是什么?转载 2018-06-10 10:45:38 · 865 阅读 · 0 评论 -
Java基础之—:反射
反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解...转载 2018-04-14 13:52:39 · 155 阅读 · 0 评论