链滴
社区愿景和功能特性
优雅的 Markdown 所见即所得编辑
快捷键交互
随时自由编辑分享内容
支持注销账号来去自由
分布式社区网络
开放 API
产品
Symphony 社区系统(Java)
Solo 博客系统(Java)
Vditor 编辑器(TypeScript)
思源笔记(Electron、Go)
Pipe 博客平台(Vue、Go)
发展计划表
发展简史
榜单
GitHub 仓库排行
帖子打赏排行
Solo 博客端排行
积分排行
活跃度排行
贡献排行
本站基于开源项目 Sym
编程代码问答
登录
注册
好玩
前端
后端
工作
B3
推介
查看所有领域
Java
Spring
NetBeans
Eclipse
IDEA
Dubbo
Tomcat
Maven
Gradle
Latke
Java 的设计模式
设计模式 软件设计 UML UML 基础 定义:UML,Unified Modeling Language 统一建模语言 特点:用于说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开放方法 分类: 结构式:强调的是系统式的建模 静态图(类图、对象图、包图)、实现图(组件图、部署图)、剖面图、符合结 ..
126
2 年前
JVM 新生代为什么要有两个 survivor(from, to) 区
先附一段对新生代中复制算法较好的理解: 首先得明白复制算法的思想: 将原有的内存空间划分成两块,每次只使用其中一块,在垃圾回收的时候,将正在使用的内存中的存活对象复制到另一块内存区域中,然后清除正使用过的内存区域,交换两个区域的角色,完成垃圾回收。 然后为什么要在新生代中使用复制算法: 因为新生代 gc 比较频繁、对象 ..
299
2 年前
Java 学习之第 4 章 集合类
第 4 章 集合类 4.1 初识集合 4.1.1 集合概述 也叫容器类,这些类可以存储任意类型的对象,而且长度可变 可分为两大类:单列集合和双列集合 Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是 List 和 Set。其中,List 的特点是元素有序,元素可重 ..
72
2 年前
Java 学习之第 2 章 java 编程基础
第 2 章 java 编程基础 2.1 Java 的基本语法 2.1.1 Java 代码的基本格式 修饰符 class 类名{ 程序代码 } 注意点: Java 是严格区分大小写的 每条功能执行语句后都要用分号结束(与 C 语言类似) Java 程序中一个连续的字符串不能分开在两行中书写,但可以分开后用 + 连接 pu ..
58
2 年前
Java 集合
集合作用 集合:对象的容器,定义了对多个对象进行操作的常用方法 集合按照其存储结构可以分为两大类:单列集合 java.util.Collection、双列集合 java.util.Map 集合与数组的区别: 长度 存储对象 存储数据类型 数组 固定 基本数据类型、同类型的对象 固定 集合 可变 不同类型的对象 不定 C ..
103
2 年前
Leetcode 每日一题:306. 累加数
自己尝试 理解错题意了。。。 我以为每一位都可以进行想加,所以就将 string 直接转为 char 数组,然后前后验证一下。结果只通过了一半 class Solution { // 提升作用域,方便dfs遍历 String num; // divided num List> ans = new ArrayLis ..
129
2 年前
将 Gradle 项目转为 Maven 项目 (Gradle 7 以上),解决 Plugin with id ‘maven‘ not found
1. 使用 Maven Publishing 插件来生成 pom.xml 1.1 在 plugins 中添加 maven-publish id 'maven-publish' [图片] 1.2 添加 publishing publishing { publications { maven(MavenPublicatio ..
1.1K
2 年前
Leetcode 每日一题:1692. 按键持续时间最长的键
自己的思路 使用 哈希法 ,将字符映射到数组的索引中,然后在遍历的时候记录最大值。 最后通过两个循环找到合适下标 第一个循环找到出现次数最大的值 第二个循环根据这个最大值找到下标。由于要找到按照字符排序大小输出了答案,所以需要逆序查找 时间复杂度 O(3N),空间复杂度 O(1) class Solution { pu ..
92
2 年前
Leetcode 每日一题:86. 格雷编码
自己尝试 对于怎么操作比特,没思路。即使自己知道是考察 位运算符 ,但由于之前没有做过类似的题目,不知道如何下手。。。 别人的算法 格雷码定义公式 最离谱的。。。三行搞定。我猜应该是我没有格雷编码相关的知识所致。。。 class Solution { public List grayCode(int n) { /** ..
109
2 年前
jar 打包为 exe 再打包为安装包不赖电脑是否安装环境
[图片] 故事 前几天之前的学院院长给我推荐了个活,让帮一个朋友开发一个小程序,本来我想做个简单网站之类的就好了,结果一问,由于单位对涉密信息处理比较谨慎,就问能不能做个单机的,就是直接在电脑上运行的 exe 文件,好家伙还没开发过,但随手答应下来了,但由于是原来写 java 的,前端也只会点 react,所以硬着头皮 ..
153
2 年前
使用 maven 打包,快速比对 jar 包依赖差异
[图片] 问题来源 流水线程序员遇到的问题,他们显示在前天执行的一次流水线构建产物和最近一次的构建产物不一致。 问题描述 熟悉 Devops 的各位都知道,普遍存在这种现象:本地执行测试打包正常的 jar 在线编译过程中,会出现各种问题 u。这一此属于比较值得重视的问题。 功能没有任何区别的两个 jar,但是打出来的包 ..
317
2 年前
GraalVM 与 Spring Native 初体验,一个让你的应用在 100ms 内启动的神器
原文首发于菠萝的博客, 欢迎关注,获取最新更新。 [图片] 先吹一波截图,当中 springboot 的启动只用了 0.036 秒,试问如果没有 Spring Native,谁还能做到。 即使是 M1 Mac Pro 启动也是需要 0.559 秒。两张图片的时间差距比较久是因为在写博客的时候,突发奇想想把 solo 博 ..
1.1K
2 年前
keystore was tampered with,or password was incorrect 解决办法
起因 快下班了,他又来了。奇怪,我为啥要说又。 ,现实是这边让我做的工作不属于公司上班的内容,但是本着多接触新东西的情况下,这活我接了 发现问题 这个是一个小程序后台,上个月他找我将服务主机迁移了一个地方,原因就是买之前放置服务的主机到期了,续期的话太贵了,然后就用自己的账号重新申请了一个。基本后台没用啥技术,我怀疑就 ..
163
2 年前
Http 协议
1. Http 协议 概念 在 BS 架构中,浏览器通过 Http 协议访问服务器。它是一种应用层协议,运行在 TCP 传输层协议之上。Http 作用是指定数据的传输格式。 默认端口号:80 Http 协议特点 Http 协议组成:由请求和响应组成 是一种无状态协议,不记录用户访问状态。同一个用户在同一个浏览器上发送多 ..
106
2 年前
xml 和 xml 解析
XML 1. XML 介绍 eXtensible Markup Language 可扩展标记语言,通常用于各种组件或者框架的配置文件,文件内容由各种标签组成 2. XML 与 HTML 区别 区别 HTML XML 功能 制作网页 用于配置文件 大小写 不区分大小写 区分大小写 语法严谨性 不严谨,若一个标签有开始,没 ..
89
2 年前
注解和反射
[图片] 1、注解 1.1、内置注解 @Override 子类重写方法 @Deprecated 标识这个方法或者类已经被废弃或有更好的选择 @SuppressWarnings 抑制编译器告警 1.2、元注解 元注解是用来修饰注解的注解 @Target 指定注释的使用范围 @Retention 注释的生命周期,有 SOU ..
102
2 年前
断言不生效如何开启?
安卓项目,gradle6.3,AGP3.6.0 代码中的短信默认不生效,怎么才能开启? 例:assert false; 在 debug 下 这段代码按理说应该直接抛出异常,但是实际上还是往下走了。 按照网上的说法是 java 断言默认是不开启的! 网上说在 VM options 中加入-ea 但是好像也没用?是我加错了 ..
30
2 年前
SpringAOP 多切面
[图片] 多切面执行时,采用了责任链设计模式。 切面的配置顺序决定了切面的执行顺序,多个切面执行的过程,类似于方法调用的过程,在环绕通知的 proceed()执行时,去执行下一个切面或如果没有下一个切面执行目标方法,从而达成了如下的执行过程:(目标方法只会执行一次) 执行的顺序和配置顺序等有关 目标方法执行前: 前置, ..
182
2 年前
shiro 集成 jwt
[图片] 1、POM 依赖 spring boot 版本 2.5.1 shiro 依赖 1.6.0 org.apache.shiro shiro-spring ${spring-shiro.version} jwt 依赖 3.3.0 com.auth0 java-jwt ${jwt.version} redis 依 ..
138
2 年前
注解方法嵌套调用失效的问题
[图片] 1、问题 这次调试代码遇到一个奇怪的问题,我使用 dynamic datasource 进行多数据源配置,在 service 中建立了两个方法大致内容如下,即需要在 getDatabase0 中调用 getDatabase1 方法,然后查询 mySql1 的数据,但是查询后返回的值一直是 mySql0 这个库 ..
120
2 年前
Lambda 表达式对递归的优化 (下) - 使用备忘录模式 (Memoization Pattern)
[图片] 原文链接 使用备忘录模式(Memoization Pattern)提高性能 这个模式说白了,就是将需要进行大量计算的结果缓存起来,然后在下次需要的时候直接取得就好了。因此,底层只需要使用一个 Map 就够了。 但是需要注意的是,只有一组参数对应得到的是同一个值时,该模式才有用武之地。 在很多算法中,典型的比如 ..
113
2 年前
你用过依赖注入框架 Google Guice 吗?
[图片] Spring 框架的依赖注入是家喻户晓的,但是在实际的开发中我们想使用便捷的依赖注入功能,但是又不想引入 Spring 框架的复杂性,该怎么办呢? 有了 Google Guice,这个问题便简单了,首先在你的 maven 项目里引入 [图片] 官方文档里给出的例子又臭又长,我不使用官方的例子,下面我们来写个最 ..
304
2 年前
集成了 log4j 的 SpringBoot 下的漏洞复现
1. 前景提要 Log4j 史诗级漏洞这几天闹的沸沸扬扬,让我也想一探究竟,到底是怎么触发的。 2. 搭建一个集成 Log4j 的 SpringBoot 项目 根据 spring 官网的指引,创建一个 springboot 项目,然后对 pom 文件进行一个修改 org.springframework.boot sp ..
1.1K
2 年前
JSONObject.toJavaObject 对首字母大写的属性设置失败
[图片] 今天使用 JSONObject.toJavaObject()方法试图将一个 JSONObject 对象装换为指定 class 对象,该对象属性如下所示 private Integer ID; private String fertilizerSiteName; private String userName; ..
199
2 年前
在 apple M1 Pro 上构建 x86/x64 Docker 镜像及使用 IDEA 打包的设置
M1 版本的 docker 下载 Download for Mac-Apple Chip docker 官网 查看镜像平台版本 如果不清楚当前构建的镜像是什么平台的版本,可以使用 docker inspect image_id 查看,如下图: [图片] 默认在 M1 下,通过 docker build 来构建的镜像是 ..
1.7K
2 年前
基于 docker、tomcat 搭建图片(文件)服务器
一、安装 Tomcat docker search Tomcat docker pull Tomcat:8.0 本人指定拉取 Tomcat 8.0,如下 [图片] 二、测试 Tomcat 运行 注意高版本的 Tomcat 中 webapps 目录中是没有内容的,也就是说无法访问到 Tomcat 默认的欢迎界面 注:前者 ..
199
2 年前
【xsong 说算法】第一期:排序算法
[图片] 第一章:排序算法 1.1 选择排序 选择排序无论什么数据进去都是 O(N²) 的时间复杂度,唯一好处就是不占用额外的存储空间 算法思路步骤 首先先找到最大(小) 的元素,存放起始位置,重复找最小的往后排,直到所有的元素排序完毕 下面是代码演示: /** * ..
99
2 年前
ribbon 的几种负载均衡
[图片] 1、简介 spring cloud 的负载均衡由 ribbon 组件实现,ribbon 是 NetFlix 发布的客户端负载均衡器。 2、ribbon 负载均衡规则 ribbon 负载均衡策略的结构类图 [图片] IRule 接口中共有三个方法 [图片] 抽象类 AbstractLoadBalancerRul ..
122
2 年前