自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiaozhu_ccn的博客

java研发,机器学习,大数据,推荐系统&算法,面经,算法,前端,后端,it技术,学习,交流,杂记

  • 博客(20)
  • 收藏
  • 关注

原创 DDD理解

DDD规范总结

2022-01-27 10:17:44 799

原创 泛化调用/nio/requestId/服务发现

泛化调用:解决的问题:因为在网管系统中要依赖的jar包太多了,接口太多太难管理,所以入参和出参就像Dubbo官方示例代码中的一样,完全用Map来代替。使用者在调用提供者接口时,不再需要依赖服务提供方客户端的JAR包,因此也就没有了POJO,通过泛化的方式进行远程调用。如何发布API接口到网关?根据泛化调用的方式,网关系统需要知道服务的类名和方法名。网关系统可以提供一个API发布平台入口,让API发布者将RPC环境下的API数据录入到API发布平台。RPC本身就可以为消费系统提供一个获取API信息

2020-07-22 21:46:29 360

原创 缓存击穿

1.缓存为什么可能会穿透定义:请求去一条压根儿数据库中就不存在的数据,也就是缓存和数据库都查询不到这条数据,但是请求每次都会打到数据库上面去,可能会导致你的数据库由于压力过大而宕掉。这种查询不存在数据的现象我们称为缓存穿透。解决办法:设置空值:当数据查不到,查数据库,数据库也没有时,缓存设置为null,并设置过期时间(毕竟null无意义还浪费存储空间)。当数据写入库时,同时替换缓存的null。缺点:如恶意攻击,则会浪费缓存空间,如果这种null值过量的话,还会淘汰掉本身缓存存在的数据,

2020-07-16 18:21:46 121

原创 java集合派系学习

一、collection派系1.1 set 无重复treeset有序set,底层是treemap,插入数据存在map的key位置,value是固定值。hashset底层是hashmap,同样插入数据存在map的key位置,value是固定值。1.2 list 可重复arrayList的类图如下:底层结构,capacity默认长度,默认10添加:elementData()存储具体的元素,他的默认无参构造函数是懒初始化的,在add时才初始化,在add时首先元素增长1然后.

2020-06-23 03:18:58 179

原创 java并发编程/反射/注解学习

反射spring ioc 容器实现bean的几种方式

2020-06-23 01:17:12 135

原创 红黑树学习

一,红黑树定义:1,根节点是黑色的2,每个叶子节点都是黑色的空节点null,也就是说叶子节点不存储数据3,任何相邻的(父子)节点都不能同时为红色,也就是说红色节点是被黑色节点隔开4,每个节点,从该节点到达叶子节点的所有路径,都会包含相同数目的黑色节点。满足二叉搜索树定义(左节点永远比根节点小,右节点比根节点大),也基本满足二叉平衡树(任何节点左右节点的高度差绝对值不能超过1);二、调整红黑树:左旋,右旋,可以根据二叉搜索树定义调整,就知道左右旋转节点该怎么放了。红黑树的.

2020-06-22 03:39:20 167

原创 Mybatis源码学习

目标:1看源码;2分析原理;3手写mybatis oop面向对象的编程能力一,什么是mybatis?官方文档:https://mybatis.org/mybatis-3/它是一个一流的持久化框架,支持定制化SQL,存储过程和高级映射;mybatis避免了几乎所有的JDBC冗余代码及结果映射代码;mybatis可以用xml或注解的形式,将接口和POJOS对象映射成数据库记录。注意:任何数据库持久化框架底层都是JDBC二、how it works,先宏观再围观1,配置,因..

2020-06-01 02:00:47 131

原创 从HelloWord学习JVM虚拟机

JVM虚拟机一、为什么学习JVM面试、找工作、OOM、调优二、什么是JVM,它做了什么java虚拟机,执行java代码的平台,屏蔽了底层硬件指令的细节,一次编写到处执行代码执行过程:源代码->字节码文件class->-->jvm->jvm&jdk&jre 关系 jdk包括jre和jvmjvm做了什么?1,空间分配回收,而c++需要考虑内存分配和回收。java能让开发者100%精力投入业务开发2,内存管理3,屏蔽底层硬件区别.

2020-05-27 21:48:13 222

原创 学习算法第二天:栈队列和并查集、哈希表

栈和队列•定义:存放数据的线性表•操作:入栈/队列、出栈/队列、判断满/空•空间复杂度:O(n)•单次操作时间复杂度:O(1)•区别 先进后出(FILO, First In Last Out) 先进先出(FIFO, First In First Out)栈和队列的实现方式:数组和链表皆可(线性表)•指针(辅助变量)栈顶/底指针 队头/尾指针•关键:出入元素的同时移动指针三、栈的应用括号匹配:•括号、引号等符号是成对出现的,必须相互匹配•设计...

2020-05-25 02:29:29 160

原创 学习算法第一天:算法初步

