- 博客(16)
- 收藏
- 关注
原创 排序
目录1.排序的稳定性2.内排序与外排序3.冒泡4.简单选择排序5.直接插入排序6.希尔排序7.堆排序8.归并排序9.快速排序1.排序的稳定性如果ki = kj,且在排序前的序列中ri 领先于rj。如果排序之后,ri仍然领先于rj,则称所用的排序算法是稳定的,否则就是不稳定的。例如:下图中,对总分进行排序,令狐冲和分数和张无忌的分数是一样的,排序之前令狐冲...
2020-01-06 15:48:09 136
原创 Kafka是pull还是push
1.kafka架构 kafka一般包含多个生产者(producer),多个Broker(kafka支持水平扩展,一般Broker越多,吞吐量越高),多个消费者(Consumer),以及一个zookeeper集群,kafka通过zookeeper来管理集群配置,选举机制以及消费者发生变化时进行Rebalance。生产者使用push模式将消息发布到Broker,消费者使用pu...
2020-01-04 20:51:24 4474
原创 MQ基础问答
1. 消息队列的应用场景异步,削峰,解耦扩展:消息队列最基本的目的就是解决生产者和消费者之间速度不匹配的问题。2. 使用消息队列的优点(1)异步化,提高系统响应速度。(2)系统解耦,提高系统稳定性。(3)消除峰值3. 使用消息队列的缺点(1)依赖的服务增多,系统可用性降低。(2)系统复杂性提高(3)会导致数据一致性问题。A系统处理完了直接返回成功,大家都以...
2020-01-04 20:28:04 171
原创 HashMap
一.put方法 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } //根据key计算hash值 static final int hash(Object key) { int h; return ...
2019-12-30 23:51:41 117
原创 RPC的实现原理
目录一.rpc的由来二.RPC的实现原理三.RPC架构组件四.RPC调用过程一.rpc的由来分布式架构、流动计算架构的出现,需要一个治理系统确保架构有条不紊的演进。分布式服务架构:随着垂直应用越来越多,应用之间交互不可避免,需要将核心业务抽取出来,作为独立额服务,此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。各个服务提供方不需要各自实现一套序列化,反序列...
2019-12-28 15:23:12 610
原创 java内存模型
内存模型为了应用程序能够避免数据竞争的干扰,java5引入了明确定义的java内存模型,其中最重要的一个概念就是happens-before关系,happens-before关系是用来描述两个操作的内存可见性的,如果X happens-before 操作Y,那么X的结果对于Y可见。在同一个线程中,字节码的先后顺序也暗含了happens-before关系:在程序控制流路径中靠前字节码 hap...
2019-12-27 11:45:33 106
原创 hashMap 1.7和1.8的区别
1.数据结构上的区别1.7:数组+链表 1.8:数组+链表+红黑树,当链表的长度大于8时后面的数据结构变为红黑树2.hash值的计算上1.7:用了多次扰动(4次位运算+5次异或运算) 1.8:只用了1次位运算+1次异或运算3.链表数据插入方法1.7:头插法1.8:尾插法扩展点:头插法和尾插法的差别??? 1.7用单链表进行纵向延伸,当采用头插法时会容易出现逆序且环...
2019-12-26 23:42:44 701
原创 redis五种数组结构及使用场景
1.stringString是最常用的数据类型,普通的key/value存储可以归为此类 ,value不仅仅是String,也可以使数字,比如什么时候封锁一个IP地址(访问超过几次)2.hash可以用来存储多组信息。3.list最新消息排行:新浪微博的TimeLine;消息队列:可以利用List的push操作将任务存在List中,然后工作线程在用pop的操作将任务取出进行执...
2019-12-26 23:25:39 1319
原创 go语言初识(mac安装)
特色: 简介,快速,安全 并行,有趣,开源 内存管理,数组安全,编译迅速用途: 打在web服务器,存储集群 高性能分布式系统,游戏开发安装语言环境: 1.下载安装包:https://golang.google.cn/doc/install 2.双击.pkg结尾的文件进行安装,安装目录(/usr/local/go/)下 3.添加...
2019-06-13 11:11:18 646
原创 linux查看日志
1.查看日志 tail -f test.log 可以持续不断的输出日志 从3000行开始,显示1000行,即显示3000~3999行 cat filename | tail -n +3000 | head -n 1000 显示1000行到3000行 cat filename | head -n 3000 | tail -n...
2018-10-15 19:56:21 247
原创 git操作
•Workspace:工作区•Index / Stage:暂存区•Repository:仓库区(或本地仓库)•Remote:远程仓库1.初始化本地仓库 git init2.将项目的所有文件添加到仓库中 git add . 为什么git添加问价需要add,commit一共两步,因为commit可以一次提交很多文件,所以可以多...
2018-10-15 19:52:49 158
原创 git reset小总结
一. 找回Commit###通过以下例子来了解下具体怎么回滚:$ git init$ touch foo.txt$ echo 'test data' >> foo.txt$ git add foo.txt$ git commit -m "initial commit"$ echo 'new data' >> foo.txt$ git commit -...
2018-10-15 19:46:36 313
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人