- 博客(56)
- 收藏
- 关注
原创 Java - InetAddress#isReachable 方法解析
在 Java 中,类提供一个方法来检查一个网络地址是否可达,其作用类似与在命令行执行ping命令,这个方法就是方法。
2023-12-06 23:26:38
1052
原创 Git - cherry-pick
本地 Git 仓库有两个分支,分别为main和devdev是main在 hash 为a2的时候创建的开发分支:现在需要将dev分支中 hash 为b1的 commit 单独合并到分支main去:这种将dev中部分特定 commit 合并到其他分支的操作在git中的命令是 cherry-pick🍒。
2023-11-30 10:00:00
335
原创 日常 - HttpURLConnection 网络请求 TLS 1.2
验证 JDK 8 HttpUrlConnection 是否支持 TLS 1.2。
2023-05-28 10:00:00
2038
原创 微服务 - 远程调用 OpenFeign
Feign是一个声明式的 HTTP 客户端,它可以让你像调用本地方法一样访问远程服务。Feign 的灵感来源于 Retrofit、JAXRS-2.0 和 WebSocket,它通过可定制的解码器和错误处理,编写任意的 HTTP API。Feign 还整合了 Ribbon 和 Hystrix,具有负载均衡和熔断的能力。Feign 有两种实现:Netflix Feign 和OpenFeign。
2023-03-15 09:00:00
847
1
原创 微服务 - 服务注册 Eureka
微服务(Microservices,一种软件架构风格)核心的组件包括注册中心,随着微服务的发展,出现了很多注册中心的解决方案,其中包括我们熟知的Eureka。Eureka 的设计原则是AP,即可用性和分区容错性。在某一时刻各个节点的数据可能是不一致的,但最终会同步保持一致。Eureka 主打高可用,对数据一致性要求较低,可适用于云机房集群,跨越多机房部署的场景。
2023-03-04 22:05:46
625
原创 日常 - 顺序读写与随机读写
每当需要访问磁盘驱动器上的块时,机械手臂必须将磁头移动到正确的轨道(寻道时间),然后磁盘盘片必须旋转以找到正确的扇区(旋转延迟),这种机械动作需要时间完成。
2023-02-27 23:30:26
843
原创 Java - ServerSocket 之同步阻塞 IO
使用实现一个同步阻塞 IO的 HTTP 协议程序,该程序响应返回一个。并研究其如何与 Linux 系统的接口绑定在一起。Java 的 BIO 实现的 ServerSocket,在现实开发中并不推荐这种。从代码也可以看出,每个连接都需要一个线程去处理,否则将会阻塞无法处理其他事务。而线程的创建又是非常占用系统资源(内存/CPU资源)的,从而导致并发低。因此,该模式也只适用于并发低的场景。
2022-10-04 09:30:00
671
原创 Spring - 总览
Spring 使创建 Java 企业应用程序变得容易,因为它包含了 Java 企业应用所需的一切,支持 Groovy 和 Kotlin 作为 JVM 上的替代语言,并且具有根据应用程序的需要创建多种架构的灵活性。
2022-01-20 09:15:00
405
原创 日常 - CompletableFuture 异步网约车服务超时未关闭
项目场景:通过网约车服务叫车,由于与多个供应商合作,因此叫车时采用多线程异步叫车。设置超时时间,在设定时间范围内,成功在某个供应商叫车即返回成功给前端,进入等待司机接单页面(loading),否则则返回叫车失败。问题描述:偶尔会在同一个供应商创建多个订单,导致多个司机接单!代码如下package xianzhan.j17;import java.time.LocalDateTime;import java.util.List;import java.util.concurrent.Arra
2021-11-19 08:45:00
1156
原创 Java - try-with-resources 语法糖
文章目录前言try-finallytry-with-resources总结前言在运行程序时进行 I/O 操作(如读取文件)后如果不关闭,那么进程就会一直占用该资源造成内存泄漏,特别是进行写操作,操作系统还会对该文件上锁,导致其他进程无法对该文件操作。因此,对资源 I/O 操作要记得进行 close()。try-finally在 Java 代码里,读取文件操作如下:public static void file() throws IOException { Path pom = Paths
2021-10-10 19:54:02
176
原创 Java - foreach 语法糖
文章目录前言代码反编译结论前言探究 foreach 循环语法糖。代码首先,当然是先看下代码:public static void foreach(int[] arr) { for (int i : arr) { System.out.println(i); }}执行后生成的相关字节码为: 0 aload_0 1 astore_1 2 aload_1 3 arraylength 4 istore_2 5 iconst_0 6 istore_3
2021-10-10 18:42:14
281
原创 Java - 自定义注解
文章目录前言代码RetentionPolicy前言实现自定义注解。代码@An 注解package xianzhan.jdk8.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 自定义注解
2021-10-10 16:49:32
143
原创 Java - java.lang.NullPointException 没有堆栈
项目场景:提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obta
2021-10-02 12:14:17
4388
1
原创 Java - SHA1WithRSA PKCS8 签名
文章目录前言代码作用前言算法:SHA1WithRSA密钥格式:PKCS8代码package xianzhan.id;import java.nio.charset.StandardCharsets;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.NoSuchAlgorithmException;
2021-09-27 22:20:12
1218
原创 CMD - WSL2 参考的对象类型不支持尝试的操作
文章目录前言解决方案问题原因前言解决方案以管理员身份运行 CMD,执行以下命令:netsh winsock reset重启计算机再次启动 WSL2。问题原因某些代理软件 VPN 和 WSL2 的 sock 端口冲突。wsl2安装kali 不成功...
2021-09-25 14:34:43
757
原创 Rust - JNI 绑定
文章目录前言资源前言快速浏览 Rust 基础语法。资源Rust 官方文档Rust 语言之旅微软 Take your first steps with Rust
2021-09-06 22:32:41
1161
原创 日常 - SQL 批量插入 MySQL 非自增主键
文章目录前言前言最近因业务需要,项目 KC 接入新的供应商 SQ,原先已经推送给供应商 DD 的计划单需要推送给 SQ,
2021-08-31 00:16:23
1448
原创 Maven - 安装配置
文章目录前言下载环境变量settings.xml最后前言安装 Apache Maven 工具。下载Apache Maven 官网下载最新版,下载的是一个压缩包,我们可以选择本地电脑的一个目录进行解压,解压后就需要配置环境变量了。环境变量因为我使用的开发环境是 Win10,所以这里就直接放图:新建用户变量添加到 Path 变量运行 mvn -v 查看版本接下来就要配置 settings.xml 。settings.xml首先,在用户目录下创建 .m2 目录:> cd
2021-08-22 00:24:17
170
原创 Docker - 安装配置 Docker Desktop
文章目录前言环境安装配置前言记录 Windows 10 环境下使用 docker。记得最开始时,docker 在 Windows 上使用的各种不便,最后 WSL2 的出现,使得现在 Docker Desktop 安装即可以用。wsl --list环境说明版本Windows 10 专业版版本号20H2操作系统内部版本19042.1110当然,还需要启用虚拟化安装配置只需要下载 Docker Desktop 安装即可。如果是国内,可能还需要配置容器
2021-07-24 17:19:56
542
1
原创 Hyper-V - Ubuntu 20.04 配置文件设置静态 IP
文章目录前言配置文件前言Hyper-V - Ubuntu 20.04 设置静态 IP配置文件第一步,先查看本地网卡名称是什么,执行 ip addr 命令。第二步,进入配置文件目录,执行 cd /etc/netplan/ 命令并备份原配置。第三步,修改配置文件并保存,sudo vim 01-network-manager-all.yaml。# Let NetworkManager manage all devices on this systemnetwork: ethernets:
2021-05-23 12:10:29
841
原创 Hyper-V - 安装 Ubuntu 20.04
文章目录环境前言环境Windows 10 专业版版本号 2004操作系统版本 19041.867Hyper-V 管理器版本 10.0.19041.1Ubuntu 20.04前言在 Win10 的 Hyper-V 虚拟机上安装 Ubuntu 20.04.
2021-04-29 22:21:57
10292
1
原创 Hyper-V - Ubuntu 20.04 设置静态 IP
Hyper-V Ubuntu 20.04 设置静态 IP环境前言Hyper-V本机网络WLANvEthernet Ubuntu 20虚拟机环境Windows 10 专业版版本号 2004操作系统版本 19041.867Hyper-V 管理器版本 10.0.19041.1Ubuntu 20.04前言解决电脑重启后, 虚拟机中 Ubuntu 系统 IP 变化导致 finalshell 无法连接.Hyper-V创建虚拟网络交换机记住 Ubuntu 20 这个名字, 后面用到.
2021-03-28 17:06:13
2696
2
原创 日常 - 关于语言与原生
日常 - 关于语言与原生前言语言C/C++前言只需提供一个可执行文件, 即可运行服务, 无需配置其它, 那是多么幸福的事.语言在容器(微服务)当道的今天, 特别是 Docker 成为主流, 而且 Kubernetes 也成为大公司必备, 如果一门语言开发完部署还需要在容器上安装笨重的运行环境, 我想这语言会逐渐被时代淘汰吧.于是乎, 各个语言都在争先的原生化.C/C++C/C++ 这个就不用多说了, 原本就支持编译成可执行文件, C 比较原始, 很多常见数据类型需要自己写或者网上找类库, C
2021-02-28 21:41:42
160
原创 Java - HttpClient 下载文件
文章目录环境前言HTTP 下载总结环境JDK 15前言当我们的业务需求里有文件下载功能, 后端开发人员如何提前自测下载?如果链接的 HTTP 方法为 GET 时可以直接到浏览器访问下载, 但如果是其它 HTTP 方法呢?postman? idea 自带的 http request?但上面两个工具都无法很好的满足我们的需求, 此时, 身为程序员的我们就可以自己写代码, 完善自己的工具箱.由于个人电脑一般装有最新版 JDK, 所以使用从 JDK 11 开始就有的 http 模块.HTTP 下
2021-01-20 22:10:20
1635
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人