自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农无双的博客

每天进步一点点!

  • 博客(103)
  • 资源 (16)
  • 收藏
  • 关注

原创 通过Clojure中的集合与序列谈谈抽象的重要

通过JVM之上的语言Clojure讲解一下什么是抽象,以及抽象的好处。

2024-04-14 21:35:12 646

原创 深入理解Java中的转义字符

深入分析了一下Java字符串和正则表达式中的反斜杠和转义字符的用法

2023-10-28 19:10:42 748

原创 Java中的四种引用类型及其使用方式

本文详细介绍了Java中的四种引用类型:强软弱虚引用,并通过代码展示了它们的用法,有助于大家加深对Java的理解。

2023-04-06 22:38:53 2206 1

原创 汇编系列03-不借助操作系统输出Hello World

通过将汇编程序作为主引导扇区的内容,从而绕过操作系统,在屏幕上打印Hello, world。有助于理解计算机的工作方式。

2023-03-05 21:20:25 640

原创 汇编系列02-借助操作系统输出Hello World

通过汇编在x86-64 CPU上的Linux操作系统的系统调用来实现输出hello world这个小例子,详细剖析syscall指令和系统调用是怎么利用寄存器传递参数的。

2023-03-04 19:36:27 1718

原创 汇编系列01-汇编语言简介

汇编语言简介

2023-03-04 15:50:02 1022

翻译 Rust模块系统的清晰解释

本文通过三个例子来讲解Rust的模块系统与文件系统之间没有隐式映射关系,让Rust学习者能够清晰地理解Rust模块系统。

2022-11-06 20:09:35 399

原创 Rust for循环语法糖背后的API

通过Rust for循环语法糖背后的API来理解所有权转移、借用、可变借用问题。

2022-11-05 19:13:42 1045

翻译 JUnit4和JUnit5的主要区别

本文介绍了JUnit4和JUnit5的主要区别,用于快速了解JUnit5。

2022-10-25 21:05:47 5792

翻译 什么是C和C++标准库?

本文将介绍在编写C/C++应用程序的领域中,标准库的作用以及它是如何在各个操作系统中实现的。

2022-10-09 20:15:27 426

原创 C语言Socket编程为什么要将sockaddr_in强制转换成sockaddr?

通过C语言的Socket编程,分析C语言的结构体指针强制转换的用法。

2022-10-08 19:55:35 2143

原创 Maven生命周期与插件

本文详细介绍maven生命周期和插件及插件目标的关系,为maven插件开发铺平道路。

2022-08-30 18:42:58 781

原创 Spring框架新手快速上手系列:(二)体验一把自己配置低级容器

Spring框架快速上手系列二:手动配置低级容器,感受Spring框架内部的工作原理,开启源码研究之路。

2022-08-24 19:38:11 336

原创 Spring框架新手快速上手系列:(一)鸟瞰Spring框架

Spring框架新手快速上手系列,第一篇,鸟瞰Spring框架工作流程

2022-08-23 19:28:39 399

原创 Gradle新手指南

本文通过探索Groovy脚本的语法来更好地理解Gradle项目中的build.gradle文件

2022-08-21 14:28:23 273

原创 guava缓存使用不当导致的FullGC

java使用guava cache不当,导致的fullgc研究

2022-08-20 20:30:06 2776 2

原创 Rust函数中的范型生命周期参数是什么意思?

本文尝试说明rust的函数生命周期参数的含义到底是什么意思

2022-08-11 12:49:23 146

原创 guava RateLimiter均匀限流

java的guava RateLimiter均匀限流

2022-08-10 19:25:27 308

原创 rust多线程安全计数

rust多线程对整数进行安全地计数的例子,涉及到闭包、原子引用计数clone、线程等知识。

2022-07-24 17:49:08 473

原创 rust中的静态分发和动态分发

rust中的静态分发和动态分发

2022-07-18 22:41:24 1591

原创 rust求两数之和

rust求两数之和

2022-07-18 20:00:07 337

原创 Rust中的函数function与方法method的区别

Rust中函数和方法的区别。

2022-07-14 12:43:06 542

