自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java并发 - 管程相关的思考和总结

管程,对应的英文是 Monitor,很多同行翻译成 “监视器”,这是直译,操作系统领域一般都翻译成 “管程”,这是意译,我更喜欢后者。在管程的发展史上,先后出现了三种管程模型,分别是:Hasen 模型, Hoare 模型 和 MESA 模型,Java 管程实现参照的是如今广泛应用的 MESA模型。Java 里管程的实现有两种 Synchronized 和 ReentrantLock要了解一个新东西,首先要明确它解决的问题,并发编程里有两个核心的问题:互斥:同一时刻只能有一个线程访问共享资源;

2021-02-27 16:17:12 197

原创 说说Java泛型的自限定(Self-Bound)

聊聊Java的古怪循环泛型——自限定注:本文为《Java编程思想-第4版-15.12 自限定类型》读后笔记Java的泛型中最令人头大的莫过于下面这段代码:class SelfBounded<T extends SelfBounded>{}stw?这是俄罗斯套娃的节奏?它有一个古怪的名字 “古怪的循环泛型(CRG)”我好想又不太想平铺直叙了。。。。好吧破例一次,show you the coding:class Basic{ Basic b; public void

2020-11-28 04:08:37 689

原创 CAD VBA编程实例入门-变色同心圆

【代码】CAD VBA编程实力入门-变色同心圆。

2024-03-18 17:28:28 114

原创 Maven引用本地jar包

Dfile: jar 包路径(建议放在 meven 的 repository)-DgroupId: 指定group-id,-Dversion: 版本号。

2023-11-18 17:42:29 469

原创 24点游戏解法

靠着上述代码,总算通关了 24 点游戏 160+32 个关卡,姑且一乐,需者自取。一般的算法练习,会让你校验,数字是否满足 24 点规则,参考。,只不过是用例不全的阉割版,用半成品算法也能通过,参考。

2023-11-17 17:46:31 126

原创 牛客出bug(华为机试HJ71)

上述为题目,都提示时间复杂度为 O(n2) 了,基本都能想到动态规划吧,废话不多说,先上代码。*:匹配0个或以上的字符(注:能被*和?匹配的字符仅由英文字母和数字0到9组成,下同)这个用例用眼睛都能匹配,它告诉我说不行!就问有没有被坑的感觉!*:匹配0个或以上的字符(注:能被*和?返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false。返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false。先输入一个带有通配符的字符串,再输入一个需要匹配的字符串。被坑的感觉更强烈了!

2023-11-06 19:03:53 635

原创 代码与细节(一)

所以任何便利都是有代价的。在用到 Java17的新特性 Unmodifiable Lists 时不知道你是否和我有同样的惊讶。为什么弄了这么重载方法?先说结论:为了性能。

2023-10-19 15:07:55 201

原创 华为OD机试【优选核酸检测点】【2022.11 Q4 新题】

常见的方案有:1.统一换成以每天0点为起点的整数分钟时间(“引用答主” 用的此方案);2.针对特定情况封装相应的时间处理函数,本题中要求输出的耗时单位为分钟,但给出的时间是数组([hour,minute]),因此,简单封装了一个函数 timeDiff(int[],int[]),转换格式并输出分钟时间差。结果发现和答主的代码有出入,并自认为自己的方法更合理一些,贴出代码,欢迎批评交流共同进步。题目信息量大,逻辑分支多,还有各种细节上的坑。本着死磕精神,耗时2h+,总算是撸完了代码(ps:时间不充裕禁入)。

2023-10-16 11:12:16 117

翻译 Zen Of Go(译)

每次缩进,你都在 [阅读代码的] 程序员的头脑(stack:栈,存放方法运行时的数据,暗指人阅读代码时的大脑)中增加预设条件(precondition),这将消耗 “7±2短期记忆理论”中的一个信息块槽位。7 ±2 :1956年,美国心理学家米勒(George A. Miller)教授发表了一篇重要的论文《神奇的数字7±2:我们加工信息能力的某些限制》,对人的短时记忆能力进行了定量研究。一个设计良好的 Go package 提供了一个单一的 idea,一组相关的行为。,当可以去选择时,遵从简单的解决方案。

2023-08-03 15:31:48 46

原创 参考 GoZero 生成一段代码

./goctl/api/gogen/util.go 其中核心函数:genFile(c fileGenConfig) error。

2023-08-01 21:00:05 312

原创 Golang 序列化的一些技巧

【代码】Golang 序列化的一些技巧。

2023-07-24 10:58:09 134

原创 从HTTP3的横空出世,看各版本HTTP的区别与联系

连接迁移:一条TCP连接由4元素(src-ip,src-port,des-ip,des-port),现实生活中在wifi 和 移动网络的切换时IP发生变化,因此需要重新建立TCP连接。无队头阻塞:QUIC引入 connect 和 stream 概念,多个 stream 组成一个 connect,stream 之间相互独立,丢包只会影响对应 stream 的后续数据包发送,而不会影响其他 stream,此机制在一定程度上缓解甚至消除了队头阻塞。升级方案的痛点在于:1.涉及系统和设备的代码更新,测试和部署;

2023-06-05 19:45:45 655

原创 措不及防的golang bug 总结(继续更新)

【代码】措不及防的golang bug 总结(继续更新)

2023-03-06 17:21:51 159

原创 go-grpc环境配置gopath下的一些包下载

记录下官方文档下没有的几个包获取。

2023-02-24 17:55:02 105

原创 Golang10进制转16进制的几种方法

【代码】Golang10进制转16进制的几种方法。

2023-02-15 19:36:13 1785

原创 GAMES-101-个人总结归纳-Shading

(注:此文以个人知识框架为基础拓开,为方便后期回顾,在保留原课程内容框架的基础上,个别概念的介绍可能过于简单,感兴趣读者可到 GAMES 平台深入学习)目录概要Illumination & ShadingBlinn-Phong Reflectance Model(Blinn-Phong 反射模型)Diffuse Reflection(漫反射项)Specular term(高光项)Ambient Term(环境光项) Shading Frequencies(着色频率):Graphics PipelineTex

2022-06-20 18:09:49 368

原创 GAMES-101-个人总结归纳-Rasterization

(注:此文以个人知识框架为基础拓开,为方便后期回顾,在保留原课程内容框架的基础上,个别概念的介绍可能过于简单,感兴趣读者可到 GAMES 平台深入学习)目录RasterizationDifferent raster displays(略)Rasterizing a triangleAntialiasing(反走样)Sampling theoryAntialiasing in practiceOcclusions and Visibility(深度缓冲)Visibility / occlusion - Z-b

2022-06-17 17:59:54 198

原创 GAMES-101-个人总结归纳-Transformation

目录2D Transform(rotation, scale, shear)Homogeneous coordinates(齐次坐标)Composite transform(变换组合)3D transformations正交矩阵3D Rotations欧拉角Viewing transformation 作业1:题目简单介绍:核心代码:效果图Scale(缩放变换):Reflection Matrix(反射变换):Shear Matrix(切变):Rotation Matrix(旋转):注:T*A = A' =

2022-06-16 21:46:28 275

原创 shadertoy 实现简易指南针

初次接触glsl,写了一个简易版的旋转指南针demo,先上代码:效果图

2022-06-13 22:14:09 146

原创 一个异步响应式WinForm实例

公司需要一个中控平台查看、管理玩家及服务器数据,后端 springboot 一站式处理,游戏公司技术栈主要是 C#,选用 WinForm 作为前端展示。首先要处理的第一问题便是网络通信及数据展示。网络通信只能是单线程,展示界面在主线程并且需要异步处理网络线程的数据,避免主线程在网络通信期间阻塞...

2022-04-20 20:36:38 786 1

原创 说说 golang 的堆

如果刷力扣时突然想用 golang 了,多半是因为右手小指敲了太多分号顿感疲惫,但当我要使用堆的时候突然就懵了,出于无法原谅自己的懒惰和愚蠢,是时候做下总结了。通常情况下,我们需要使用一个 int 类型的堆,那么通常会使用如下代码:type hp struct { sort.IntSlice}func (h *hp) Push(v interface{}) { h.IntSlice = append(h.IntSlice, v.(int))}func (h *hp) Pop() i

2021-12-22 00:16:48 1040

原创 说说万向锁

初次在网上浏览这个问题时,真是觉得这玩意相当飘渺。这里,我试图用最简单的图文向你说明:在三维空间坐标系中,绕任一坐标轴(x轴)旋转90度,此时,z轴指向y轴负方向,也就是说旋转前绕y轴的正向旋转 等价于 旋转后绕z轴的反向旋转,这二者可能会相互抵消,换言之,丢失了一个维度!...

2021-12-20 17:56:25 246

原创 Unity 个人玩法Demo合集

近期热衷计算机图形,利用业余时间入手 unity,并做了一些小demo,这个以入门时间为顺序做个汇总和备案。1.RollBall:入门第一个项目,没什么好说的,简单的 键盘控制小球滚动 吃掉旋转的棱形块。2.Clicky Crates:难度可控的益智小游戏,点掉正确的弹射物会获取相应积分,误点骷髅头则会扣除相应大量积分,积分为负或漏点正确弹射物 则游戏失败。高难度下,弹射物的弹射速度和同一时间的弹射量有略微提审,需要玩家有较快的反应和手速。本 demo 点击...

2021-12-13 23:01:08 2668

原创 《文明5》和程序员的那点事儿

今天玩《文明5》莫名遭遇了印度人墙

2021-06-01 11:04:06 369 2

原创 简单笔记:记一次 golang 的切片复制

常规情况下 golang 的一维数组复制,可以这样写:func copy(src []int) []int { copy0 := make([]int, len(src)) copy(copy0, src) return copy0}这样写,会新开辟一块内存空间,对切片副本的任何修改操作,不会影响原切片。如果需求是二维数组,出于惯性思维,可能会这样写:func copy0(src [][]int) [][]int { copy0 := make_slice2(len(sr

2021-04-21 03:02:10 956

原创 牛顿迭代及其 python实现

牛顿迭代法:实数域和复数域上近似求解方程的方法,具体看图:大写字母为线,小写字母为点。线A 切函数任意 点a,交x轴于 点d;过 线d 做垂线交函数于 点b,过 点b 做切线 线D,交x轴于 点e。通过反复做切线,取交点(点d,点e...),会得到一个无线趋近函数的x轴交点,于是可以求得函数的近似解。数学表达式为:x1 = x0 - f(x0) / f'(x0), 这里就不做推导了,下面是一个 python 的实现,可用来解高阶函数:from sympy import *def ne

2021-04-02 18:11:21 1961 3

原创 小工具:Java文件提取器

这是一款整理笔记的小工具,日常学习中我们所接收到的一手文档,通常会包含各种类型(.jpg .png .drawio .txt)的文件。但在这个信息量居恐怖的时代,我们不可能完全记住所有知识,我们需要的只是在需要的时候如何快速检录已学知识,类似数据库的索引,我们也需要建立一个自己的认知体系数据库。介于win文件查找的效率和效果,而且随时都带着自己的笔记本也不太实际。所以最好的方式是把自己的学习资料上传到云端,或是自己的服务器上,利用 linux 提供的命令(ag 或是 grep)进行文件内检索。但你不

2021-04-02 10:51:25 226

原创 简单笔记:记一次关于 不变对象、享元模式和锁 的Bug

先上一段曾今写过的另类代码:class A{ Long aLock = Long.valueOf(1); public void setAL(){ synchronized (aLock){ // TODO and so on... } }}class B{ Long bLock = Long.valueOf(1); public void setBL(){ synchronized

2021-04-01 23:19:21 87

原创 简单笔记:记一次锁升级的bug

这是之前写的一个 Cache 的demo,利用读写锁提高并发性能,先上代码: final Map<K,V> m = new HashMap<K,V>(); ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); final Lock r = rwl.readLock(); final Lock w = rwl.writeLock(); /** * not do th

2021-03-31 19:08:43 90

原创 简单笔记:Java微基准测试工具 jmh一些注意事项

上手参考:https://www.baeldung.com/java-microbenchmark-harness样例代码参考:http://hg.openjdk.java.net/code-tools/jmh/file/3769055ad883/jmh-samples/src/main/java/org/openjdk/jmh/samples导包:<properties> <jmh.version>1.27</jmh.version>&l...

2021-03-30 15:53:32 188

原创 关于 mysql 异地同步数据到 hadoop 的一些注意事项

场景:杭州 阿里云的 mysql数据,秒级同步到 深圳 腾讯云 的hadoop,出报表常规的思路是这样的:杭州:(1)mysql=》 (2)maxwell / canal 获取 binlog=》 (3)数据打到kafka =》深圳:=》(4)sparkstreaming / flink / kafka =》 (5)hive / kudu + impala jdbc 或者 hbase +phoenix / es 二级索引 =》report但是存在一些需要注意的细节:(1)...

2021-03-02 12:42:42 254

原创 基于 MaxWell 的 mysql binlog 日志同步实操

mysql biglog 的三种格式:1)STATMENT模式:基于SQL语句的复制(statement-based replication, SBR),每一条会修改数据的sql语句会记录到binlog中 优点:binlog的日志比较少,减少了磁盘IO,提高性能 缺点:以下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及 user-defined functions(udf)等会出现问题) 2)基于行的

2021-03-01 11:37:15 425

原创 Golang 实现的打字小程序

互联网时代怎么能不快?专治各种无聊!看界面:上代码(./typer/greate_typer):package mainimport ( "bufio" "fmt" "os" "os/exec" "regexp" "time")func typer() { var symble string var start int64 // var content string reader := bufio.NewScanner(os.Stdin) fmt.Prin

2021-02-27 17:24:57 3523

原创 vscode Go 编程踩坑日记-二维数组

矩阵在日常开发中用的相当频繁,但是在 golang 中使用二维数组却让我有点意外,如下:写惯了 java 的我初始化一个二维数组会想当然地这么写:a := len(grid)b := len(grid[0])// 数组长度必须为常量var dp [a][b]int这是经典动态规划问题-最短路径问题中的一个片段,旨在比较各种编程语言执行相同代码的性能差距。a, b 为给定路径矩阵 grid 的长宽,这里我要根据给定矩阵初始化动态规划的二维状态表dp。然而极具设计艺术的 g...

2021-02-26 22:25:06 1204

原创 vscode Go 编程踩坑日记-引包

刚入手Golang,真想直接把键盘甩给编译器,总结一下 import 遇到的坑Go 语言自定义引包有两点需要注意:1)包路径(这个可以忽略,代码中直接输包名(util0)就会有提示): 2)全局方法首字母大写: ​​​​​​​ 3)首次 import github上的开源包,先进命令行执行 "go get url"下载​​​​​​​,再用直接输包名就有提示了 ...

2021-02-24 00:52:07 4010

原创 Hive 调优相关总结(持续更新)

1)fetch抓取:Hql中的某些查询可以不使用MR计算,例如select * from table;这种情况下Hive可以简单读取table对应的存储目录下的文件 具体的操作方式:在hive/conf/hive-default.xml文件中,修改hive.fetch.task.conversion(minimal和more)为more,这样全局查找,字段查找,filter查找,limit查找等都不走MR,直接Fetch 相关:hive.fetch.task.conversion 之 minimal

2021-02-23 11:03:35 151

原创 SparkSQL自定义数据源读取数据库 类型转换问题

下面这一段是废话,时间紧的兄弟直接跳过:前几天接触了 SparkSQL,通过自定义数据源可以完成各种数据库的读取和写入。我好像嗅到了数据中台的调调,封装一个扩展性强的小架架把 hbase,mysql,redis各种数据源都整合一下,再用并发多线程,对象池之类的优化一下性能,再招一个3000块的小表哥,多么优秀的开源节流,是不是又可以找老板涨工资了!考验架构能力的时候到了,不想当架构师的程序员不是一个好男人!好了,做梦时间结束,进入正题:我们知道 hbase 最终是把数据转成了 HFile 文件,HF

2020-12-24 10:07:05 576

原创 Jpa踩坑日记: could not execute query

以下为jpa连接mysql数据库的异常片段:org.springframework.dao.DataIntegrityViolationException: could not execute query; SQL [select productinf0_.product_id as product_1_0_, productinf0_.category_type as category2_...

2018-09-15 18:53:02 12157

原创 解决 idea maven依赖引入失效问题

最近刚入手 idea,不过里面的 maven 依赖问题着实让人头疼,代码撸着撸着就红了一片,打开 Project Structure -&gt; 如下图:提示libarary has broken path ,在项目的 pom.xml 文件 ctrl 相关依赖也点不进去,代码中的相关引用也变红!好了问题确定!依赖失效了!试了下网上常用的套路:1.右键 pom.xml -&gt;...

2018-09-15 07:02:31 35191 7

greate_typer.exe

golang 实现的打字小程序-windows可执行文件

2021-02-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除