谈谈你所不知道的ArrayList缩容

2020-06-23
阅读 2 分钟
3.4k
每当大家谈起ArrayList都只会关注它的自动扩容机制,但是大多数人却不会去关注ArrayList是否会自动缩容。下面会根据几个问题让大家了解一下ArrayList的缩容机制。

如何证明Java子类实际上是拥有父类的私有属性

2020-06-14
阅读 2 分钟
3.8k
关于继承如下 3 点请记住: 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有。

Gson实战之旅

2020-06-07
阅读 4 分钟
3.2k
Gson是一个Google开源出来针在Java对象和JSON数据之间进行相互映射的Java类库。而且使用方式很简单。以maven项目为例,只需要添加以下配置即可使用。

老鼠试毒问题

2020-03-06
阅读 1 分钟
5.9k
前言 最近看到网友讨论一个关于信息论的面试题,原题如下: 1000瓶酒其中1瓶有毒,10只老鼠找出毒酒,需要注意每只老鼠只可以试1次? 当然这个题目也有变种: 1000瓶酒其中1瓶有毒,使用老鼠来试毒,需要注意每只老鼠只可以试1次,最少需要多少只老鼠? 虽然,题目不同,实际上还是同样的原理。这个题目在网上有很多的解答...

Spring的StringUtils踩坑记录

2020-01-09
阅读 2 分钟
2.3k
这个VO是用于从前端分页查询时传参,而query是用于传递查询条件的(这里不讨论用Map传参是否合理)。当前端无查询条件时则会导致query为null,如果不注意容易出现NPE。

为什么SpringMVC中请求的body不支持多次读取

2019-12-30
阅读 6 分钟
3.4k
在Springboot的项目中使用Servlet的Filter来实现方法签名时,发现请求的body不支持多次读取。我是通过getInputStream()来获取流,然后通过读取流来获取请求的body。

为什么ServletInputStream不支持多次读取

2019-12-26
阅读 4 分钟
5.3k
前言 在Springboot的项目中使用Servlet的Filter来实现方法签名时,发现ServletInputStream不支持多次读取流。 虽然网上有很多解决方案的例子,但是我发现没有一篇文章解释为什么会这样的文章,所以决定自己去研究源码。 ServletInputStream和InputStream 首先肯定是研究ServletInputStream这个类了,却发现这个类只是一...

GradleWrapper(Gradle包装器)基本使用和常见问题

2019-11-08
阅读 2 分钟
4.9k
一般Gradle项目初始化(执行gradle init)后都会带有Gradle Wrapper。其关键结构在项目的根目录下,如下所示(省略与Gradle Wrapper无关的文件):

创建新的Gradle构建

2019-10-31
阅读 2 分钟
1.9k
在项目的命令行(例如我的当前目录就是G:\basic-demo)里面执行gradle init指令,遇到选项直接按回车键使用默认配置即可(这样默认创建的是基于Groovy脚本的项目)。执行成功输出关键内容如下: {代码...}

Windows安装Gradle

2019-10-30
阅读 1 分钟
3.9k
Gradle是一个基于Apache Ant和Apache Maven概念的==项目自动化构建开源工具==。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。

Spring JPA整合QueryDSL

2019-10-24
阅读 10 分钟
10.9k
前言Spring JPA是目前比较常用的ORM解决方案,但是其对于某些场景并不是特别的方便,例如查询部分字段,联表查询,子查询等。而接下来我会介绍与JPA形成互补,同时也是与JPA兼容得很好的框架QueryDSL。同时由于目前主流使用Spring Boot,所以本文也会基于Spring Boot来进行演示如果对于长文无感,但是又希望了解QueryDSL...

1114-按序打印

2019-09-10
阅读 2 分钟
1.7k
我们提供了一个类: {代码...} 三个不同的线程将会共用一个 Foo 实例。 线程 A 将会调用 one() 方法 线程 B 将会调用 two() 方法 线程 C 将会调用 three() 方法 请设计修改程序,以确保 two() 方法在 one() 方法之后被执行,three() 方法在 two() 方法之后被执行。 示例1: {代码...} 示例2: {代码...} 提示:尽管输入...

String真的不可变吗

2019-07-24
阅读 3 分钟
2.7k
前言 提到Java的String,都会提起String是不可变的。但是这点是真的吗?String的不可变是否可以破坏呢? 在验证之前,首先还是需要介绍一下String的不可变特性。 PS:这里还要提到自己遇到的面试题: {代码...} String不可变特性 String的不可变指的是 String内部是使用一个被final修饰char数组value存储字符串的值 数组...

5130-等价多米诺骨牌对的数量

2019-07-21
阅读 2 分钟
1.9k
给你一个由一些多米诺骨牌组成的列表 dominoes。 如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。 形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 a==c 且 b==d,或是 a==d 且 b==c。 在 0 <= i < j < dominoes.length 的前提下...

SpringBoot统一响应体解决方案

2019-07-18
阅读 8 分钟
13.9k
前言 最近在优化自己之前基于Spring AOP的统一响应体的实现方案。 什么是统一响应体呢?在目前的前后端分离架构下,后端主要是一个RESTful API的数据接口。 但是HTTP的状态码数量有限,而随着业务的增长,HTTP状态码无法很好地表示业务中遇到的异常情况。 那么可以通过修改响应返回的JSON数据,让其带上一些固有的字段,...

