![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 59
guaw007
这个作者很懒,什么都没留下…
展开
-
SpringBoot 单元测试利器——Mockito
Mockito 是一种 Java mock 框架,他主要是用来做 mock 测试的,他可以模拟任何 Spring 管理的 bean、模拟方法的返回值、模拟抛出异常...等,在了解 Mockito 的具体用法之前,得先了解什麽是 mock 测试1. 什么是 mock 测试?mock 测试就是在测试过程中,创建一个假的对象,避免你为了测试一个方法,却要自行构建整个 bean 的依赖链像是以...原创 2020-02-10 16:03:58 · 546 阅读 · 0 评论 -
使用ngork解决聊天机器人webhook url
在开发聊天机器人时,最痛苦的事情不是写code,而是测试 聊天机器人的原理就是接收到讯息时,发送一个request到你指定的位置(就是webhook),然后你的程式收到用户传的讯息之后,你再call API回讯息 然而痛苦的点就在这个webhook上,因为webhook url通常都会有两个要求 必须要有一个domain域名(不能只有IP) ...原创 2019-09-20 16:00:23 · 1753 阅读 · 1 评论 -
Maven - 通用settings.xml
<settings> <!-- mvn deploy设定 --> <servers> <server> <id>release</id> <username>your company's release username</us...原创 2019-06-17 10:04:02 · 1394 阅读 · 0 评论 -
Java - 内存洩漏
内存洩漏与内存溢出 两者的差别 内存洩漏 : 就是Memory Leak,是指程序在申请内存后,无法释放已申请的内存空间,也就是无用的对象持续佔有内存,得不到释放,从而造成内存空间的浪费 内存溢出 : 就是Out Of Memory,是指程序在申请内存时,没有足够的内存空间供其使用 其实内存洩漏和内存溢出之间没有多大的关係,...原创 2019-02-23 14:50:26 · 168 阅读 · 0 评论 -
Java - 理解GC日志
阅读GC日志是处理java虚拟机内存问题的必备技能,以下是一条常见的GC日志2.614: [GC [PSYoungGen: 695091K->2144K(695808K)] 1965832K->1273408K(2094080K), 0.0161160 secs] [Times: user=0.05 sys=0.00, real=0.02 secs] 2.614 : 代表...原创 2019-01-28 10:24:02 · 205 阅读 · 0 评论 -
Java - java虚拟机概述、jre, jdk, jvm的区别
Java虚拟机概述 Java推出时,提出了 "Write Once,Run Anywhere" 的口号,能达到跨平台运行代码这件事,就必须归功于java虚拟机 (Java Virtual Machine)的功劳了 传统C/C++是直接把程序员写的.c/.cpp代码,编译成那个平台(ex: Windows)能看懂的machine code,所以当编译一次之后,生成出来的这...原创 2019-01-22 11:09:43 · 183 阅读 · 0 评论 -
Java - Iterator和ListIterator
Iterator是所有Collection类(List、Set....)们都可以使用的迭代器,而ListIterator则是专门为List类所设计的迭代器 Iterator只支持hasNext()、next()、remove()三种操作,而ListIterator除了原本的3种之外,还支持了更多操作 //Iterator接口public interface Iterator...原创 2018-12-05 22:40:41 · 1388 阅读 · 1 评论 -
Java - Iterable接口、迭代器Iterator
所有的集合类(List、Set...)都实现自Collection接口,而Collection接口又继承于Iterable接口,因此可以说所有的集合类(List、Set...)都实现了Iterable接口 当某个类实现Iterable接口时,我们就能称这个类是一个 "可数" 的类,也就是可以使用iterator()获取一个迭代器Iterator,然后使用这个Iter...原创 2018-12-05 22:37:59 · 276 阅读 · 1 评论 -
Java - 为什麽 Iterator接口 不提供 add(E) 方法 ?
为什麽Iterator接口,只有hasNext()、next()、remove()方法,而没有add(E)方法 ? 逻辑上来说,迭代器是一个一个去遍历集合中的元素,而当前iterator停下的地方,就是迭代到一半的地方 如果当迭代到一半时调用iterator.add()方法,理论上来说,应该是要在当前这个元素E1后面新增一个元素E2,使得下次遍历此集合时,E2一定会出现...原创 2018-12-12 16:58:35 · 1566 阅读 · 0 评论 -
Java - final关键字
final可以加在成员变量、方法、类上,在java中的final,通常他指的是 "这是无法改变的" 的意思 final加在成员变量上 当final加在成员变量上时,意义就是指这个变量的值一旦被初始化之后,就不允许再被改变 如果final是加在基本类型(int、boolean、Integer...)上,因为这些变量中存的是实际的值,所以实际上是不允许改变他的值...原创 2018-10-31 20:34:38 · 139 阅读 · 0 评论 -
Java - 泛型
为什麽需要使用泛型 泛型是Java提供的给类加上一种模板,其意义为"一个类可以适用于许多样的类型",可以说泛型是实现了 "参数化类型" 的概念,他能使得代码具有更好的 可读性、安全性和可重用性 可读性 如果使用泛型的话,一眼就可以知道ArrayList<String>裡放的都是String对象,一目了然 安全...原创 2018-10-19 09:25:56 · 264 阅读 · 0 评论 -
Java - 对象的初始化
Java中的初始化 java会尽力保证所有的变量在使用前都能够得到恰当的初始化,避免出现一堆null导致报错 因此当变量是 基本类型 时,Java都会给他初始化一个初值 但如果变量是 对象类型 时,因为Java无法知道这个自定义的类型要给什麽初始化的值,因此如果没有初始化的话,还是会得到一个null值 初始化的顺序 : 先执行...原创 2018-09-19 16:06:13 · 215 阅读 · 0 评论 -
Java - 传参到底是哪种? pass by value or pass by reference
在了解Java传参数是pass by value或是pass by reference之前,先了解=赋值的用法会对理解传参很有帮助 赋值(=)的用法 =的意义是赋值,但是这个赋值用在 基本类型 和 对象类型 上会有非常大的差别 如果=用在基本类型上,因为基本类型储存了实际的数值,所以在为其赋值时,是直接将值複製一份新的过去 因此假设a、b都是基本类型...原创 2018-09-10 17:48:53 · 1628 阅读 · 0 评论 -
Intellij Idea - 升级遇到的问题 Error: java: invalid flag: -version
有时候在升级idea时会遇到 Error: java: invalid flag: -version 解决办法 打开 File -> settings,搜索 Java compiler 此时会发现右下角的每一个module裡的Compilation options中,都多加了一个-version 把每个module的-...原创 2018-07-26 17:10:20 · 3685 阅读 · 1 评论 -
Java - 注解的使用
Java基本内置注解@Override@Override用在方法上,表示这个方法重写了父方法,如toString()如果父方法没有这个方法,那麽就无法编译过如果实现接口,需要在每个实现方法都加上@Override,说明这是要实现那个接口的方法,而不是自己新创的方法@Deprecated@Deprecated 表示这个方法已经过期,不建议开发者使用暗示在将来某个不确定的版本,就有可能会被取消掉@Su...原创 2018-06-11 19:14:21 · 171 阅读 · 0 评论