一份给自己的3月总结

正确理解和使用JAVA中的字符串常量池

前言 研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池。Java中的字符串常量池是Java堆中的一块特殊存储区域,用于存储字符串。它的实现是为了提高字符串操作的性能并节省内存。它也被称为String Intern Pool或String ......
常量 字符串 字符 JAVA

90%的Java开发人员都会犯的5个错误

前言 作为一名java开发程序员,不知道大家有没有遇到过一些匪夷所思的bug。这些错误通常需要您几个小时才能解决。当你找到它们的时候,你可能会默默地骂自己是个傻瓜。是的,这些可笑的bug基本上都是你忽略了一些基础知识造成的。其实都是很低级的错误。今天,我总结一些常见的编码错误,然后给出解决方案。希望 ......
错误 人员 Java 90%

【架构设计】如何让你的应用做到高内聚、低耦合?

前言 最近review公司的代码,发现代码耦合程度特别高,修改一处,不知不觉就把其他地方影响到了,这就让我思考该如何让我们写的代码足够内聚,减少耦合呢? "高内聚、松耦合"是一个非常重要的设计思想,能够有效地提高代码的可读性和可维护性,缩小功能改动导致的代码改动范围。它可以用来指导不同粒度代码的设计 ......
架构

【架构设计】保持简单轻量设计的三个原则——DRY,KISS, YAGNI

前言 一个软件轻量简单的软件架构是非常重要的,它可以让我们花最小的代价就能满足业务上的需求。那如何保证轻量简单呢?那今天就和大家分享下这其中的秘密,也就是3个重要的指导原则,KISS原则,YAGNI原则和DRY原则,你们都知道并且理解吗? 欢迎关注微信公众号「JAVA旭阳」交流和学习 KISS原则 ......
轻量 架构 原则 三个 YAGNI

vue3+TS 自定义指令:长按触发绑定的函数

#vue3+TS 自定义指令:长按触发绑定的函数 偶然间看到一个在vue2中写的长按触发事件的自定义指定,想着能不能把他copy到我的vue3项目中呢。 ##编写自定义指令时遇到的几个难点 ###1.自定义指令的类型 在ts中写任何东西都要考虑到类型的问题,自定义指令的类型问题依然存在 ###2.在 ......
指令 函数 vue3 vue TS

关于 MySQL 嵌套子查询中,无法关联主表字段问题的折中解决方法

今天在工作中写项目的时候,遇到了一个让我感到几乎无解的问题,在转换了思路后,想出了一个折中的解决方案,记录如下。 其实,问题的场景,非常简单: 就是需要查询出上图的数据,红框是从 项目产品表 中查询的2个字段,绿框是从与项目产品表关联的 文章表 中查询出的1个字段。我希望实现的效果是,获取到项目产品 ......
套子 字段 方法 问题 MySQL

我希望来年,更多是靠关系和模式挣钱——2022年我的总结与思考

我记得是2017年开始在博客园写博客,那年我儿子出生,并与当年年底写了17年的年度总结。 n年前,我没钱但年轻,我怕n年后我老时,还是一无所成——2017我的收获和反思,在随后的几年的年末,写总结文也已经成为了我的惯例,后面几年的总结文链接如下。 2018我跳出了舒适区,发现自己缺的不仅是技术,另外 ......
模式 更多 2022

【博学谷学习记录】超强总结,用心分享|前端CSS总结(一)

CSS总结(一) shift+alt,选中多行 外链式 <link rel="stylesheet" href="./my.css"> 1 选择器 1.1 标签选择器 结构:标签名 1.2 类选择器 结构:.类名{ } 1.3 id选择器 结构:#id属性值{ } 作用:通过id属性值,找到页面中带 ......
前端 CSS

实现简单的csv文件上传和bootstrap表格的下载

一、写一个简单的页面并发送文件 引入bootstrap.js,jQuery.js等,具体的网页就不细写了,很简单。 加入input框,button控件,进度条。如下: <li class="list-group-item" id="input-file-group"> <div class="inp ......
bootstrap 表格 文件 csv

Git和Maven的学习笔记

Git 1、Git简介 Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。 Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCas ......
笔记 Maven Git

有向图的拓扑排序——DFS

