JAVA基础
文章平均质量分 67
新栋BOOK
经历过才知道有多美
展开
-
一种隐式的java空指针异常--自动拆箱
在java开发中,我们遇到最多的异常莫过于java.lang.NullPointerException异常了.但是有一种空指针异常确实非常的隐蔽。那就是java语法糖的一种,自动装箱拆箱。原创 2016-12-04 11:57:00 · 1852 阅读 · 0 评论 -
一次jmq性能下降的原因总结与思考
大家,好!我们目前使用的jmq是京东自己开发的,基于mq的一套消息机制。我们都知道,jmq有个批量发送,一般遇到性能问题,也都建议将 单条发送改成批量发送,比如producer.send(list)。但是改成批量发送就一定会提高性能了吗?今天遇到这样的问题。Jmq生产性能突然下降,有原来的90ms左右 下降到最低的220ms左右。下面这个图,性能突然下降。联系了 jmq负责...原创 2016-11-07 13:37:36 · 1028 阅读 · 0 评论 -
一个内存报警问题总结
查看当时的FULL GC从图上面看已经很频繁打印dump文件 执行命令:jmap -dump:format=b,file=/export/Logs/anycall.jd.local/HeapDump.bin 然后通过Eclipse Memory Analyzer查看,如下图,2.9G 占据了大部分,我们最主要的是看到底哪些类撑爆了内存,继续往下走,查看dominator_tree...原创 2016-11-07 13:41:06 · 841 阅读 · 0 评论 -
一次大面积线上cpu使用率过载报警总结
线上报警,持续收到cpu使用过载,打开cap系统查看,cpu使用情况,如图:已经接近100%开始处理问题:步骤如下登入堡垒机第一步,使用top命令执行top命令,如图示:找到java进程执行 top –p 138209 –H,找出%cpu值很大的,那个情况下一般都比其它线程超过很多,比如下面的32%(说明,原图由于时间关系找不到了,类似下面这张图),然后拿到 第...原创 2016-11-07 13:46:23 · 3493 阅读 · 0 评论 -
通过双11暴露出的我们的哪些问题-阶段性总结
今年的双11我们过的不可谓不丰富,有前奏,有高潮,大家应该都有切身感受,趁着双11的热度^_^,思考了几个下面的问题,大家一起看看。暴露出的问题:1、 在代码review的过程中,我们对如何写一段好的的代码,找不到感觉,比如,对方法的控制上,如何做到小方法解决一个功能,粒度控制的不好。想对某一个单一的功能增加ump监控,往往却包含了A、B、C功能。2、 外部资源JSF等,...原创 2016-11-11 09:50:37 · 1187 阅读 · 0 评论 -
映入眼帘的JSON-fastjson常见用法
多年以前一直用XML,xml格式几乎成了当时一种传输数据的标准,soap中,甚至http中皆传xml。直到有一天json出现了。有关xml与json对比的文章,网上一大堆,个人认为实在没有必要。因为这是两个不同的东西。都有用武之地。xml的定义《维基百科https://zh.wikipedia.org/wiki/XML》:可扩展标记语言(英语:Extensible Mark...原创 2016-12-02 14:48:02 · 1328 阅读 · 0 评论 -
Network Emulator for Windows Toolkit一个模拟弱网络环境的软件
用户会在各种网络环境下使用我们的app,pc应用,我们决不能祈求用户的网络环境都是稳定的,因此我们需要模拟出弱网络的情况,用来测试我们的APP在弱网络环境下的表现如何。Network Emulator for Windows Toolkit(NEWT),简称NEWT。模拟移动端应用,在pc端创建wifi热点,使用方式为独占式,手机连接这个热点,既可以开始测试。下载地址:https:/...原创 2016-12-06 13:29:07 · 12019 阅读 · 0 评论 -
DBCP老矣,但能饭
数据库连接池在J2EE领域是一个不可缺失的组件,尽管DRUID越来越流行,但是DBCP作为一个老牌的数据库连接池一直在企业系统中默默的奉献着自己。比如我们的大部分系统还都是使用DBCP,那么我们很有必要对DBCP有一个熟悉的认识。鉴于这样的需求,结合自己的认知重新做了一个梳理,一来自己可以在以后的工作中回过头来温习,二来也希望能够帮助其他同学对DBCP以及涉及到的相关概念。原创 2017-10-28 21:47:38 · 513 阅读 · 0 评论 -
如何输出TOMCAT的配置参数
有时候我们想获取当前运行的Tomcat的各种参数,比如maxThreads、acceptThreadCount等。例如下面两张图:1、Http11Protocol1、Http11NioProtocol3、实现代码import com.google.common.collect.Maps;import org.junit.Test;import org.slf4j.Logger;import o原创 2017-10-31 22:57:06 · 2190 阅读 · 0 评论 -
门面之下,日志之上-SLF4J
SLF4J不同于其它的日志类库,而且与其它的类库有很大的不同。SLF4J(Simple loggin Facade for Java)并不是一个真正的日志实现,而是一个抽象层,这样我们就可以在我们的应用里面使用我们想使用的日志类库。可以看出来,如果我们编写的是API或者是通用的类库,这些API或者类库要拿出去给其他组织或团队使用,那么我们采用SLF4J就是非常好的一种方式。原创 2017-01-15 14:46:35 · 2602 阅读 · 1 评论 -
我是一个JAVA线程,我有话要说
我可以通过Thread类new一个出来,也可以通过Runnable实现出来。另外我跟各个系统平台还有很大关系,我虽然诞生自JVM的虚拟环境,但运行时的程序本身是用C语言之类的开发语言编写的本机程序,**因此我还占用了本机资源,比如本机内存,这点可以观察Thread类里面有很多的native方法就能明白我确实不能像其他类那样”潇洒”,因为这意味着我所拥有的这些方法往往是没有使用或者没有办法来使用跟...原创 2019-06-13 12:26:31 · 272 阅读 · 2 评论