链滴
社区愿景和功能特性
优雅的 Markdown 所见即所得编辑
快捷键交互
随时自由编辑分享内容
支持注销账号来去自由
分布式社区网络
开放 API
产品
Symphony 社区系统(Java)
Solo 博客系统(Java)
Vditor 编辑器(TypeScript)
思源笔记(Electron、Go)
Pipe 博客平台(Vue、Go)
发展计划表
发展简史
榜单
GitHub 仓库排行
帖子打赏排行
Solo 博客端排行
积分排行
活跃度排行
贡献排行
本站基于开源项目 Sym
编程代码问答
登录
注册
好玩
前端
后端
工作
B3
推介
查看所有领域
Java
golang
Node.js
Python
数据库
Spring
C++
PHP
Clojure+Java 使用 deps.edn 混合构建
简述 公司有一个项目我用 clojure 写了一个数据处理的 SDK,里面混合了 Java 和 Clojure 的代码,之前用习惯了 [链接],不过慢慢的感觉 Leiningen 越来越慢了(不知道是不是错觉),这次打算使用 [链接] 管理项目。 环境准备(包含开发工具相关的包) windows: 建议使用 [链接 ..
9
2 周前
Java 模块化与接口组成(十六)
[图片] 模块化 模块的基本使用 模块的使用步骤 创建模块 在模块的 src 目录下新建一个名为 module-info.java 的描述文件,该文件专门定义模块名,访问权限,模块依赖等信息 描述性文件中使用模块导出和模块依赖来进行配置使用 模块中所有未导出的包都是模块私有的,不能在模块之外被访问 模块导出格式:exp ..
20
4 周前
Java 反射(十五)
[图片] 反射 类加载器 概述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化,如果不出现意外情况,JVM 将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载或者类初始化。 类加载 就是指将 class 文件读入内存,并为之创建一个 jav ..
12
4 周前
Java Stream 流(十四)
[图片] Stream 流 概述 Stream 流的使用 生成流 通过数据源(集合,数组等)生成流 list.stream() 中间操作 一个流后面可以跟随零个或多个中间操作,其目的主要是打开流,做出某种程度的数据过滤/映射,然后返回一个新的流,交给下一个操作使用 filter() 终结操作 一个流只能有一个终结操作, ..
11
4 周前
Java 函数式接口(十三)
[图片] 函数式接口 概述 函数式接口:有且仅有一个抽象方法的接口 Java 中的函数式编程体现就是 Lambda 表达式,所以函数式接口就是可以适合于 Lambda 使用的接口 只有确保接口中有且仅有一个抽象方法,Java 中的 Lambda 才能顺利地进行推导 @FunctionalInterface :函数式接口 ..
15
1 个月前
Java 方法引用(十二)
[图片] 方法引用 方法引用符 :: 该符号为引用运算符,而它所在的表达式被称为方法引用 范例: // Inter为接口,InterDemo为测试类 public interface Inter{ void run(String s); } public class InterDemo{ public static v ..
7
1 个月前
Java Lambda 表达式(十一)
[图片] Lambda 表达式 Lambda 表达式的标准格式 格式:(形式参数) -> {代码块} 形式参数:如果有多个参数,参数之间用逗号隔开;如果没有参数,则留空 -> :由英文中划线和大于符号组成,固定写法。代表指向动作 代码块:是具体要做的事情,即方法体内容 Lambda 表达式的使用前提 有一个 ..
15
1 个月前
Java 网络编程(十)
[图片] 网络编程 网络编程入门 概述 在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换 网络编程三要素 IP 地址 实现计算机的互相通信,必须为每台就是就是指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而 IP 地址就是计算机的标识号,也就是设备的标识。 端口 端口 ..
8
1 个月前
Java 多线程(九)
[图片] 多线程 实现多线程 进程 进程:是正在运行的程序 是系统进行资源分配和调用的独立单位 每一个进程都有它自己的内存空间和系统资源 线程 线程:是进程中的单个顺序控制流,是一条执行路径 单线程:一个进程如果只有一条执行路径,则称为单线程程序 多线程:一个进程如果有多条执行路径,则称为多线程程序 多线程的实现方式( ..
16
1 个月前
Java IO 流(八)
[图片] IO 流 概述 IO:输入/输出(Input/Output) 流:是一种抽象概念,是对数据传输的总称,也就是说数据在设备间的传输称为流,流的本质是数据传输 IO 流就是用来处理设备间数据传输问题的 常见的应用:文件复制、文件上传、文件下载 IO 流分类: 按照数据的流向 输入流:读数据 输出流:写数据 按照数 ..
11
1 个月前
Java 集合(七)
[图片] 集合基础 概述 集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发送改变。 ArrayList: 可调整大小的数组实现 :是一种特殊的数据类型,泛型 集合打印输出的结果不是对象,而是集合元素,格式为:[元素 1,元素 2,...] ArrayList 的构造方法和添加方法 方法名 说明 pub ..
5
1 个月前
Java 异常(六)
[图片] 异常 概述 异常:就是程序出现了不正常的情况。 异常体系 [图片] Error:严重问题,不需要处理 Exception:称为异常类,它表示程序本身可以处理的问题 RuntimeException:在编译期是不检查的,出现问题后,需要回来改代码 非 RuntimeException:编译期就必须处理的,否则程 ..
6
1 个月前
Java 内部类与常用 API(五)
[图片] 内部类 概述 内部类:就是在一个类中定义一个类。 内部类定义格式: public class 类名{ 修饰符 class 类名{ } } 内部类访问特点 内部类可以直接访问外部类的成员,包括私有 外部类要访问内部类的成员,必须创建对象 成员内部类 按照内部类在类中定义的位置不同,可以分为以下两种形式: 在类的 ..
13
1 个月前
Java 抽象类与接口(四)
[图片] 抽象类 概述 在 Java 中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类 抽象类的特点 抽象类和抽象方法必须使用 abstract 关键字修饰 public abstract class 类名{} public abstract void 方法名(); 抽象类中不一定 ..
13
1 个月前
Java 字符串(三)
[图片] 字符串 API API 概述 API(Application Programming Interface):应用程序接口 Java API:指的是 JDK 中提供的各种功能的 Java 类 java.lang 下的类是不需要导包的。 API 练习 调用方法时,如果方法有明确的返回值,我们用变量接收可以手动完成 ..
9
1 个月前
Java 面向对象基础(二)
[图片] 面向对象基础 类和对象 什么是类 类是现实生活中一类具有共同属性和行为的事物的抽象。 类的特点 类是对象的数据类型 类是具有相同属性和行为的一组对象的集合 什么是对象的属性 属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值。 什么是对象的行为 行为:对象能够执行的操作。 类和对象的关系 对象:是能够 ..
25
1 个月前
Java 基础语法(一)
[图片] Java 概述 Java 跨平台原理 在不同操作系统上运行 Java 程序,只需要安装与该操作系统对应的 Java 虚拟机(JVM),这样可以实现同一个 Java 程序在不同平台上运行,也就是 Java 的跨平台原理。 JRE 与 JDK JRE(Java Runtime Environment):Java ..
47
2 天前
docker-compose 部署 mysql 数据库完整步骤
一、部署 docker 1. 上传安装包 将文件上传到系统/data/docker 上 如果没有则手动创建 cd /data/docker 2. 进入目录 cd /data/docker 3. 解压 docker 安装包 tar -zxvf docker-xxx.tgz 4. 将解压出来的 docker 文件复制到 / ..
80
2 个月前
Java 项目发布到 Maven 中央仓库小记
[图片] 我 20 年就已经注册并成功发布过一次项目因此略过注册环节 1.填写项目相关信息 [图片] 2.等待 bot 提示你验证域名所有权。如果没有域名可以使用 io.github.xxx 作为 groupId 切记不要填成 com.github [图片] 3.去你所在的域名服务商加一个 TXT 记录 OSSRH-9 ..
41
7 个月前
软件架构设计原则
1.1 开闭原则 开闭原则(Open-Closed Principle,COP)是指一个软件实体(如类、模块和函数)应该对扩展开放,对修改关闭。所谓的关闭,也正是对扩张和修改两个行为的一个原则。它强调的是用抽象构建框架,用实现扩展细节,可以提高软件系统的客服用心及可维护性。开闭原则是对面向对象设计最基础的设计原则,它知 ..
67
7 个月前
别以为“自动挡”就不可能出现 OOM
这里的“自动挡”,是我对 Java 自动垃圾收集器的戏称。的确,经过这么多年的发展, Java 的垃圾收集器已经非常成熟了。有了自动垃圾收集器,绝大多数情况下我们写程序时可以专注于业务逻辑,无需过多考虑对象的分配和释放,一般也不会出现 OOM。 但,内存空间始终是有限的,Java 的几大内存区域始终都有 OOM 的 ..
59
7 个月前
用好 Java 8 的日期时间类,少踩一些“老三样”的
在 Java 8 之前,我们处理日期时间需求时,使用 Date、Calender 和 SimpleDateFormat,来声明时间戳、使用日历处理日期和格式化解析日期时间。但是,这些类的 API 的缺点比较明显,比如可读性差、易用性差、使用起来冗余繁琐,还有线程安全问题。 因此,Java 8 推出了新的日期时间类。 ..
72
7 个月前
隐写分析使用方法
java -jar StegExpose.jar paper1_note/baluja/cover standard default paper1_note/baluja/baluja.csv /home/duanxt/lc/StegExpose-master/paper1_note/baluja/cover /hom ..
18
8 个月前
Java 入门
.java-> 编译->.class(字节码文件)-> 解释-> 机器码 字节码解释成机器码是实时进行的,从而导致每次执行时都需要解释,这也是 java 性能不如 c/c++ 的原因之一。这样做是为了实现跨平台 即时编译(JIT, just-in-time):将解释出来的机器码保存到内存中,再次 ..
75
8 个月前
为什么选择 GraalVM?
GraalVM 是一款强大的虚拟机,它为 Java 开发者提供了许多独特的优势和功能。无论是在资源利用率、启动速度、安全性还是与其他语言的集成方面,GraalVM 都是一个非常有吸引力的选择。 以下是选择 GraalVM 的几个主要原因: 低资源使用 GraalVM 通过提前编译 Java 应用程序为独立的二进制文件, ..
30
9 个月前
Java 笔记系列——08- 分布式协调(Zookeeper)
[图片] 1、Zookeeper zookeeper 是一个分布式的协调中间件,能解决分布式下的组件协调问题,所以才有许多应用使用 zookeeper kafka 集成 Zookeeper,实现集群选举(leader 选举)、配置管理 hbase 集成 zookeeper,实现集群管理 sharding jdbc 集成 ..
75
9 个月前
集合类:坑满地的 List 列表操作
Pascal 之父尼克劳斯 · 维尔特(Niklaus Wirth),曾提出一个著名公式“程序= 数据结构 + 算法”。由此可见,数据结构的重要性。常见的数据结构包括 List、Set、Map、Queue、Tree、Graph、Stack 等,其中 List、Set、Map、Queue 可以从广义上统称为集合类数据结构 ..
67
9 个月前
连接池:别让连接池帮了倒忙
[图片] 业务项目中经常会用到的连接池,主要是数据库连接池、Redis 连接池和 HTTP 连接池。所以,今天我就以这三种连接池为例,和你聊聊使用和配置连接池容易出错的地方。 注意鉴别客户端 SDK 是否基于连接池 在使用三方客户端进行网络通信时,我们首先要确定客户端 SDK 是否是基于连接池技术实现的。我们知道,TC ..
45
9 个月前
线程池:业务代码最常用也最容易犯错的组件
[链接] 线程池的策略是当核心线程处理不下的任务会优先放入队列中,等到队列存满了在开启临时线程去处理任务,这么做有部分场景是不合适的:比如队列很大,等到队列满的时候再去创建线程去消费其实已经于事无补了,再比如线程池是 newFixedThreadPool 他的阻塞队列其实是一个 LinkedBlockingQueue ..
21
9 个月前
Java 的 System 类中 out 对象是何时被赋值的
我们学习编程语言的时候,基本上写的第一个程序都是输出一个 hello world, 基本代码如下, 初学时,只知道使用 System.out.println 就可以将想要的内容输出到控制台上, 然而却并未关注过具体的细节,今天就先来简单了解一下 out 这个对象的赋值过程. public class Hello { p ..
26
10 个月前
Netty 系列 (1): 实现 Http 服务器
Netty(1) 实现 Http 服务器 App.java package org.example; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.Cha ..
39
11 个月前
Canal 数据不同步原因排查
Canal 数据不同步原因排查 adapter 报字段不存在 检查源端、目标端对应字段是否存在 最近是否做了表结构改动,没同步到目标端 解决方案: 删除 server 端 conf 下对应实例的 h2.mv.db,重启服务 目标端字段不一致,调整成一致的,比如 alter 表或者做一次数据同步 重启 adapter 服 ..
45
1 年前