一、学习算法必要性why:应用:机器学习、数据挖掘、自然语言处理、密码学、计算机图形学等找工作:贪心、分治、动态规划、树、图等.二、怎么做how?穷举法(万能算法)求N个数的全排列8皇后问题分而治之(减而治之)二分查找——减而治之归并排序——分而治之贪心最小生成树 Prim, Kruskal单源最短路 Dijkstra动态规划背包士兵路径三、时间、空间复杂度常见时间复杂度分析方法数循环次数 均摊分析 递归式——主定理• O(1) 基本..

2020-05-25 00:49:34 530

转载 最近5年133个Java面试问题列表

本文由 ImportNew - paddx 翻译自 javarevisited。欢迎加入翻译小组。转载请见文末要求。Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别、Has

2016-05-26 12:30:52 386

转载 40个Java集合面试问题和答案

Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。1.Java集合框架是什么?说出一些集合框架的优点?    每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框

2016-05-26 12:25:50 242

转载 JAVA垃圾回收机制

在java中垃圾回收是系统自动完成的,了解它对优化应用程序有很大的帮助。那么我们就从下面几个方面来了解垃圾回收机制:哪些对象需要回收?什么时候回收?怎么去回收?判断对象可以回收的方法:引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。优点:简单,高效

2016-05-26 12:21:43 1068

转载 用 Google Cloud 打造你的私有免费 Git 仓库

作为开发者平时可能想写点(非开源)的小东西,或者想保存一些私人配置什么的,这些也应该以 Git 的形式长期保存。毕竟 Git 的用途很广,有一份云端备份也很明智。但 Github 等服务只对开源项目免费,私有项目是按月收费的,并且还有仓库数量限制。自己的一些小作品或个人记录一般没有多大商业价值,项目本身又非常小,所以不值得花钱购买 Git 服务,但又不太适合公开。这种情况下你就需要一些可靠的免费私

2016-05-25 14:28:04 666

转载 闯过这 54 关,点亮你的 Git 技能树 (五) - 完结篇

这是一个系列文章,介绍学习 Git 的一个小游戏 - githug,如果你是第一次看到,请先阅读:闯过这 54 关,点亮你的 Git 技能树闯过这 54 关,点亮你的 Git 技能树(一)闯过这 54 关,点亮你的 Git 技能树(二)闯过这 54 关,点亮你的 Git 技能树(三)闯过这 54 关,点亮你的 Git 技能树(四)没想到第四弹在「开发者头条」上获得了 3

2016-05-25 14:24:47 440

转载 闯过这 54 关,点亮你的 Git 技能树 (四)

这是一个系列文章,介绍学习 Git 的一个小游戏 - githug,如果你是第一次看到,请先阅读:闯过这 54 关,点亮你的 Git 技能树闯过这 54 关,点亮你的 Git 技能树(一)闯过这 54 关,点亮你的 Git 技能树(二)闯过这 54 关,点亮你的 Git 技能树(三)今天我将带大家完成第 31 - 40 关,如对任何命令使用有疑问请看第一篇里的推荐教程。

2016-05-25 14:16:56 271

转载 闯过这 54 关,点亮你的 Git 技能树 (三)

这是一个系列文章,介绍了学习 Git 的好工具 - githug,如果你是第一次看到,请先阅读:闯过这 54 关,点亮你的 Git 技能树闯过这 54 关,点亮你的 Git 技能树(一)闯过这 54 关,点亮你的 Git 技能树(二)今天我将带大家完成第 21 - 30 关。如对任何命令有疑问请看第一篇里的推荐教程。第二十一关本来只想提交一个

2016-05-25 14:13:37 314

转载 闯过这 54 关,点亮你的 Git 技能树 (二)

闯过这 54 关,点亮你的 Git 技能树 (二)这是一个系列文章,介绍了学习 Git 的好工具 - githug,如果你是第一次看到,请先阅读:闯过这 54 关,点亮你的 Git 技能树闯过这 54 关,点亮你的 Git 技能树(一)今天我将带大家完成第 11 - 20 关。如对任何命令有疑问请看第一篇里的推荐教程。第十一关

2016-05-25 14:09:43 256

转载 闯过这 54 关,点亮你的 Git 技能树 (一)

闯过这 54 关,点亮你的 Git 技能树 (一)上一篇介绍了学习 Git 的好工具,如果你没有看过,请先阅读:闯过这 54 关,点亮你的 Git 技能树今天我将带大家完成前十关。第一关在前文中已经完成,我们从第二关开始吧。如对任何命令有疑问请看第一篇里的推荐教程。第二关根据提示,我们要配置「用户名」和「邮箱」,为什么呢?

2016-05-25 14:05:48 383

转载 闯过这 54 关,点亮你的 Git 技能树

闯过这 54 关,点亮你的 Git 技能树开篇如今,Git 大行其道,颇有一统天下之势。如果你的技能树上 Git 和 Github 的图标还没有点亮的话,你都不好意思说你是程序员。别说互联网企业,我接触到的许多传统企业都在从 SVN,Clear Case 等迁移到 Git 上,甚至大厂还会有一个团队去定制适合自己企业的 Git 服

2016-05-23 13:38:08 405

空空如也

空空如也

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

TA关注的人

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