自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

转载 4、linux内核架构设计

linux内核架构Linux内核只是Linux操作系统一部分。它管理系统的所有硬件设备;提供系统调用接口。 Linux内核的了5个子系统,分别负责如下的功能:Process Scheduler,也称作进程管理、进程调度。负责管理CPU资源,以便让各个进程可以以尽量公平的方式访问CPU。Memory Manager,内存管理。负责管理Memory(内存)资源,以便让各个进程可以...

2018-04-27 14:51:56 803

原创 25、etcd(1/5)

etcd 是 CoreOS 团队发起的一个管理配置信息和服务发现(service discovery)的项目。github.com/coreos/etcd 受到 Apache ZooKeeper 项目和 doozer 项目的启发,etcd 在设计的时候重点考虑了下面四个要素: 简单:支持 REST 风格的 HTTP+JSON API 安全:支持 HTTPS 方式的访问 ...

2018-04-21 21:36:21 204

原创 3、java读写锁的实现

问:1、AQS是什么? 2、CAS是什么?AQS:AbstractQueuedSynchronizer CAS :CompareAndSwap 重入锁和读写锁基于AQS和CAS实现。AQS依赖同步队列(一个FIFO双向队列)来完成同步状态的管理。当前线程获取同步状态失败时,AQS会将当前线程以及等待状态等信息构造成一个节点(Node)并且将其加入到同步队列中,同时会阻塞...

2018-04-20 10:56:27 628

原创 24、 Kubernetes(一)单机启动及概念描述

1、在kubernetes里,一个pod能和其他机器上的pod进行通信,因为kubernetes采用了二级虚拟网络。 2、如果pod里面的业务容器down了,kubernetes会重启这个pod 3、如果node宕了,kubernetes会将node上的所有pod转移到其他node上kindkind是用来定义资源文件的类型,一般为ReplicationController,Serv...

2018-04-19 22:05:38 361

转载 15、2016校招腾讯研发岗笔试题(第二题)用Java实现

有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案。 分析: a1+a2-9=4 (1)a4-a5*a6=4 (2)a7+a8-a9=4 (3)a1+a4/a7=4 (4)a2-a5*a8=4 (5)9-a6-a9=4 (6) 分析上面六个式子,由方程(4)则a1<...

2018-04-17 10:57:08 327

转载 14、约瑟夫环

