凌澜星空
码龄12年
关注
提问 私信
  • 博客:1,326,683
    社区:352
    问答:11,280
    1,338,315
    总访问量
  • 203
    原创
  • 467,880
    排名
  • 3,351
    粉丝
  • 1
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2013-04-23
博客简介:

大闲人柴毛毛

博客描述:
博观而约取,厚积而薄发
查看详细资料
个人成就
  • 获得1,321次点赞
  • 内容获得426次评论
  • 获得3,095次收藏
创作历程
  • 11篇
    2018年
  • 51篇
    2017年
  • 88篇
    2016年
  • 60篇
    2015年
  • 1篇
    2014年
成就勋章
TA的专栏
  • 构建高性能应用
    6篇
  • 探索Java虚拟机
    9篇
  • 架构高性能网站
    13篇
  • 轻松搞定设计模式
    24篇
  • 剑指offer
    28篇
  • Spring快速掌握
    11篇
  • 心路历程
    7篇
  • 毕设帮开发日志
    1篇
  • Linux入门讲解
    20篇
  • Java基础全面解析
    9篇
  • 测试
    2篇
  • Android
    3篇
  • c++
  • 深入Java虚拟机
    4篇
  • Java并发编程的艺术
    15篇
  • 性能优化
    2篇
  • JavaFX
  • JVM性能调优
    10篇
  • Docker入门实战
    3篇
  • 柴毛毛的问题集
    3篇
  • 算法
    14篇
  • Java8新特性
    3篇
  • 稳扎稳打JavaScript
    10篇
  • 操作系统
  • 数据库
    3篇
  • 数据结构
    1篇
  • MyBatis
    2篇
  • Redis
    4篇
  • 微服务项目实战
    3篇
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

聊聊对称/非对称加密在HTTPS中的应用

目前常用的加密算法主要分成三类:对称加密算法非对称加密算法消息摘要算法在互联网中,信息防护主要涉及两个方面:信息窃取和信息篡改。对称/非对称加密算法能够避免信息窃取,而消息摘要算法能够避免信息篡改。对称加密算法发送方和接收方需要持有同一把密钥,发送消息和接收消息均使用该密钥。相对于非对称加密,对称加密具有更高的加解密速度,但双方都需要事先知道密钥,密钥在传输过程...
原创
发布博客 2018.03.20 ·
2483 阅读 ·
1 点赞 ·
1 评论 ·
3 收藏

缓存世界中的三大问题及解决方案

目前的IO设备远不能满足互联网应用海量的读写请求。于是便出现了缓存,利用内存的高速读写性能来应付海量的查询请求。然而内存资源非常宝贵,将全量数据存储在内存中显然是不切合实际的。因此目前采用内存和IO结合的方式,内存只存储热点数据,而IO设备存储全量数据。 缓存的设计包含很多技巧,设计不当将会导致严重的后果。本文将介绍缓存使用中常见的三大问题,并给出相应的解决方案。1. 缓...
原创
发布博客 2018.03.14 ·
3230 阅读 ·
6 点赞 ·
0 评论 ·
7 收藏

程序员必知的并发编程注意事项

获取单例对象需要保证线程安全,其中的方法也要保证线程安全。单例对象会被多线程共享,因此要保证它是线程安全的,它其中的方法都要保证是线程安全的。工具类、资源驱动类、单例工厂类都要注意这个问题。 创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。 线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。使用线程池的好处是减少在创建和销毁线程上...
原创
发布博客 2018.03.14 ·
2093 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

揭秘ThreadLocal

ThreadLocal是开发中最常用的技术之一,也是面试重要的考点。本文将由浅入深,介绍ThreadLocal的使用方式、实现原理、内存泄漏问题以及使用场景。ThreadLocal作用在并发编程中时常有这样一种需求:每条线程都需要存取一个同名变量,但每条线程中该变量的值均不相同。如果是你,该如何实现上述功能?常规的思路如下: 使用一个线程共享的Map<Thread,...
原创
发布博客 2018.03.13 ·
1465 阅读 ·
2 点赞 ·
3 评论 ·
4 收藏

Java异常体系中的秘密

相信大家每天都在使用Java异常机制,也相信大家对try-catch-finally执行流程烂熟于胸。本文将介绍Java异常机制的一些细节问题,这些问题虽然很小,但对代码性能、可读性有着较为重要的作用。Java异常体系介绍 在学习一项技术前,一定要先站在制高点俯瞰技术全局,从宏观上把控某项技术的整个脉络结构。这样你就可以有针对性地学习该体系结构中最重要的知识点,并且在学习细...
原创
发布博客 2018.03.12 ·
1852 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