5118-航班预订统计

2019-07-07
阅读 2 分钟
2.6k
这里有 n 个航班,它们分别从 1 到 n 进行编号。 我们这儿有一份航班预订表,表中第 i 条预订记录 bookings[i] = [i, j, k] 意味着我们在从 i 到 j 的每个航班上预订了 k 个座位。 请你返回一个长度为 n 的数组 answer,按航班编号顺序返回每个航班上预订的座位数。 示例: {代码...} 提示: 1 <= bookings.length &l...

5117-IP 地址无效化

2019-07-07
阅读 1 分钟
1.5k
给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。 示例1: {代码...} 提示: 示例2: {代码...} 提示: 给出的 address 是一个有效的 IPv4 地址

通俗易懂的Java线程池原理

2019-07-01
阅读 2 分钟
1.5k
最近发现很多小伙伴对于Java线程池ThreadPoolExecutor的原理不是特别的理解,所以想通过这篇文章来让大家更好的认识线程池的原理,了解到其是如何工作的?

1104-分糖果 II

2019-06-30
阅读 2 分钟
1.5k
排排坐,分糖果。 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。 给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。 然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗...

Springboot整合Hibernate拦截器时无法向拦截器注入Bean

2019-06-28
阅读 5 分钟
5.3k
根据异常信息可知,Spring的IoC容器中并没有SimpleInterceptor这个Bean,从此处可知spring.jpa.properties.hibernate.ejb.interceptor=com.rjh.interceptor.SimpleInterceptor并没有把这个拦截器注册到Spring容器中

1094-拼车

2019-06-23
阅读 3 分钟
2.5k
假设你是一位顺风车司机,车上最初有 capacity 个空座位可以用来载客。由于道路的限制,车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向,你可以将其想象为一个向量)。 这儿有一份行程计划表 trips[][],其中 trips[i] = [num_passengers, start_location, end_location] 包含了你的第 i 次行程信息: 必须接...

1093-大样本统计

2019-06-23
阅读 4 分钟
1.7k
我们对 0 到 255 之间的整数进行采样,并将结果存储在数组 count 中:count[k] 就是整数 k 的采样个数。 我们以 浮点数 数组的形式,分别返回样本的最小值、最大值、平均值、中位数和众数。其中,众数是保证唯一的。 我们先来回顾一下中位数的知识: 如果样本中的元素有序,并且元素数量为奇数时,中位数为最中间的那个...

1090-受标签影响的最大值

2019-06-16
阅读 3 分钟
1.8k
我们有一个项的集合,其中第 i 项的值为 values[i],标签为 labels[i]。 我们从这些项中选出一个子集 S,这样一来: |S| <= num_wanted 对于任意的标签 L,子集 S 中标签为 L 的项的数目总满足 <= use_limit。 返回子集 S 的最大可能的 和。 示例1: {代码...} 示例2: {代码...} 示例3: {代码...} 示例4: {代码...

1089-复写零

2019-06-16
阅读 1 分钟
2.1k
给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意:请不要在超过该数组长度的位置写入元素。 要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。 示例1: {代码...} 示例2: {代码...} 提示: 1 <= arr.length <= 10000 0 <= arr[i] &lt...

5083-Bigram 分词

2019-06-09
阅读 2 分钟
1.6k
给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 "first second third" 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。 对于每种这样的情况,将第三个词 "third" 添加到答案中,并返回答案。 示例1: {代码...} 示例2: {代码...} 提示: 1 <= text.length <= 1000...

mysql踩坑记录之limit和sum函数混合使用问题

2019-06-06
阅读 2 分钟
3.1k
今天同事在同步完订单数据后,由于订单总金额和数据源的总金额存在差异,选择使用LIMIT和SUM()函数计算当前分页的总金额来和对方比较特定订单的总金额,却发现计算出来的金额并不是分页的订单总金额,而是所有订单的总金额。

Java中ArrayList的对象引用问题

2019-06-03
阅读 5 分钟
4.5k
事件起因是由于同事使用ArrayList的带参构造方法进行ArrayList对象复制,修改新的ArrayList对象中的元素(对象)的成员变量时也会修改原ArrayList中的元素(对象)的成员变量。

5076-字符串的最大公因子

2019-06-02
阅读 2 分钟
3.2k
对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。 返回字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。 示例1: {代码...} 示例2: {代码...} 示例3: {代码...} 提示: 1 <= str1.length <= 1000 1 <= str2.length <= 1000 str1[i] 和 str2[i] ...

mysql中的_rowid

2019-05-04
阅读 1 分钟
8.6k
而在MySQL中也有一个类似的隐藏列_rowid来标记唯一的标识。但是需要注意_rowid并不是一个真实存在的列,其本质是一个非空唯一列的别名。

CentOS和Ubuntu上实用文件格式转换工具

2019-04-24
阅读 1 分钟
4k
而在CentOS系统上有个很方便的工具dos2unix/unix2dos可以解决这个问题。Ubuntu上则可以使用tofrodos/fromdos