AllenJiang  ,  非著名 Java 工程师,欢迎关注微信公众号 : Java技术说

itellij idea 项目结构后面显示 0% classes,0% lines covered, 如何取消?

**1.`windows` 系统下按快捷键 `ctrl + alt + F6`;** **2.`mac` 系统下按快捷键 `command + option + F6`;** ![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/153871945166163) ...
dingpeng  ,  Java 工程师

如何批量更新 mysql 多个字段?

将语句修改为如下: UPDATE campus_report_learn_header_table1 y JOIN ( select b.user_id as user_id, count(DISTINCT a.student_id) as dtqds, sum(a.contract_preferential_money) as dtqde, sum(a.contract_preferential_money) as dtnce from (select * from campus_business_contract where del_fla ...
AllenJiang  ,  非著名 Java 工程师,欢迎关注微信公众号 : Java技术说

说说 nginx 负载均衡的几种算法

## 前言 在 `nginx` 中,我们通过 `upstream` 命令来实现的,由 ngx_http_upstream_module 模块提供支持。 ## nginx 负载均衡算法 - **1:轮询(默认)** 每个请求按照时间顺序逐一分配到下游的服务节点,如果其中某一节点故障,nginx 会自动剔除故障系统使用户使用不受影响。 - **2.权重(weight)** 在配置文件中对下游的服务节点指定权重值 weight, weight 值越大则被分配的评率越高,一般这种负载均衡,用于节点的配置情况不一样,有的可能配置高,有的配置低。 - **3.ip ...
AllenJiang  ,  非著名 Java 工程师,欢迎关注微信公众号 : Java技术说

JVM 类的加载过程,以及什么是双亲委派模型?

![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/153715273147369) Java 通过引入字节码和 JVM 机制,提供了强大的跨平台能力。那么 JVM 又是如何加载我们的 class 类的呢? 一般来说,我们把 Java 的类加载过程分为三个主要步骤: - **1.加载** - **2.链接** - **3.初始化** 上述具体行为在 Java 虚拟机规范中已有明确定义,可参考链接:[https://docs.oracle.com/javase/specs/jvms/s ...
AllenJiang  ,  非著名 Java 工程师,欢迎关注微信公众号 : Java技术说

简说 Mysql 索引原理

![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/153710270120897) 在互联网项目中,大部分都是读大于写的频率,这个比例一般在 `10:1` 。读的次数如此频繁,导致 IO 压力很大,如果说我们能够把查询的 IO 次数控制在常量级,那么这对数据库的性能提升是非常明显的,因此基于 `B+ Tree` 的索引结构出现了。 ## B+ Tree 的数据结构 ![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/1537 ...
AllenJiang  ,  非著名 Java 工程师,欢迎关注微信公众号 : Java技术说

简说 LinkedList 底层代码实现

![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/153702000468543) 如图所示 `LinkedList` 底层是基于双向链表实现的,也是实现了 `List` 接口,所以也拥有 `List` 的一些特点 (JDK1.7/8 之后取消了循环,修改为双向链表)。 ## 新增方法 public boolean add(E e) { linkLast(e); return true; } /** * Links e as last element. ...
AllenJiang  ,  非著名 Java 工程师,欢迎关注微信公众号 : Java技术说

简说 ArrayList/Vector 的底层代码

## ArrayList `ArrayList` 实现于 `List`、`RandomAccess` 接口。可以插入空数据,也支持随机访问。 `ArrayList` 相当于动态数据,其中最重要的两个属性分别是: `elementData` 数组,以及 `size` 大小。 在调用 `add()` 方法的时候: public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return tru ...
AllenJiang  ,  非著名 Java 工程师,欢迎关注微信公众号 : Java技术说

scrapy 中如何设置爬虫请求之间的时间间隔,爬取太快容易被封 IP?

可以在 `settings` 文件里面进行设置: DOWNLOAD_DELAY = 0.25 # 250 ms 的延迟 **以下是官方文档:** > The amount of time (in secs) that the downloader should wait before downloading consecutive pages from the same spider. This can be used to throttle the crawling speed to avoid hitting servers too hard. Decimal num ...
AllenJiang  ,  非著名 Java 工程师,欢迎关注微信公众号 : Java技术说

Python 3.7 环境下运行 scrapy crawl 报错 def write(self, data, async=False)?

**进入 `manhole.py` 文件,将 `async` 替换成 `async1` ,重新运行即可** ...
AllenJiang  ,  非著名 Java 工程师,欢迎关注微信公众号 : Java技术说

docker 中部署的 springboot 项目如何优雅地输出日志?

关于控制台输出可以参考下面这个解决方案: [如何查看运行在 docker 容器中 springboot 项目打印的控制台日志](https://www.exception.site/question/31) 但是生产环境一般不推荐*控制台输出*,因为控制台输出的日志没有持久化,只能实时查看。生产环境下,**一般都是输出到文件中,然后挂载到宿主机的方式来解决**,我们只需要将 `logback` 输出的日志路径挂载到宿主机的指定的路径即可: 我这里是通过 `docker-compose.yml` 服务编排的配置文件来指定,如果你不使用 `docker-compose` 也可以在 ...