10分钟搞懂蚁群算法

蚂蚁几乎没有视力,但他们却能够在黑暗的世界中找到食物,而且能够找到一条从洞穴到食物的最短路径。它们是如何做到的呢?蚂蚁寻找食物的过程单只蚂蚁的行为及其简单,行为数量在10种以内,但成千上万只蚂蚁组成的蚁群却能拥有巨大的智慧,这离不开它们信息传递的方式——信息素。蚂蚁在行走过程中会释放一种称为“信息素”的物质,用来标识自己的行走路径。在寻找食物的过程中,根据信息素的浓度选...
原创
发布博客 2018.03.11 ·
98451 阅读 ·
113 点赞 ·
25 评论 ·
563 收藏

手把手0基础项目实战(三)——教你开发一套电商平台的安全框架

写在最前本文是《手把手项目实战系列》的第三篇文章,预告一下,整个系列会介绍如下内容:《手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)》《手把手0基础项目实战(二)——微服务架构下的数据库分库分表实战》《手把手0基础项目实战(三)——教你开发一套安全框架》《手把手0基础项目实战(四)——电商订单系统...
原创
发布博客 2018.03.11 ·
2544 阅读 ·
4 点赞 ·
0 评论 ·
8 收藏

常用的分布式事务解决方案

众所周知,数据库能实现本地事务,也就是在同一个数据库中,你可以允许一组操作要么全都正确执行,要么全都不执行。这里特别强调了本地事务,也就是目前的数据库只能支持同一个数据库中的事务。但现在的系统往往采用微服务架构,业务系统拥有独立的数据库,因此就出现了跨多个数据库的事务需求,这种事务即为“分布式事务”。那么在目前数据库不支持跨库事务的情况下,我们应该如何实现分布式事务呢?本文首先会为大家梳理分...
原创
发布博客 2018.03.11 ·
87283 阅读 ·
106 点赞 ·
32 评论 ·
843 收藏

0基础教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)

本文你将学到什么?本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统。 项目完整源码下载https://github.com/bz51/SpringBoot-Dubbo-Docker-Jenkins这套微服务框架能干啥?这套系统搭建完之后,那可就厉害了:微服务架构 你的整个应用程序将会被拆分成一个个功...
原创
发布博客 2018.02.02 ·
7653 阅读 ·
8 点赞 ·
15 评论 ·
55 收藏

柴毛毛大话设计模式——开发常用的设计模式梳理

写在最前本文是笔者的一点经验总结,主要介绍几种在Web开发中使用频率较高的设计模式。本文篇幅较长,建议各位同学挑选感兴趣的设计模式阅读。在阅读的同时,也麻烦各位大佬多多分享!有你们的肯定,才有我继续分享的动力如需转载,请与我联系!人工智能看面相最近忙里偷闲,对人工智能看面相进行了一些优化,欢迎各位大佬体验!体验后恳请各位大佬分享朋友圈!基础学习:UML四
原创
发布博客 2018.01.30 ·
2017 阅读 ·
13 点赞 ·
1 评论 ·
47 收藏

10分钟搞懂遗传算法

大自然有种神奇的力量,它能够将优良的基因保留下来,从而进化出更加强大、更加适合生存的基因。遗传算法便基于达尔文的进化论,模拟了自然选择,物竞天择、适者生存,通过N代的遗传、变异、交叉、复制,进化出问题的最优解。遗传算法看似神奇,但实现思路却较为简单。本文先跟大家介绍遗传算法的基本思想,然后用遗传算法来解决一个实际问题,最后给出遗传算法的代码实现和解析。废话不多说,现在就开始吧~遗传算法
原创
发布博客 2018.01.24 ·
121864 阅读 ·
180 点赞 ·
38 评论 ·
952 收藏

Redis源码分析(四)——Redis数据结构-整数集合

