java
文章平均质量分 87
三猪
一个不知名的码农
展开
-
mockito与powerMock用法汇总
前言上次整理了单测的学习笔记,所以这次就对java常见的两个单测工具包(mockito、powerMock)进行学习了解,总结一些常见的用法mockito1.mock 对象Person xiaoHong = new Person();Person xiaoMing = Mockito.mock(Person.class);xiaoMing 被加上了一层动态代理 MockMethodInterceptor2.mock bean 并注入到测试类使用 @RunWith(MockitoJUni原创 2021-01-19 01:23:21 · 2370 阅读 · 0 评论 -
一道面试题 初探Java类初始化与实例化
前言让我想好好理理这个知识点,主要还是因为看了下面这道经典面试题(出处实在找不到),本来自信满满,写完一看,居然个答案不一样。我还试图想抓出答案的漏洞,所以就有这一篇文章,当然最后还是我被打脸了。所以在原有面试题的基础上,再增加了一点点料,加大点难度,愉悦的开始。面试题首先有一个父类Fatherpublic class Father { private int i = test(); private static int j = method(); static...原创 2021-01-08 20:45:20 · 1007 阅读 · 1 评论 -
七个问题 初探语法糖enum
为什么会突然想要了解Enum呢?因为先前遇到这样的一种情况,我有一个接口与该接口的众多实现类,这些实现类中有着不同的参数,而我希望能在接口定义一个通用的方法,来对每个实现类的参数进行收集思考之余,我想到了Enum中的values()方法,能得到不同枚举类中的枚举值也因为先前没有好好了解Enum的设计,所以趁着这个机会,来尝尝这个java的语法糖以下不对Enum的用法进行说明,毕竟网上大多数博客已经解释得够详细了问题Enum是如何实现的Enum的values()方法是怎么实现的Enum的v原创 2020-12-01 00:23:47 · 1021 阅读 · 0 评论 -
《单元测试的艺术》学习笔记
引言单元测试一直以来都是开发过程极容易被忽视的一环,我觉得测试是代码高质量、可维护的保证,对于自身开发而已、又或是他人接手代码而言,优秀的单元测试总能带来便捷;尽管单元测试会导致前期开发需要花费更多的时间来进行测试单元的编写,但我相信,对于长久而言,好处总归是更多的。工作之余,抽空看了《单元测试的艺术(第2版)Roy Osherove 著》,便记录下了一些好的点,用于之后复盘学习。原书中还有大量C#在单元测试领域的工具使用指南,由于本人并非使用C#进行日常开发,所以这部分我也就简单略过了。单元测试基原创 2020-11-14 20:57:43 · 939 阅读 · 0 评论 -
三个问题 初探Arraylist
问题ArrayList的数据结构ArrayList的初始容量与扩容规则ArrayList中的elementData为什么使用transient修饰如果不想看源码实现,可以直接跳到最后从源码来看ArrayListnewpublic ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;}// 当我们指定初始容量时,会直接为elementData创建一个指定容量大小的Object数组public Ar原创 2020-11-08 02:11:00 · 797 阅读 · 0 评论 -
java 利用Optional解决NPE问题
NPE(NullPointerException) 问题,日常开发中很常会遇到,尤其在 OOP,像下图这种如果我们要获取 User 的 department 信息中的 anthority 信息,我们可以这么写User user = new User();// ...Anthority anthority = user.getDepartment().getAnthority();一旦 department 为空,就会出现 java.lang.NullPointerException 的异常,此原创 2020-10-31 14:48:55 · 1230 阅读 · 4 评论 -
十个问题 初探HashMap
HashMap作为最常用的数据结构,深入了解一下还是很有必要的,先前只知道大概,也没有时间去理解为什么。所以这次就特地整理了以下问题,并就源码进行剖析,来探究自己心理的疑问。注:如果有理解地不恰当的地方,还望批评指正问题HashMap 查询的时间复杂度HashMap 的存储结构HashMap 默认bucket数组多大如果new HashMap<>(19),bucket数组多大HashMap 什么时候开辟bucket数组占用内存HashMap 何时扩容HashMap 的容量为原创 2020-10-31 14:44:45 · 994 阅读 · 0 评论 -
浅谈 断言(assert)
断言是什么?引用百度百科的介绍,“在程序设计中,断言是一种放在程序中的一阶逻辑,目的是为了标示与验证程序开发者预期的结果-当程序运行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止运行,并给出错误消息。”java的断言是通过assert语句来实现的,用于捕获运行时不应该发生的非法情况。如果在执行断言时,对应的断言为真,啥事都没有发生,如果对应的断言为假,JVM会抛出AssertionError的异常在java中,assert的语法有以下两种:/** 如果<boolean表达式&原创 2020-09-24 00:03:11 · 1918 阅读 · 1 评论 -
springboot 工程结构
项目的工程结构理论上来说并没有什么强制要求,我们可以把所有的业务逻辑写在接口方法中,这并不会影响我们项目的运行。对于我而言,规范好自己的工程结构,对自己对别人都是很好的,不同结构各司其职,互不越界是我编写项目的规范之一。下图是整合了阿里孤尽老师的《JAVA开发手册》中所提及的工程结构,我也是针对了该工程结构反思了自己先前的一些项目写法。对于springboot项目而言,一个完整的请求大致会按顺序经过以下流程 Filter与Interceptor 这两者的功能接近,但具体实现技术不同。通原创 2020-09-05 14:37:28 · 1309 阅读 · 0 评论