已知n个人围坐在一张圆桌周围,从编号为1的人开始报数,数到m的那个人出列。下一个人从1开始报数,数到m的人继续出列,以此类推直至全部人出列。求出列顺序?解决方案:1、最简单明了的办法就是用循环链表存储这n个人。数到m的人出列,只需将该结点从链表里剔除即可,然后继续往后报数,直到链表只剩下一个结点时结束。具体代码如下:typedef struct People { ...

2018-04-17 10:33:37 171 1

转载 13、大整数操作

long型数据最大能对21亿以内的数字操作,可是如果两个100亿的数字相加,或者相乘呢?long型肯定不能满足需求。如果是用在天文学的计算,数字更可能达到几十位,甚至是几百位的数字。这已经不可能再使用系统定义的数据类型了,那该怎么解决?主要思想: 不管是大整数相加,还是大整数相乘,都可以把一个数字的各位数字存进一个数组里面,然后再对数组进行操作。就像小学时候的列竖式做加法或者乘法一样。 ...

2018-04-17 10:25:21 271

转载 12、计算机如何实现开根号?

如何求一个数字的算术平方根(又叫开根号,或者开方)? 大家普遍都是用计算器直接计算的,对于程序员来说,就是调用sqrt()方法。但是其内部又是怎么实现的呢?方法一:迭代法学过计算方法的应该都还有印象:一个函数 f(x) 在区间 [a,b] 上连续,且 f(x)=0 在 x∈[a,b] 上有解,求x? 最简单的就是用二分法:分别求f(a)、f(b)、f[(a+b)/2],哪两个乘积为...

2018-04-17 10:16:44 5992

原创 11、八皇后问题求解

在一个8*8的棋盘上放8个皇后,使得这8个皇后无法互相攻击( 任意2个皇后不能处于同一行,同一列或是对角线上),输出所有可能的摆放情况。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。现代教学中,把八皇后问题当成一个经典递归算法例题。public class Empress { private int n ...

2018-04-17 10:04:15 436

原创 10、连续子数组最大和

给定一个数组,求连续的几个子元素构成最大和的子集合:public class findMaxSum { public int FindGreatestSumOfSubArray(int[] array) { if(array == null || (array.length == 1 && array[0] <= 0)) ...

2018-04-17 00:55:11 184

原创 9、区间重合判断

区间重合判断 给你一个target线段,判断它是否被已给出的一些线段所包含。 先排序,再将目标区间合并为一个或多个更大的区间,最后判断这些大区间是否可以覆盖源区间。 排序使用快速排序,排序后进行合并,例如比较y0和x1的大小可以判断两个相邻的目标区间是否有交集,如果有交集合并为一个大的区间。 最后再查找,看是否有满足 x <= xi && y <...

2018-04-17 00:34:47 1309

原创 8、数组循环移位问题

把一个数组中的元素循环右移k位,时间复杂度严格为O(n),不能是O(kn).利用三次对调,每次对调时间复杂度为 n/2 ,sum(n/2) 刚好为N public class Displacement { public static void removerightk(int a[],int k){ k=k%a.length; ...

2018-04-17 00:10:34 846

原创 7、数组分割

有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,使得2个数组之和最小。利用背包思想,包大为 sum(array)/2,然后向包中装物品,使 其中大(不过不确定这种方法的正确性,因为此时规定 装入的东西不得大于 sum/2)但事实是可以大于sum/2 ;1、对数组排序 ,可能这与其他算法不一致的地方,这里是方便计算 NlgN 2、求和 sum S1 N ...

2018-04-16 23:46:31 272

原创 6、求数组中最长递增子序列

写一个时间复杂度尽可能低的程序,求一个一维数组(N个元素)中最长递增子序列的长度。 例如:在序列1,-1,2,-3,4,-5,6,-7中,其最长递增子序列为1,2,4,6。import java.util.Arrays;import java.util.Random;public class LISUpdate { public static void main...

2018-04-16 23:12:41 308

原创 5、KMP算法

字符串匹配。给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置。 如下面两个字符串:char str = "bacbababadababacambabacaddababacasdsd";char ptr = "ababaca";str有两处包含ptr 分别在str的下标10,26处包含ptr。 算法说明一般匹配字符串时,我们从目标字...

2018-04-16 16:24:09 184

原创 23、 聊聊akka(三) 集群&持久化

Akka集群支持去中心化的基于P2P的集群服务,没有单点故障(SPOF)问题,它主要是通过Gossip协议来实现。对于集群成员的状态,Akka提供了一种故障检测机制,能够自动发现出现故障而离开集群的成员节点,通过事件驱动的方式,将状态传播到整个集群的其它成员节点。集群概念 节点(node):集群中的逻辑成员。允许一台物理机上有多个节点。由元组hostname:port:uid唯一确...

2018-04-16 12:30:46 891

原创 22、聊聊akka(二)监控和监视

虽然通过充分利用多核CPU的计算能力把数据处理运算进行并行处理,提高系统整体效率,对现今大数据普遍盛行的系统计算要求还是远远不足的,只有通过硬件平行拓展(scale-out)形成机群并在之上实现分布式运算才能正真符合新环境对软件程序的要求。Akka程序是由多个Actor组成的。它的工作原理是把一项大运算分割成许多小任务然后把这些任务托付给多个Actor去运算。Actor不单可以在当前JVM中运...

2018-04-16 10:56:14 1683

原创 2、git Permission to userA/repo.git denied to userB

由于更换电脑,直接把mac下的.ssh 目录拷贝在centos下,一直出现: Permission to userA/repo.git denied to userB 在网上查找了许多方法都没有解决, 首先第一步,删除userB的rsa & rsa.pub ,再次提交: no such identity: /Users/sunkaixiang/.ssh/id_rsa2: No...

2018-04-16 00:33:48 155

原创 21、聊聊akka(一)使用及集群调用(负载)

问到:akka的线程模型 为actor模型,那actor模型具体是怎么样的呢? 一种类似于协程的事件(消息)驱动?AKKA提供一种Actor并发模型,其粒度比线程小很多,这意味着你可以在项目中使用大量的Actor。 Akka提供了一套容错机制,允许在Actor出错时进行一些恢复或者重置操作 AKKA不仅可以在单击上构建高并发程序,也可以在网络中构建分布式程序,并提供位置透明的Act...

2018-04-16 00:24:27 3599

原创 1、linux下制作启动盘

Linux下如何把镜像文件刻录到DVD光盘里参考:http://www.xitongzhijia.net/xtjc/20141209/32201.html # growisofs -dvd-compat -speed=4 -Z /dev/cdrom=WindowsXPProfessionalSP3Original.iso  在上面的命令行中,“-dvd-compat”选项提供了与D...

2018-04-14 00:16:20 1550

原创 20、谈谈consul(一)

consul的基本概念组成 consul 集群的每个成员上都要运行一个 agent,可以通过 consul agent 命令来启动。agent 可以运行在 server 状态或者 client 状态。自然的,运行在 server 状态的节点被称为 server 节点;运行在 client 状态的节点被称为 client 节点。client 节点 负责转发所有的 RPC 到 server ...

2018-04-13 11:08:19 842

原创 19、聊聊redis(二)

集群Redis 集群是一组能进行数据共享的Redis 实例(服务或者节点)的设施,集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集;Redis 集群通常具有高可用、可扩展性、分布式、容错等特性。了解redis的集群后,这些晦涩的概念可结合redis的主从、集群分区和集群运维等角度理解体会。槽(slot)的基本概念从上面集群的简单操作中,我们已经知道redis存取k...

2018-04-13 01:46:55 238

原创 18、聊聊redis(一)

Redis 内置了复制(Replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(Transactions) 和不同级别的磁盘持久化(Persistence),并通过 Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(High Availability)。redis的内存模型与Memcached仅支持简...

2018-04-12 22:46:06 231

转载 2、Spring的两种代理JDK和CGLIB的区别浅谈

一、原理区别Java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。 而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP 3、如果目...

2018-04-12 10:33:17 159

原创 4、查找

空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。查找算法 顺序查找 二分查找1、二叉树 时间复杂度和高度成正比 2、平衡二叉树 时间复杂度为log2n 3、红黑树 时间复杂度为log2n,但自旋转较少。 4、b树/b...

2018-04-12 00:03:26 144

原创 3、排序

时间复杂度:程序运行耗费多少时间? 空间复杂度:程序运行耗费了多少内存?整理数据的第一步就是排序,即使已经存在许多标准的排序库,我们仍然需要学习排序算法。基础排序冒泡排序public class BubbleSort { public static void main(String[] args) { int ayy[]= {5,6,7...

2018-04-11 13:24:22 120

原创 2、栈&队列&链表

在java中,常见于集合如List这种写法,就是确保一个集合内的所有对象是属于一个类型的。算术表达式的存储如何让一个算术表达式正确的执行? 5 +2*3 +4/2 E.W.Dijkstra在上世纪60年代发明了一种简单的存储方法,使用2个栈,一个用来保存数字,一个用来保存运算符号;1、将数字压入 数字栈2、将运算符号压入 符号栈3、忽略左括弧4、遇到右括弧时...

2018-04-11 00:06:42 190 1

原创 1、二分查找法

二分查找算法 1.二分查找又称折半查找,它是一种效率较高的查找方法。 2.二分查找要求:(1)必须采用顺序存储结构 (2)必须按关键字大小有序排列 3.原理:将数组分为三部分,依次是前值,中值,后值;将要查找的值和数组的中值进行比较,若小于中值则在中值前 面找,若大于中值则在中值后面找,等于中值时直接返回。然后依次是一个递归过程,将前半部分或者后半部分继续分解为三部分。 4.实现:二分查找...

2018-04-10 20:52:04 266

原创 18、分布式全局id实践(1/4)

1、利用mongodb的id MongoDB的ObjectId和snowflake算法类似。它设计成轻量型的,不同的机器都能用全局唯一的同种方法方便地生成它。MongoDB 从一开始就设计用来作为分布式数据库,处理多个节点是一个核心要求。使其在分片环境中要容易生成得多。 前4 个字节是从标准纪元开始的时间戳,单位为秒。时间戳,与随后的5 个字节组合起来,提供了秒级别的唯一性。由于时间戳在前...

2018-04-10 01:53:16 179

原创 17、mongoDB的使用(1/7)

MongoDB 复制MongoDB复制是将数据同步在多个服务器的过程。 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。MongoDB复制原理mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。 mongodb各个节点常见的搭配方式为:一主一从、一主多从。 ...

2018-04-09 23:59:49 235

原创 16、kernel devel 安装与卸载

1、查看已安装kernel-develuname -a ; rpm -qa kernel\* | sort2、查看系统内核uname -r3、下载对应的rpmwget xxx/kernel-devel-3.10.0-514.el7.x86_64.rpm4、卸载已安装的内核yum remove kernel-headers-3.10.0-693.21.1.e...

2018-04-08 15:14:50 8912 1

原创 Golang (1/3)

Go 语言环境安装 安装包下载地址为:https://golang.org/dl/。 如果打不开可以使用这个地址:https://golang.google.cn/dl/。UNIX/Linux/Mac OS X, 和 FreeBSD 安装 以下介绍了在UNIX/Linux/Mac OS X, 和 FreeBSD系统下使用源码安装方法: 1、下载源码包:go1.4.linux-amd64...

2018-04-06 10:36:29 232

原创 14、分库分表的实现

package sharding.sql |-annotation |-Select |-Insert |-Update |-Delete |-connect |-DB |-DB.Connection |-dao |-UserDao |-DaoPr...

2018-04-05 14:03:26 198

原创 13、docker的使用(2/5)mysql & MongoDB & Redis

安装dockeryum -y install docker镜像加速vi /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows){"registry-mirrors": ["http://*******.m.daocloud.io","http://hub-mi...

2018-04-05 12:21:03 251

原创 12、说说mysql

注意:存储引擎是基于表的,而不是数据库。 innoDB VS MyiSAM innoDB 支持行锁、事务、事务隔离、聚集数据 MyiSAM支持表锁,非聚集数据show engines ;use mysql ;show tables ;select * from user; show variables like 'innodb_version' ;连接方式 TCP/...

2018-04-04 00:21:35 165

原创 1、thread join

线程future的另一种选择。 public static void main(String[] args) throws InterruptedException { Thread child1 = new Thread(new Runnable() { @Override public void run() { ...

2018-04-02 23:41:29 114

原创 10、如何解决分布式事务?

根据cap理论,分布式事务 acid 是很难保证的。一般做法是牺牲一致性,满足可用性和分区容错。 分布式事务可以基于 mq/rpc 实现最终一致性,但在分库分表,立即可见的应用上是不能满足业务需求的,故分布式事务还是有必要完善的。BASE理论 在分布式系统中,我们往往追求的是可用性,它的重要程序比一致性要高,那么如何实现高可用性呢? 前人已经给我们提出来了另外一个理论,就是BASE理论,...

2018-04-02 13:12:57 3822

原创 9、WebSocket是什么?

WebSocketWebSocket用于在Web浏览器和服务器之间进行任意的双向数据传输的一种技术。WebSocket协议基于TCP协议实现,包含初始的握手过程,以及后续的多次数据帧双向传输过程。其目的是在WebSocket应用和WebSocket服务器进行频繁双向通信时,可以使服务器避免打开多个HTTP连接进行工作来节约资源,提高了工作效率和资源利用率。WebSocket 是独立的、创建...

2018-04-01 15:26:55 973

空空如也

空空如也

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

TA关注的人

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