自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (4)
  • 收藏
  • 关注

原创 阿里中间件三大存储系统

直接上名字:Tair、TDDL、TFS 它们都是分布式存储系统,下面来说说异同。 1.Tair 存储类型:K-V,缓存 语言:C++ 2.TFS 存储类型:非结构化存储文件系统,NoSQL 3.TDDL 存储类型:RDBMS结构化数据库存储 分布式存储系统的一些考虑 1.服务路由 2.负载均衡 3.容错机制 4.平滑扩容 5.存储机制

2016-06-29 16:44:17 2102

原创 C++中的trivial、standard layout、POD

在学习STL的时候,会反复出现trivial和POD这样的术语,这几个概念如果要特别仔细地区分,只能说是蛋疼。 但是结合其在STL里面的用意,为了性能优化,不那么学究地去考究其意义还是相对好理解的。 trivial是从其拷贝控制函数是否是系统合成的来说明的 standard layout是从其内部布局是否类似于C中的struct来说明的 POD(Plain Old Data)这里的Old就

2016-06-29 11:39:27 1601

原创 STL中的Vector

看了一下vector的实现,感觉C++的内存管理,确实是需要非常认真对待的。 为了追求效率,自身就需要仔细万分,总结了3,4点感觉尤其如此。 1.vector的底层实现 这个倒是很简单,vector就是一段动态分配内存的数组,加上冗余空间,所以用三个指针(迭代器)就能表示出来,底层的数据结构。 分别是迭代器:start、finish、end_of_storage 其中,finish-st

2016-06-27 23:59:57 310

原创 数据库查询语句拾遗

先上一个总览 select ①字段名、可以使用集合函数 ②from + left join + on  ③where  ④group by + having ⑤order by ⑥limit (1)集合函数 就是常见的MAX MIN COUNT SUM AVG GROUP_CONCAT 它们经常和group by搭配使用 (2)where ①普通条件 =  !=    =

2016-06-21 16:32:06 357

原创 C语言拾遗

对一些C语言的知识进行总结,重点是最后关于字符数组、字符指针、字符串的讨论。 1.变量的初始化 简单说就是,静态变量初始化为0,自动变量不初始化。 什么是不初始化呢?就是说,可能是任意值。 注意: (1)对于非指针变量,当你声明了一个变量时,你就获得了掌控权,系统保证了除非你自己实现,否则这个变量不会用作它用。 所以虽然这个变量里面的值是任意的,但是你可以随意修改这个值而不会有其他影响

2016-06-21 10:21:12 325

原创 STL中的Iterator

话不多说,就是总结几个问题 1.什么是迭代器 (1)迭代器可以看做一种智能指针,他会重载*和->运算符。 (2)但是它并不一定具备指针的所有运算符:p++,p--,p+n,p-n,p[n],p1-p2,p1 有可能它只提供一部分,比如:p++,p--,p1!=p2 (3)STL强数据容器与算法分开,而迭代器又作为胶着剂将其撮合在一起。 2.为什么每一种容器都要开发其专属迭代器 (1)

2016-06-19 21:30:05 1100

转载 编程的智慧

这几天,陆陆续续写了一些代码,在写代码的过程中,确实感觉要写好代码需要一些技巧以及好的习惯。 又去读了一下,王垠的《编程的智慧》,并总结了提纲。 原文地址为:http://www.yinwang.org/blog-cn/2015/11/21/programming-philosophy 1.反复推敲代码 2.写优雅的代码 (1)盒子特征 (2)树状特征 3.写模块化的代码 (1)避

2016-06-18 11:31:20 288

原创 STL中的Allocator

最近在看STL,写一点博客。 关于一些细节可能就不放上来了,就写一些我自己的心得。 1.为什么要用Allocator C++容器的设计思路是,对存放到里面的东西是拷贝一份放进去。 而且里面的空间都是动态分配的。 所以在构建容器的时候,需要必要的①内存分配②构造对象。 2.new operator、operator new、placement new

2016-06-13 15:32:44 1253

原创 Java中的hashMap

首先上个图 key经过hash函数作用后得到一个槽(buckets或slots)的索引(index),槽中保存着我们想要获取的值 本文讨论给出的部分源码,来源于Oracle JDK 1.7.0_71 本文主要讲述hashMap的三个问题 1.Object的hashCode方法和equals方法? 2.hashMap如何设计好的方法,使得冲突尽可能少? 3.h

2016-06-13 10:37:52 304

原创 Java的JDK和JRE

就是说说这两个的区别,最主要的难点就是说,JDK下面也有一个JRE为什么需要这个JRE 1.JRE下面有什么? JRE下面主要就是①JVM和②一些类库,比如BOOTSTRAP加载器需要加载的一些系统核心类库。 直接上图 2.JDK下面有什么? ①JRE②JAVA开发程序,比如将Java代码编译为.class文件的javac程序,以及一些调试工具比如什么jconsole什么的。

2016-06-05 10:50:10 310

原创 Java类加载与反射

今天又看了李刚的《疯狂Java讲义》里面关于类加载机制与反射的知识。 以前一直不知道,反射的原理,其实现在感觉还是比较自然的。 1.类加载的三大步骤 (1)加载 将类的class文件读入内存,并为之创建一个java.lang.Class对象。 (2)连接 把类的二进制数据合并到jre中 ①验证:检验加载的类是否有正确的内部结构 ②准备:为类变量分配内存,并默认初始化 ③解析:将类

2016-06-03 23:04:50 330

Leetcode-cpp 2015.5更新

这是leetcode,一个开源项目,可以用于求职找工作,里面的算法尽量背诵,愿大家学到东西啦。

2015-07-04

Pointers in C

一本详细介绍C指针的书籍。完全是介绍C的指针的。有需要的朋友欢迎下载。

2014-07-24

空空如也

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

TA关注的人

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