在有向图的拓扑排序——BFS这篇文章中,介绍了有向图的拓扑排序的定义以及使用广度优先搜索(BFS)对有向图进行拓扑排序的方法,这里再介绍另一种方法:深度优先搜索(DFS)。 算法 考虑下面这张图: 首先,我们需要维护一个栈,用来存放DFS到的节点。另外规定每个节点有两个状态:已访问(这里用蓝绿色表示 ......
有向图 拓扑 DFS

就聊聊不少小IT公司的技术总监

本文想告诉大家如下两个观点。 1 很多IT小公司的技术总监,论能力其实也就是相当于大公司的高级程序员。 2 程序员在职业发展过程中,绝对应该优先考虑进大厂或好公司。如果仅仅停留在小公司,由于小公司可能无法接触到值钱的技术,所以哪怕做到小公司的技术总监,依然可能会遇到大龄危机。 我见过不少小公司,比如 ......
总监 技术 公司

RocketMQ Compaction Topic的设计与实现

Compaction Topic 是一种基于 key 的数据过期机制,即对于相同 key 的数据只保留最新值。该特性的应用场景主要为维护状态信息,或者在需要用到 KV 结构时,可以通过 Compaction Topic 将 key-value 信息直接保存到 MQ,从而解除对外部数据库的依赖。快来... ......
Compaction RocketMQ Topic

一种将C++函数模板定义和声明分开的方法

在 C++ 中为了操作简洁引入了函数模板。所谓的函数模板实际上是建立一个通用函数,其函数类型或形参类型不具体指定,用一个虚拟的类型来表达,这个通用函数就称为函数模板。 1、通用的写法 函数模板不是一个具体的函数,编译器不能为其生成可执行代码。定义函数模板后只是一个对函数功能框架的描述,当它具体执行时 ......
函数 模板 方法

IdentityServer4 - v4.x .Net中的实践应用

IdentityServer4、 IClientStore、IResourceStore、IProfileService、IResourceOwnerPasswordValidator 在.NET中的实现。 ......
IdentityServer4 IdentityServer Net v4

一文学会浏览器插件(加入光荣的进化吧)(一文晋级璀璨钻石)(本文不含知识诅咒)

都2023年了,你还不会开发浏览器插件? 注意:此教程针对chrome和chromium内核的浏览器制定的,且仅适用于前端开发者 在chrome地址栏输入chrome://extensions/,就进入了谷歌浏览器扩展程序控制面板,在这里可以装载一些插件,来扩展浏览器的功能,或者做一些自动化处理,由 ......
插件 钻石 浏览器 知识

.NET 云原生架构师训练营(基于 OP Storming 和 Actor 的大型分布式架构二)--学习笔记

目录 为什么我们用 Orleans Dapr VS Orleans Actor 模型 Orleans 的核心概念 结合 OP Storming 的实践 结合 OP Storming 的实践 业务模型 设计模型 代码实现 业务模型 我们可以把关键对象(职位、客户行为记录、线索)参考为 actor 猎头 ......
架构 分布式 Storming 笔记 Actor

.NET周报【12月第3期 2022-12-23】

由于众所周知的原因,大佬们纷纷加入羊群,笔者也未能幸免,体验下来这绝对不是普通感冒的症状,身体不适,熬了几天,所以本周更新比较晚;另外精力有限,对于国际板块只有链接没有简介,十分抱歉! 在这个艰难时刻,大家照顾好自己和家人,做好防护,祝没羊的永远"郭襄",祝已羊的早日康复,没有一个冬天不可逾越,没有 ......
周报 2022 NET 12 23

FPGA:乒乓球比赛模拟机的设计

简介 开发板:EGO1 开发环境:Windows10 + Xilinx Vivado 2020 数字逻辑大作业题目 7: 乒乓球比赛模拟机的设计 乒乓球比赛模拟机用发光二极管(LED)模拟乒乓球运动轨迹,是由甲乙双方参赛,加上裁判的三人游戏(也可以不用裁判)。 管脚约束代码: 点击查看代码 set_ ......
模拟机 乒乓球 FPGA

BST查找结构与折半查找方法的实现与实验比较

简介 作业:查找结构与排序方法 作业题目: BST 查找结构与折半查找方法的实现与实验比较 要求编写程序实现 BST 存储结构的建立(插入)、删除、查找和排序算法; 实现折半查找算法;比较 BST 查找与折半查找方法的时间性能。 作业要求: 1. 设计 BST 的左右链存储结构,并实现 BST 插入 ......
结构 方法 BST

如何在C#中接受或拒绝 Excel 中的修订

修订功能可以跟踪文档所有的修改,了解修改的过程,这对于团队协同文档编辑、审阅是非常有用的一个功能。将工作簿发送给他人审阅时,我们可以开启修订功能,共享工作簿被修改后,用户查看文档时可以选择接受或者拒绝他人修改的数据信息。本文将详细为您介绍如何接受或拒绝 Excel 中的修订。 接受工作簿中的修订 拒 ......
Excel

【短道速滑十】从单幅图像中评估加性噪音的均方差。

尝试从单幅图像中评估加性噪音的均方差,这个结果可以用于计算匹配时的最小对比度(发现新大陆了,原路模板匹配还可以用这个做自动化)、边缘检测滤波器的幅度、摄像机评估、控相机操作中的错误(例如用户过度调节相机增益)等等。 ......
均方差 短道 速滑 噪音 图像

C/S UDP通信实践踩坑记录与对于ICMP的进一步认识

背景 最近有个业务场景需要服务端(简称S)与客户端(简称C)设计一套基于UDP的通信协议--要求尽可能快的前提下可容忍一定丢包率,得以比较深入地学习和了解UDP通信和实践,在开发调试期间先后碰到了C端UDP发包无响应、响应Host Unreachable、响应Port Unreachable、再次C ......
ICMP UDP

对于goland相对较新一些版本新建项目时没有go mod模式选项的坑

前言 对于一些小白在网上看很早的一些go视频,使用goland2020.3.x版本或者其之前版本创建新项目,里面会有GO Modules(vgo)这个选项,也就是gomod模式创建新项目,然而对于现在相对新点的goland版本,创建新项目是会发现没有GO Modules(vgo)选项,会很懵,本人以 ......
版本 模式 项目 goland mod

golang在win10安装、环境配置 和 goland开发工具golang配置 及Terminal的git配置

前言 本人在使用goland软件开发go时,对于goland软件配置网上资料少,为了方便自己遗忘、也为了希望和我一样的小白能够更好的使用,所以就写下这篇博客,废话不多说开搞。 一、查看自己电脑系统版本 (1)这里本人放一种查看,如果不适用还请大家自行百度 如何查看win系统版本 (2)处理器 上图中 ......
golang 开发工具 Terminal 环境 工具

SpringBoot 自动装配的原理分析

关于 SpringBoot 的自动装配功能,相信是每一个 Java 程序员天天都会用到的一个功能,但是它究竟是如何实现的呢?今天阿粉来带大家看一下。 自动装配案例 首先我们通过一个案例来看一下自动装配的效果,创建一个 SpringBoot 的项目,在 pom 文件中加入下面的依赖。 <depende ......
SpringBoot 原理

【深度思考】如何优雅的校验参数?

在日常的开发工作中,为了保证落库数据的完整性,参数校验绝对是必不可少的一部分,本篇文章就来讲解下在项目中该如何优雅的校验参数。 假设有一个新增学员的接口,一般第一步我们都会先校验学员信息是否正确,然后才会落库,简单起见,假设新增学员时只有2个字段:姓名、年龄。 @Data public class ......
深度 参数

Java 中的接口还可以这样用,你知道吗?

Java 程序员都知道要面向接口编程,那 Java 中的接口除了定义接口方法之外还能怎么用你知道吗?今天阿粉就来带大家看一下 Java 中的接口还可以有哪些用法。 基本特性 我们先看一下接口的基本特性 接口的定义需要使用关键字 interface; 接口定义的所有方法默认都是 public abst ......
接口 Java

面试官问:你知道 SpringBoot 项目是如何启动的吗?

大家都知道我们常用的 SpringBoot 项目最终在线上运行的时候都是通过启动 java -jar xxx.jar 命令来运行的。 那你有没有想过一个问题,那就是当我们执行 java -jar 命令后,到底底层做了什么就启动了我们的 SpringBoot 应用呢? 或者说一个 SpringBoot ......
SpringBoot 项目

C# Log4net配置文件 总结

前言 因为项目日志太杂乱而且很大,打开一个就卡死了,何况用户电脑也扛不住日志积累,要做一个日志记录器管理日志。但对里面的配置有一些不熟悉(毕竟都是复制粘贴的),所以记录一下各个项的作用。方便后续复习。 1.0 使用配置文件 众所周知,如果要使用一个配置文件,则需要声明: [assembly: log ......
Log4net 文件 4net Log4 Log