Jacobc' Blog

纵有疾风起,人生不言弃

文件描述符 fd

文件描述符(File descriptor)是计算机科学中的一个术语,是一个用于表述指向文件的引用的抽象化概念。 文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX、Linux 这样的操作系统。

MongoDB 的正确打开方式 Part1

MongoDB 的正确打开方式 Part1 在关系型数据库中,处理关系时,总是会有一张关系表,不论关系的规模,但在 MongoDB 数据库中,需要考虑关系的规模,我们用一对多关系举例:

Mysql update 结合另一个表更新数据

有时 update 更新语句会需要根据另一个表进行更新,举例如下: -- 方式一: update tableA a, tableB b set a.Name=b.Name, a.Age=b.Age where a.IDCard=b.IDCard; -- 方式二: update tableA a inner join tableB b on a.IDCard=b.IDCard set a.Name=b.Name, a.Age=b.Age;

Flutter 返回按钮返回桌面

Flutter 返回按钮返回桌面 想实现点击返回按钮,直接返回桌面,本想 flutter 有方法的话,直接用,然而好像没有,所以采用调用本地方法返回桌面 Android 端 MainActivity 代码如下 package com.dreamreal.example; import android.os.Bundle; import io.flutter.app.FlutterActivity; import io.flutter.plugin.common.MethodChannel; import io.flutter.plugins.GeneratedPluginRegistrant; public class MainActivity extends FlutterActivity { // 字符串常量,回到手机桌面 private final String chanel = "back/desktop"; // 返回到桌面事件 static final String backDesktopEvent = "backDesktop"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); GeneratedPluginRegistrant.registerWith(this); MethodChannel(getFlutterView(), chanel).setMethodCallHandler( (methodCall, result) -> { if (methodCall.method.equals(backDesktopEvent)) { moveTaskToBack(false); result.success(true); } } ); } } 如果是 kotlin 的话,如下:

接口幂等性设计

接口幂等性设计的 N 种方式

MySQL 四种隔离级别 & 间隙锁

事务特征、隔离级别以及间隙锁

Cobra - 一个 Golang 命令行项目生成工具

Cobra 简要教程

Golang Interface 解析

Interface 解析 原文链接 先看一段代码: func Foo(x interface{}) { if x == nil { fmt.Println("empty interface") return } fmt.Println("non-empty interface") } func main() { var x *int = nil Foo(x) } 上面的例子的输出结果如下 $ go run test_interface.go non-empty interface 可能你会感觉奇怪,为什么会是 non-empty inerface,那么继续往下看,你就会知道答案。

Golang slice 切片原理

Golang slice 切片原理解析

Jobrunner 源码解析

Jobrunner 定时任务库源码解析