
Java
猿人谷
【欢迎关注微信公众号:猿人谷】技术成长没有捷径,唯有积累。没有啥大佬,代码写多了,坑踩多了,想多了,写代码自然就顺手了。
展开
-
告别空指针,优雅的处理空值
来源:https://lrwinx.github.io/导语在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不这头绪,它的出现很有可能和当前的业务逻辑并没有关系。但它会让你很头疼。有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务系统发生问题。此篇文章,我总结了几种关于空值的处理手法,希望对读者有帮助。业务中的空值场景存在一个UserSearchService用来提供用户查询的功能:public interface UserSearchS转载 2020-07-10 11:33:56 · 928 阅读 · 0 评论 -
通过jstack与jmap分析一次线上故障
来源:https://www.cnblogs.com/kingszelda/p/9034191.html一、发现问题下面是线上机器的cpu使用率,可以看到从4月8日开始,随着时间cpu使用率在逐步增高,最终使用率达到100%导致线上服务不可用,后面重启了机器后恢复。二、排查思路简单分析下可能出问题的地方,分为5个方向:系统本身代码问题内部下游系统的问题导致的雪崩效应上游系统调...转载 2020-03-05 11:08:51 · 4596 阅读 · 0 评论 -
内存泄漏与内存溢出
不管哪种编程语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。java中对象可以采用new或反射或clone或反序列化的方法创建,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由java虚拟机通过垃圾回收机制完成的。GC为了能够正确释放对象,会监控每个对象的运行状况,对他们的申请、引用、被引用、赋值等状况进行监控,java会使用有向图的方法来管...原创 2020-02-26 14:58:57 · 783 阅读 · 0 评论 -
获取对象属性类型、属性名称、属性值的研究:反射和JEXL解析引擎
先简单介绍下反射的概念:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以在运行时装配。在实际的业务中,可能会动态根据属性去获取值。工具类如下:package com...原创 2019-11-28 16:49:40 · 909 阅读 · 0 评论 -
Integer和Integer比较以及Integer和Int的比较分析
发现做项目的过程中,在数值类型的比较上容易犯错,特别是Integer和Integer的比较,Integer和int的比较。虽然这些都是些基础语法,但稍不留意就容易犯错,在实际开发过程中如果出现这类失误,很容易失之毫厘谬以千里。在这里,总结下这些基础知识点。java虽然宣称一切都是对象,但原始数据类型是例外。int是整形数字,是java的9个原始数据类型(Primitive Types)(bool...原创 2019-11-22 14:57:50 · 2945 阅读 · 5 评论 -
HashMap在Jdk1.7和1.8中的实现
Java集合类的源码是深入学习Java非常好的素材,源码里很多优雅的写法和思路,会让人叹为观止。HashMap的源码尤为经典,是非常值得去深入研究的,jdk1.8中HashMap发生了比较大的变化,这方面的东西也是各个公司高频的考点。网上也有很多应对面试的标准答案,我之前也写过类似的面试技巧(,应付一般的面试应该是够了,但个人觉得这还是远远不够,毕竟我们不能只苟且于得到offer,更应去勇敢的追求...原创 2019-11-21 18:01:30 · 1401 阅读 · 0 评论 -
Lombok介绍、使用方法和总结
Lombok介绍、使用方法和总结原创 2019-08-01 14:38:29 · 1013 阅读 · 0 评论 -
Java中List求并集、交集、差集、无重复并集
在实际的开发过程中,某些特定场合,可能会遇到处理list求并集、交集、差集、无重复并集的问题。最近团队有人反馈这个问题,特此总结如下:package com.demo;import java.util.ArrayList;import java.util.List;public class ListTest { public static void main(String[] ...原创 2019-07-24 19:22:38 · 2972 阅读 · 0 评论