11.21 打工

11.21 打工

copyproperties

        try {
            if (StringUtils.isBlank(modelCode)) {
                return R.fail("modelCode不能为空");
            }
            ModelCenter result = this.lambdaQuery().eq(ModelCenter::getModelCode, modelCode).one();
            if (result == null) {
                return R.fail("查询不到模型");
            }
            ModelCenterVO VOResult = new ModelCenterVO();
            BeanUtils.copyProperties(result, VOResult);
            return R.ok(VOResult);
        }

这么写有一点不太好

就是下面这行语句

BeanUtils.copyProperties(result, VOResult);

如果result对象和VOResult对象中有没有对应上的属性比如result中叫name,VOResult中改成了username,那么字段名改了之后这段代码不会报错,还是能正常运行,但是实际上username没法返回正确的name了,增加了后期的排查错误成本。

八股

1.hashmap原理:

将键的哈希值映射到数组的索引位置,储存键值对,通过数组+链表(1.8以后是数组+链表+红黑树)处理哈希冲突。红黑树优化,在jdk1.8以后,在链表长度超过8时,链表会转换为红黑树,将查找效率从O(n)优化到O(logn),在红黑树元素数量小于6时,会退化成链表。

2.hashmap提高性能:

选择合理的容量和负载因子,频繁扩容会影响性能。确保hashcode的均匀分布。

3.hashmap默认扩容机制:

当hashmap存储的元素数量超过初始容量*负载因子时,会触发扩容,容量 *2并且会重新计算元素的哈希值。

4.哈希冲突解决方案

拉链法:在数组索引冲突处拉一个链表按顺序存hash值相同的元素

开发寻址法:在冲突索引处往下找一个没有冲突的索引位置

再哈希法:使用第二个哈希函数计算哈希值

posted @   vast_joy  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示