原创 Rust中的dyn关键字

rust的dyn关键字简介与使用demo。

2022-07-11 19:35:29 3320

原创 rust求数组中最大值

rust中的引用、解引用,以及容器的index方法语法糖介绍。

2022-07-10 16:36:31 1087

原创 Elasticsearch常用的相关操作汇总

本文总结了Elasticsearch常用的一些命令,涉及更新mapping、根据查询更新、创建脚本、根据脚本过滤等。

2022-07-06 19:00:01 501

原创 Rust统计文件中单词出现的次数

rust统计文件中单词出现的次数

2022-07-02 22:19:06 417

原创 rust猜数字游戏

java程序员学习rust,实现一个猜数字游戏

2022-06-26 22:01:17 572

原创 聊一聊Java中的线程中断

Java中的线程在运行的时候,有办法强制让它中断运行么?在JDK的Thread类中有stop和destroy方法,但是已经被标记为过时的,stop方法之所以不推荐使用是因为它是不安全的,比如它会让线程释放它持有的锁,这样可能会导致它保护的资源处于不一致的状态,destroy方法则直接抛出NoSuchMethodError异常。正确的、优雅的中断线程的方式应该是给线程发出中断信号(即调用线程实例的interrupt方法,用余春龙大佬的话来说,interrupt这个词很容易让人产生误解,从字面含义看好像是线程

2022-05-04 16:17:03 1883

翻译 为什么Java的wait和notify必须要在synchronized代码块中调用?

让我们看一个例子,如果我们不在synchronized代码块中调用wait()方法会发生什么问题。假设我们要自己实现一个阻塞队列(当然JDK中已经有了BlockingQueue,这儿只是为了说明问题)。没有同步(synchronization)的代码可能像下面这样:class BlockingQueue { Queue<String> buffer = new LinkedList<String>(); public void give(String

2022-05-04 12:30:59 992 1

原创 IDEA中debug Elasticsearch源码之环境搭建

在IDEA中debug Elasticsearch的环境搭建过程

2022-04-06 19:39:46 2449

原创 一次线上频繁FullGC的排查

背景一日,线上的某个服务的某个节点突然告警,频繁地FullGC,这个服务已经有半个月没有进行过发布和容器重启了。处理步骤首先将告警的容器隔离,从网关上摘掉这个节点,让流量不再进入到这个节点。通过jmap将节点的内存快照dump下来。通过jprofiler分析hprof文件。分析原因有很多工具可以方便地分析hprof文件,如MAT、JProfiler。我们通过JProfiler分析,在JProfiler的启动中心打开单个快照。选择下载到本地的hprof文件,等待一会解析,然后直奔“最大

2022-03-12 13:29:53 3545

原创 javassist中的类名前缀Ct是什么意思?

javassist中有CtClass、CtField、CtBehavior等类,那么这些类名中的Ct是什么意思呢?Ct是Compile Time的缩写,即“编译时”的意思。因为CtClass表示一个class还没有被装载进java虚拟机,而java.lang.Class表示一个运行时class,它已经被装载进java虚拟机。刚开始的时候Javassist不能和类加载器一起配合工作,所以Ct也不是什么坏的叫法。那么为什么不叫Lt(Load Time)呢?作者Shigeru Chiba也想重命名,但是为时

2021-11-22 20:05:05 603

原创 用java8 API实现列表元素去重

import lombok.AllArgsConstructor;import lombok.Data;import java.util.Arrays;import java.util.List;import java.util.function.Function;import java.util.stream.Collectors;/** * @author pilaf * @description 用java8 API实现列表元素去重 * @date 2021/7/29 12:55

2021-07-29 15:20:10 195

原创 MongoDB分组取每组中一条数据

需求背景有一个mongo collection,里面存放了运送货物的司机位置信息,字段主要有_id: mongodb默认的主键字段orderId:订单idpositionTime:位置上报时的时间戳lon:经度信息lat:纬度信息现在需要支持根据一批订单id,查询它们最新位置的经纬度。需求分析根据需求背景,可以知道,查询的条件是按照订单id作为分组,每个分组内按照positionTime降序排序,然后将分组内的第一条记录的所有字段返回即可。在NoSQL Booster中查询的语句:db

2021-05-29 08:43:06 4888 1

翻译 ContextLoaderListener vs DispatcherServlet

在基于XML的Spring MVC配置中,在web.xml中你需要有ContextLoaderListener和DispatcherServlet的声明。下面让我们来理解一下它们在框架中的作用和不同。根上下文和子上下文首先,我们需要知道下面这两个知识:Spring在同一时刻可以有多个上下文(contexts)。其中一个是根上下文(Root Context),其它的是子上下文(Child Context)。所有的子上下文可以访问根上下文中定义的bean,但是反过来则不行,即根上下文是不能访问子上下文

2020-12-31 13:15:45 344

原创 牛客网设计LRU缓存结构Java实现

题目描述设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能set(key, value):将记录(key, value)插入该结构get(key):返回key对应的value值[要求]set和get方法的时间复杂度为O(1)某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。若opt=1,接下来两个整数x, y,表示set(x, y)若opt=2,接下来一个整数x

2020-12-09 18:50:01 611 2

原创 IDEA Download Sources报错 Connection refused的解决方法

IntelliJ IDEA 2020.2.2 (Ultimate Edition)maven项目,.class文件点击Download sources的时候报错:java.rmi.ConnectException: Connection refused to host: 127.0.0.1把/etc/hosts文件(mac的hosts路径)中除了127.0.0.1 localhost::1 localhost之外的127.0.0.1或localhost的配置都去掉,重

2020-10-09 15:42:30 9876 2

原创 一台Linux机器上启动多个redis实例

说明:磁盘上的redis程序只有一份,可以启动多个redis实例,每个实例的端口不一样。进入redis官网找到要下载的版本:https://redis.io/download先在linux机器上安装gcc(用yum install gcc安装),如果没安装的话后续make会报错。比如我要安装在/root/software目录下,进入该目录。1.下载tar包wget http://download.redis.io/releases/redis-5.0.9.tar.gz2.解压tar包tar

2020-09-13 11:24:01 1504

原创 MySQL执行Alter table xx add column报Duplicate entry错误

DDL:alter table mytable add column ...(省略了部分字段),add column price int NOT NULL DEFAULT '0' COMMENT '价格';mysql版本是5.7.25-28-log,表的存储引擎是InnoDB。执行Alter table xx add column报了错误ERROR 1062 (23000): Duplicate entry '9277700--1' for key 'spu_sku'Thu Sep 3 1

2020-09-04 11:33:55 2653

原创 非科班程序员迅速理解TCP连接的本质

首先,网络是基于IP的。IP协议给网络中的每个节点分配了一个地址,并且允许你从某个节点发送少量数据到另一个节点,但是这并没有什么太大价值,因为我们没法确认数据是否真的到达对方节点了,并且是否按照正确的顺序到达了。如果我们想要一套抽象的机制来传输任意数量的数据,并且保证它们顺序到达对方节点,我们需要在IP协议上方增加一个协议,用于处理传输中的顺序和保证到达,这正是TCP协议的目标。和TCP并列的,是另一个传输层协议——UDP,UDP协议不做任何检查,不保证数据一定到达,不保证顺序。UDP仅仅是在原始IP数

2020-07-27 17:52:54 458

Learning pyspark

Learning pyspark 英文高清版

2017-08-26

Redis in action

英文版高清

2017-08-26

liferay 资料

liferay portal 学习资料

2016-07-12

Liferay User Interface Development.pdf

Liferay User Interface Development 高清pdf

2016-07-12

Liferay Portal Systems Development

liferay portal system development 高清pdf

2016-07-12

Oracle+11g函数帮助文档

Oracle11g函数帮助文档

2016-07-05

jquery+tomcat+oracle+mysql+css帮助文档

各种帮助文档大集合

2016-07-05

RTKLIB详细说明

RTKLIB的详细说明文档,学习GPS、Beidou等GNSS定位的好资料

2014-10-30

RTKLIB-rtklib_2.4.3

RTKLIB-rtklib_2.4.3 最全面的C程序代码

2014-10-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除