写点什么

ARTS 打卡第 4 周

作者:Johnson
  • 2023-09-10
    江苏
  • 本文字数:2186 字

    阅读完需:约 7 分钟

ARTS 打卡第 4 周

1.A-algorithm

桶排序算法

public class BucketSort {

public static void main(String[] args) { int[] arr={112,109,213,45,66,79,12,5}; BucketSort bucketSort = new BucketSort(); bucketSort.radixSort(arr);

for(int i : arr){ System.out.print(i+","); } }

public void radixSort(int[] arr){ if(arr.length<=1){ return; } int wei = getMaxBit(arr);

int[] bucket = new int[arr.length]; for(int c =1; c<=wei; c++){ int[] count = new int[10]; for(int a : arr ){ int bit = getBit(a, c); count[bit]++; } for(int i=1; i<10; i++){ count[i] = count[i-1]+count[i]; }

for(int i = arr.length-1; i>=0; i--){ int bit = getBit(arr[i],c); int loc = count[bit]; bucket[loc-1] = arr[i]; count[bit]--; }

for(int i = 0; i<arr.length; i++){ arr[i] = bucket[i]; } } }

/** * 获取第c位的那个数字 */ public int getBit(int i, int c){ int bit = (i / (int)Math.pow(10, c-1)) % 10; return bit; }

/** * 数组中的最大整数有多少位 * @param arr * @return */ public int getMaxBit(int[] arr){ int max = Integer.MIN_VALUE; for(int a: arr){ max = Math.max(max, a); } int bit = 0; while (max>0){ max = max / 10; bit++; } return bit; }}
复制代码

2.R-read

原文:https://redis.com/blog/redisgraph-eol/

这篇文章解释了 redisGraph 被淘汰的背后动机及对现有客户和社区成员的影响;

5 年前在 Redis 中引入了 RedisGraph,这个模块成为了 redis 的通用属性图数据库。从那时起,redisGraph 就获得了极大的兴趣和应用,被广泛应用于商业,学术,教育和其他可以获得资源的社区。

公司宣布 redisGraph 结束的原因有很多。尽管许多分析师报告预测,图数据库将呈指数级增长。但是,根据我们的经验,公司通常需要帮助用户来开发基于图数据库的软件。用户需要很多的新技能,比如图数据建模、查询组合和查询优化。与任何技术一样,图库也有其局限性和缺点。学习的曲线很陡峭。概念验证所需的时间可能比预计的要长得多,成功率相比于其他数据库模型可能更低。这对用户,和他们的开发团队来说,通常意味着挫败感。对于像 Redis 这样的数据库供应商来说,这意味着相较于其他数据库模型,售前售后的总投资非常高。另一方面,Redis 公司的本意:简单而快乐,有强烈的迹象表明,我们正在构建开发人员喜欢的东西,这是我们始终追求的目标。我们渴望通过降低复杂性来继续履行品牌承诺。实话实说,尽管我们的图库产品在许多方面独一无二,并且在技术上具有竞争力,但是成本明显高于预期。

2025 年 1 月 31 日终止支持,并将 RedisGraph 命令从 Redis 企业云上禁用。


3.T-technology

MyBatis 获取参数值的两种方式

${ } 本质是字符串拼接

#{ } 本质是占位符赋值(优先)

以下 5 种常见应用场景:

(1)mapper 接口方法的参数为单个的字面量类型

以上 2 种方法都可以用,但要注意 ${}的若需要单引号,要自己添加’${}’

(2)mapper 接口方法的参数为多个时

此时 MyBatis 会将这些参数放在一个 map 集合中,以两种方式进行存储

-以 arg0 arg1 为键,以参数为值

-以 param1 param2 为键,以参数为值

因此只需要通过 #{}和 ${}以键的方式访问值即可,但是需要注意 ${}单引号如果需要,要自己添加

(3)若 mapper 接口方法的参数有多个时,可以手动将这些参数放在一个 map 中存储

只需要通过 #{}和 ${}以键的方式访问值即可,但是需要注意 ${}单引号如果需要,要自己添加

(4)mapper 接口方法的参数是一个实体类类型的参数,可以通过实体类定义的属性值获取

属性不是看是不是成员变量,而是看的是 get set 方法,把方法名去掉 get set 的字段,剩余部分首字母变成小写就是属性。

(5)使用 @Param 命名参数

此时 MyBatis 会将这些参数放在一个 map 集合中,以两种方式进行存储

--以 @Param 注解的值为键,以参数为值

--以 param1 param2 为键,以参数为值

因此只需要通过 #{}和 ${}以键的方式访问值即可,但是需要注意 ${}单引号如果需要,要自己添加


4.S-share

分享的观点文章《一名高水平的程序员,为什么面试总是失败?》来自https://www.zhihu.com/question/593751718/answer/3068528243

 1) 不少程序员认为的“高水平”,是做熟业务,外带能解决面向 windows 的单机版问题,这可能确实能在项目组里独当一面,但在面试官眼里,仅仅是“熟悉基本的增删改查”。

2) 不少真正掌握高并发微服务云服务等值钱技术的程序员,不知道如何在面试中展示值钱技能,或者在面试官主导的面试中,没有机会展示自己的值钱技能。

3) 面试靠“说”,而项目靠“做”,所以程序员完全可以通过准备,在面试中展示一些值钱的但并没真正实践过的技能。这点有些程序员并不会,这就导致自己在面试中不仅无法拔高,而且还会被低估。


#ARTS 打卡计划#

用户头像

Johnson

关注

还未添加个人签名 2019-08-15 加入

还未添加个人简介

评论

发布
暂无评论
ARTS 打卡第 4 周_ARTS 打卡计划_Johnson_InfoQ写作社区