1. 整数集合特点有序:集合中所有值按照从小到大顺序排列。不重复可以存储int16_t、int32_t、int64_t三种类型的整数1. 数据结构typedef struct intset{ unit32_t encoding; unit32_t length; int8_t contents[];} intset;encoding:content数组中存储的整数类型(int
原创
发布博客 2017.10.14 ·
1157 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Redis源码分析(三)——Redis数据结构-字典

1. 数据结构1.1 哈希表typedef struct dictht{ dictEntry **table; unsigned long size; unsigned long sizemask; unsigned long used;} dictht;table:存储节点的数组size:table数组的长度sizemask:size-1,用于在添加节点时计算节点在tabl
原创
发布博客 2017.10.14 ·
2829 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

Redis源码分析(二)——Redis数据结构-链表

数据结构——节点typedef struct listNode{ struct listNode *prev; struct listNode *next; void *value;}listNode;prev:链表节点的前驱next:链表节点的后继value:节点中的值数据结构——链表typedef struct list{ listNode *head; listN
原创
发布博客 2017.10.14 ·
2847 阅读 ·
0 点赞 ·
1 评论 ·
7 收藏

Redis源码分析(一)——Redis数据结构-字符串SDS

1. SDS简介Redis中使用的字符串均为『简单动态字符串』(Simple Dynamic String),简称SDS。SDS是在C字符串的基础上进行了一些包装,使得它更符合Redis的使用场景。在Redis中,C字符串只用在一些无需修改的地方,如日志打印;其他需要使用字符串的地方基本上使用的都是SDS。2. 数据结构struct sdshdr{ int len; int free
原创
发布博客 2017.10.14 ·
4078 阅读 ·
2 点赞 ·
2 评论 ·
7 收藏

服务器性能优化基础知识

性能调优整体思路空间换时间 对热点数据缓存,减少数据查询时间。分而治之 将大任务切片,分开执行。HDFS、MapReduce就是这个原理。异步处理 若业务链中有某一环节耗时严重,则该环节将拉长业务链的整体耗时。可以将耗时业务采用消息队列异步化,从而缩短业务链耗时。并行处理 采用多进程、多线程同时处理,提升处理速度。离用户更近一点 如CDN技术,将静态资源放到离用户更近的地方,从而
原创
发布博客 2017.10.13 ·
1158 阅读 ·
1 点赞 ·
1 评论 ·
3 收藏

了解你服务器的心情——top命令详解

top是Linux较为常用的命令,可以监控服务器的CPU、内存、进程的运行情况,话不多说,直接操作。输入top即可启动:下面我们就来逐一介绍top向我们展示的内容。第一行:系统概况top - 19:39:14 up 20 days, 7:48, 1 user, load average: 0.00, 0.01, 0.0519:39:14 up 20 days:系统运行时间1 user:用户
原创
发布博客 2017.10.12 ·
2987 阅读 ·
8 点赞 ·
2 评论 ·
21 收藏

MyBatis源码解析(二)——动态代理实现函数调用

如果我们要使用MyBatis进行数据库操作的话,大致要做两件事情: 1. 定义DAO接口 在DAO接口中定义需要进行的数据库操作。 2. 创建映射文件 当有了DAO接口后,还需要为该接口创建映射文件。映射文件中定义了一系列SQL语句,这些SQL语句和DAO接口一一对应。MyBatis在初始化的时候会将映射文件与DAO接口一一对应,并根据映射文件的内容为每个函数创建相应的数据库操作能力。而我们
原创
发布博客 2017.10.12 ·
1102 阅读 ·
0 点赞 ·
2 评论 ·
6 收藏

MyBatis源码解析(一)——MyBatis初始化过程解析

建议移步至简书浏览,排版较为整齐:http://www.jianshu.com/p/7bc6d3b7fb451. 准备工作为了看清楚MyBatis的整个初始化过程,先创建一个简单的Java项目,目录结构如下图所示: 1.1 Product 产品实体类public class Product { private long id; private String productName;
原创
发布博客 2017.10.11 ·
1645 阅读 ·
3 点赞 ·
0 评论 ·
11 收藏

我的Java学习之路

我认为,作为一名合格的程序员,精通一门语言只是最最基本的要求,除此之外,具备扎实的基础知识、了解主流的技术框架、具备快速学习的能力也都非常重要。语言是帮助你实现想法的工具,而作为程序员来说最为重要的东西是语言背后的你的想法,而这些想法需要通过长期的基础积累、经验积累而获得。我从大二的时候开始接触编程,到现在也有五个年头了。这五年我走了不少弯路、踩了不少坑。至此收到阿里offer,也算是达到了我人生第
原创
发布博客 2017.10.11 ·
7772 阅读 ·
22 点赞 ·
7 评论 ·
92 收藏
加载更多