为什么需要线程池?什么是池化技术?

2022-03-02
阅读 3 分钟
1.6k
在 Java 语言中,提高程序的执行效率有两种实现方法,一个是使用线程、另一个是使用线程池。而在生产环境下,我们通常会采用后者。为什么会这样呢?今天我们就来聊聊线程池的优点,以及池化技术及其应用。

Vue 状态管理与与SSR详解

2022-03-01
阅读 25 分钟
1.1k
1、vuex简介1、定义在vue项⽬中,每个组件的数据都有其独⽴的作⽤域。当组件间需要跨层级或者同层之间频繁传递的时候,数据交互就会⾮常繁琐。vuex的主要作⽤就是集中管理所有组件的数据和状态以及规范数据修改的⽅式。

80 行代码实现简易 RxJS

2022-02-28
阅读 9 分钟
1.1k
RxJS 是一个响应式的库,它接收从事件源发出的一个个事件,经过处理管道的层层处理之后,传入最终的接收者,这个处理管道是由操作符组成的,开发者只需要选择和组合操作符就能完成各种异步逻辑,极大简化了异步编程。除此以外,RxJS 的设计还遵循了函数式、流的理念。

SSR 和前端编译,在这点上是一样的

2022-02-26
阅读 4 分钟
1k
现在我们都是通过组件的方式来开发前端页面,在浏览器里面,组件渲染时会通过 dom api 对 dom 做增删改来显示相应的内容。但在服务端并没有 dom api,我们可以把组件渲染成 html 字符串,然后下发到浏览器渲染,因为已经有了 html 了,就可以直接渲染成 dom,不再需要执行 JS,所以很快。

面试官:linux零拷贝的原理是什么?

2022-02-25
阅读 4 分钟
1.3k
1.前言像大白这种调包侠,深知不懂底层技术点就如同空中楼阁,再这样下去面阿里p10是没希望了。 想到这里,我开始慌了,所以今天和大家一起学习个底层技术点-零拷贝Zero-Copy。Linux系统中一切皆文件,仔细想一下Linux系统的很多活动无外乎读操作和写操作,零拷贝就是为了提高读写性能而出现的。废话不多说,马上开大车...

前后端分离项目,如何解决跨域问题?

2022-02-24
阅读 5 分钟
1.7k
跨域问题是前后端分离项目中非常常见的一个问题,举例来说,编程学习网站的前端服务跑在 8080 端口下,后端服务跑在 9002 端口下,那么前端在请求后端接口的时候就会出现跨域问题。

Blinn-Phong反射模型

2022-02-23
阅读 6 分钟
1.4k
前言在这一章中,实现光线与对象表面之间的相互作用。目的是在渲染流水线中增加着色功能,所以这里只讨论最基础的局部光照模型。与全局光照不同,在局部光照模型中,着色点的颜色值只取决于着色点表面的材质属性、表面的局部几何性质以及光源的位置与属性,而与场景中其他的表面无关。

15 行代码在 wangEditor v5 使用数学公式

2022-02-21
阅读 4 分钟
2.7k
前言wangEditor v5 正式版发布在即,为了验证它的扩展性,我开发了几个常用的第三方插件。本文介绍一下 formula 插件的设计和使用。

面试突击:说一下线程生命周期,以及转换过程?

2022-02-18
阅读 7 分钟
655
线程的生命周期指的是线程从创建到销毁的整个过程,通常情况下线程的生命周期有以下 5 种:初始状态可运行状态运行状态休眠状态终止状态它们的状态转换如下图所示:Java 线程生命周期Java 线程的生命周期和上面说的生命周期是不同的,它有以下 6 种状态:NEW(初始化状态)RUNNABLE(可运行/运行状态)BLOCKED(阻塞状态...

Java如何实现消费数据隔离?

2022-02-17
阅读 4 分钟
899
austin-api接收到了请求之后,将请求发往Kafka,topicName为austin。而在austin-handler起了一个groupName名为austinGroup监听austin这个topic的数据,进而实现消息发送。

EdgeDB 架构简析

2022-02-15
阅读 7 分钟
1.2k
与国外不同,我在中文社区碰到的关于 EdgeDB 最多的问题就是——EdgeDB 与 openGauss、OceanBase、TiDB 有什么不同吗?EdgeDB 支持水平伸缩吗?本文将从 EdgeDB 架构设计的角度尝试回答以上问题,以及“EdgeDB 是什么”。

手写简易版 React 来彻底搞懂 fiber 架构

2022-02-14
阅读 10 分钟
1.2k
React 16 之前和之后最大的区别就是 16 引入了 fiber,又基于 fiber 实现了 hooks。整天都提 fiber,那 fiber 到底是啥?它和 vdom 是什么关系?

Web Components 系列—— 详解 Slots

2022-02-12
阅读 6 分钟
1.5k
既然是模板,那就意味着在很多地方都会使用到它,但是,这里会存在一个问题:所有使用这个模板的地方都将显示模板中的内容,即并不是所有人的名字都叫 ”编程三昧“。

GIF 格式解析之表情包是如何动起来的

2022-02-11
阅读 4 分钟
1.5k
作为破除人类交流困境的神器,没有什么场景是一张表情包不能表达的。想像一下,当你正同时打开 N 个 VSCode 疯狂打码的时候,DING~ 的一声脆响,产品经理发来一条消息:昨天提的那几个 bug 修复好了吗?​

基于babel的埋点工具简单实现及思考

2022-02-10
阅读 7 分钟
855
什么是AST抽象语法树程序的编译过程什么是程序的编译呢?我们都知道,在传统的编译语言流程中,程序中的一段代码在它被执行之前都会经历三个步骤,这个步骤的执行过程也就是程序的编译过程。

使用craco对cra项目进行构建优化

2022-02-09
阅读 7 分钟
2.5k
修改CRA项目的配置使用create-react-app 创建的项目默认是无法修改其内部的webpack配置的,不像vue-cli那样可以通过一个配置文件修改。 虽然有一个eject 命令可以是将配置完全暴露出来,但这是一个不可逆的操作,同时也会失去CRA带来的便利和后续升级。

做了一份前端面试复习计划,保熟~

2022-02-08
阅读 27 分钟
762
前言以前我看到面试贴就直接刷掉的,从不会多看一眼,直到去年 9 月份我开始准备面试时,才发现很多面试经验贴特别有用,看这些帖子(我不敢称之为文章,怕被杠)的过程中对我的复习思维形成影响很大,所以我现在把之前自己好好整理的面试计划分享出来,希望能帮到接下来要找工作的朋友,不喜勿喷哈~

对GO切片的理解

2022-01-28
阅读 4 分钟
981
指向底层的数组的指针(pointer)容量(capacity)长度(length)从组成可以看到,切片本身是不包含数组而是拥有一个指向底层数组的指针,这个和Java中的ArrayList不同.

使用 Lambda 表达式实现超强的排序功能

2022-01-27
阅读 10 分钟
2.6k
借助存储系统(SQL、NoSQL、NewSQL 都支持)的排序功能,查询的结果即是排好序的结果查询结果为无序数据,在内存中排序。今天要说的是第二种排序方式,在内存中实现数据排序。

异步调用如何使用是最好的方式?

2022-01-26
阅读 9 分钟
1.2k
一、异步调用方式分析今天在写代码的时候,想要调用异步的操作,这里我是用的java8的流式异步调用,但是使用过程中呢,发现这个异步方式有两个方法,如下所示:

914. 卡牌分组——欧几里得算法

2022-01-25
阅读 1 分钟
713
难度:简单给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。 组内所有的牌上都写着相同的整数。 仅当你可选的 X >= 2 时返回 true。示例 :输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]复制...

Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext

2022-01-24
阅读 4 分钟
1k
Sender: 是kafka发送流程的主要服务,负责接收数据并将其放置到RecordAccumulator,或者从RecordAccumulator中取出数据发送到Kafka的服务端,或者负责更新一些meta服务等情况。RecordAccumulator:kafka的整个发送流程是异步的,主要目的是为了batch一些数据以增大吞吐,而RecordAccumulator则是主要负责进行对数据缓存...

用Java实现线段树

2022-01-22
阅读 6 分钟
1.6k
一般来说,线段树是不会加节点的,也不支持动态添加节点。线段树也是二叉树的一种,不过它的节点是以一个区间来定义节点的。具有一个单一区间的就是叶子节点。所以线段树,本质上就是一棵区间树。​

简单的线程池实现多线程对大文件的读取

2022-01-21
阅读 2 分钟
1.2k
import java.io.*;import java.util.ArrayList;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;

SSH 端口转发与 SOCKS 代理

2022-01-20
阅读 2 分钟
1.3k
SSH port forwarding 端口转发的三种方式Local Port Forwarding 本地端口转发将连接从客户端主机转发到 SSH 服务器主机,然后转发到目标主机端口。

SpringBoot:如何优雅地进行参数传递、响应数据封装、异常处理?

2022-01-19
阅读 5 分钟
1.2k
</dependency>复制代码2 统一封装返回数据在web项目中,接口返回数据一般要包含状态码、信息、数据等,例如下面的接口示例:

Ubuntu16.04/Scala2.11.8安装教程

2022-01-18
阅读 3 分钟
552
Ubuntu16.04/Scala2.11.8安装教程(1)Linux系统的安装Scala运行在Java虚拟机(JVM)之上,因此只要安装有相应的Java虚拟机,所有的操作系统都可以运行Scala程序,包括Window、Linux、Unix、Mac OS等。本教程后续的Spark操作都是在Linux系统下进行的

ThinkPHP6和GatewayWorker简单的示例

2022-01-17
阅读 5 分钟
1.4k
1.下载GatewayWorker www.workerman.net/doc/gateway…安装如图下载解压就行以次开启端口: 8282,1238,2900,2901,2902,2903启动以debug(调试)方式启动php start.php start以daemon(守护进程)方式启动php start.php start -d停止php start.php stop重启php start.php restart平滑重启php start.php reload查看状...

关于项目中 Repository 层的思考

2022-01-15
阅读 1 分钟
1.1k
维护这一层的开发者,可以称为 仓库管理员 ,当使用者需要查询数据的时候,需要告诉仓库管理员,由仓库管理员拿给他,至于仓库管理员从哪拿的数据,使用者无需关系。

Java实现创建Zip压缩包并写入文件

2022-01-14
阅读 3 分钟
2k
前言工作中需要把一些数据放到一个zip的压缩包中,可以使用 ZipOutputStream。ZipOutputStream可以将内容直接写入到zip包中。一般创建ZipOutputStream通常是先封装一个FileOutputStream,然后在每写入一个文件之前,需要先调用一次putNextEntry,然后使用write写入byte[]类型的数据,当写入完毕的时候使用colseEntry来结...