自定义博客皮肤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)
  • 收藏
  • 关注

原创 CPU寻址能力的理解

问题:32位总线的寻址范围为什么是4G? (实际可能不到4G)首先寻址范围是指计算机能够找到的最小地址和最大地址,32位所能表示的范围是 2^32 =4294967296 = 4G Byte,其中 这里的4G单位是Byte, 因为计算机的存储单元是 Byte, CPU的寻址单元也是 Byte.即在0~2^ 32 - 1 这个范围内,每个地址都指向一个存储单元,每个存储单元...

2020-04-23 17:14:10 5410 1

原创 Redis4大问题

1.缓存穿透2.缓存击穿3.缓存雪崩4.缓存与数据库数据一致性解决问题的方案:1.缓存穿透是由于 数据库里没有,缓存里没有,每次查询都打到库里导致的,所以可以给穿透的key加入默认值null,或者用布隆过滤器。2.缓存击穿是 某个热点数据在某个时刻失效的时候,突然来了一大波请求,当所有请求查询到缓存里没有,都去数据库查询,又都更新缓存,解决办法就是在 判断缓存没有的时...

2020-01-15 16:30:47 183

原创 Synchronized 和 Lock有什么区别

一、底层构成Synchronized是JVM的关键字,由monitorEnter和monitorExit组成,由于wait和notify也依赖于monitorEnter和monitorExit,所以 wait和notify必须在Synchronized 里面使用Lock是jdk提供的JUC包下的类,是API层面上的。二、使用方式Synchronized不需要手动释放Loc...

2020-01-13 10:59:11 219

原创 SynchronizedQueue 和 SynchronousQueue区别

SynchronizedQueue:SynchronousQueue:

2020-01-13 10:26:17 3160 6

转载 条件变量的虚假唤醒(spurious wakeups)问题

引言条件变量是我们常用的同步原语之一,它的正确使用方式一般如下图:在wait端,我们必须把判断布尔条件和wait()放到while循环中,而不能用if语句,原因是可能会引起虚假唤醒。那么,究竟什么是虚假唤醒,导致虚假唤醒的原因又是什么呢?什么是虚假唤醒?举个例子,我们现在有一个生产者-消费者队列和三个线程。1) 1号线程从队列中获取了一个元素,此时队列变为空。2) 2号线...

2019-11-28 17:07:12 486 1

原创 ThreadLocal一些感悟记录

如果有个变量需要和线程的生命周期绑定,此时可以用ThreadLocal;ThreadLocal的使用有set和get方法此时有个data,用set放入线程,实质上是放入ThreadLocalMap中,key是当前的ThreadLocal,value是data;每一个Thread持有一个ThreadLocalMap, 先用ThreadLocal获取当前的Thread的Thread...

2019-11-25 21:18:22 146

原创 mysql left join 一种优化思路

现在有两个大表进行left joinselect count(*) from `test_a` left join `test_b` on `test_a`.`task_id` = `test_b`.`id` where `test_a`.`status` in (1, 11) and `test_b`.`city_id` = '10';第一步:分析一下哪个表是小表,由于lef...

2019-11-22 15:16:35 330

转载 Java的编译类型和运行类型

介绍编译类型和运行类型之前,先看一下这段代码:package multiplied;class Father { Father() { System.out.println("父类构造器"); } public void doWork() { System.out.println("父类doWork方法"); ...

2019-04-24 12:22:08 2708 1

原创 Java 构造函数总结小记

Java 构造函数分为无参构造和有参构造,不写系统默认给定一个无参构造函数。创建一个对象,依次执行 父类静态代码块---子类静态代码块----父类非静态代码块----父类构造函数----子类非静态代码块----子类构造函数,即在执行子类的构造函数之前,一定会先执行父类的构造函数(究其原因,是父类都不能构造,更何况子类,但是执行父类的构造函数,并没有创建父类的对象)。一、显式调用和隐式...

2019-04-24 11:13:01 147

原创 Java代码块介绍

java中的代码块分为静态代码块和非静态代码块,平时用的可能不多,这里介绍一下。静态代码块:static{System.out.println("静态语句块");}非静态代码块:{System.out.println("非静态语句块");}无论静态代码块还是非静态代码块,都会在构造函数之前执行,可以定义多个,来做类初始化之前的一些准备工作。静态代码块只...

2019-04-24 10:34:29 141

翻译 滑动窗口leetcode

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口 k 内的数字。滑动窗口每次只向右移动一位。返回滑动窗口最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值----------...

2019-02-13 15:02:14 200

原创 hash简介

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈

2017-12-13 11:32:07 230

转载 HashMap工作原理

HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入

2017-12-11 11:47:55 126

原创 数组中第一个出现一次的字符

在数组中找出第一个只出现一次的字符,例如char [] s = {'a','b','c','a','c'};输出‘b’解法一:从头开始扫描数组,取出某个字符,分别与后面的字符比较,如果没有相等的,则可以返回,反之,继续扫描;每个字符都与后面的O(n)个字符比较,算法的复杂度为O(n^2);解法二:    查找的字符的次数,可以声明

2017-11-29 16:51:48 301

转载 Java并发编程:深入剖析ThreadLocal

想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。  以下是本文目录大纲:  一.对ThreadLocal的理解  二.深入解析ThreadLocal类  三.Thread

2017-11-27 17:02:01 127

转载 提高MySQL性能的7个技巧

原文:7 keys to better MySQL performance 作者:Peter Zaitsev 译者:Peter译者注: 随着尺寸和负载的增长,MySQL的性能会趋于下降。记住这些诀窍,便可保持MySQL的流畅运行。测量应用程序的方法之一是看性能。而性能的指标之一便是用户体验,通俗的说法就是“用户是否需要等待更长的时间才能得到他们想要的东西”。这个

2017-11-27 15:46:19 228

转载 MySQL表级锁和行级锁

一:概述相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);InnoDB存储引擎既支持行级锁( row-level locking),也支持表级锁,但默认情况下是采用行级锁。MySQL主要的两种锁的特性可大致归纳如下: 表级锁: 开销小

2017-11-27 15:29:43 561

转载 MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

原文地址:http://www.cnblogs.com/yuxiuyan/p/6511837.htmlMySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的“存储引擎”(storage_engine)呢?有时候面试题中也会问道MySQL几种常用的存储引擎的区别。这次就简短侃一下存储引擎那些事儿。先去查一下“引擎”概念。 

2017-11-27 15:16:58 311

原创 斐波那契数列的递归改良

斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........斐波那契数列用递归算法解决优点是思路清晰,算法简单,缺点是随着n的增大,耗时倍增,计算量变大,究其原因是没有存储计算的值,每次递归调用前一个

2017-06-14 18:04:48 1081

原创 python 关于斐波那契数列的递归思路

斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........数列从第3项开始,每一项都等于前两项之和。 采用递归算法好处是思路清晰,代码简单,但是缺点是当n变大是,耗时也是倍增,究其原因是因为递归的时

2017-06-14 17:37:26 1729

转载 wkhtmltopdf: cannot connect to X server

wkhtmltopdf needs a X server. If you're running your application on a VPS, you probably don't have one installed. The solution is install a "virtual" X server.using wkhtmltopdf without X server

2017-05-10 17:32:35 3976

转载 正则表达式用法 python

SOURCE: http://blog.csdn.net/whycadi/article/details/20110461.  Python正则式的基本用法1.1基本规则1.2重复1.2.1最小匹配与精确匹配1.3前向界定与后向界定1.4组的基本知识2.  re模块的基本函数2.1使用compile加速2.2 matc

2017-04-15 17:56:40 311

转载 架构的本质

分享人:卫向军(毕业于北京邮电大学,现任微博平台架构师,先后在微软、金山云、新浪微博从事技术研发工作,专注于系统架构设计、音视频通讯系统、分布式文件系统和数据挖掘等领域。)架构以及我理解中架构的本质在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重 视 它 , 战术上又 要 藐 视 它。先举个例

2017-04-11 10:52:04 333

转载 Http协议讲解

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspxAuthor :Jeffrey引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HT

2017-04-11 10:37:22 261

转载 常用的设计模式

几种常用的设计模式介绍1.    设计模式的起源最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在1970年他的《建筑的永恒之道》里描述了投计模式的发现,因为它已经存在了千百年之久,而现代才被通过大量的研究而被发现。在《建筑的永恒之道》里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个

2017-04-11 10:22:39 574

原创 Git学习入门

git  安装完成后$git config --global user.name "Your Name"$git config --global user.email "email@example.com" 创建一个空的目录,作为代码仓库mkdir gitlearncd gitlearn 初始化git仓库git init查看分支:git

2017-04-11 10:06:12 192

原创 数字反转

将输入的数字反转,123输出321,-123输出-321

2017-04-08 20:09:19 472

原创 汉诺塔问题 递归

汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

2017-04-08 17:00:58 306

原创 约瑟夫环

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。采用循环单链表实现:

2017-04-08 15:59:30 171

原创 归并排序C语言

2017-04-08 08:53:22 230

原创 创建单链表的头插法和尾插法

创建单链表分为头插法和尾插法:二者的事件复杂度相同,但是由于头插法插入数据和链表生成的顺序相反,故选取二者时要根据实际需求使用。

2017-03-17 11:53:13 741 1

转载 二叉树的递归和非递归遍历

二叉树的遍历:前序遍历,中序遍历,后序遍历,每种遍历又分为递归和非递归算法,递归遍历较为简单,容易理解;非递归需要用到栈,相对麻烦一些。typedef struct node{    int data;    struct * lchild,*rchild;}*BiTree, BiTNode首先是前序遍历:     递归算法:     void

2017-03-16 19:32:26 182

转载 ubuntu 安装常见错误--Could not get lock /var/lib/dpkg/lock

用终端安装新的包的时候,有时候会出现错误:XXX:~$ sudo apt-get install sysvbanner[sudo] password for XXX: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock the

2017-03-03 09:40:21 463

原创 快速排序(C语言)

快速排序是一种高级排序,其原理是在要排列的数据中,选择第一个数或者最后一个数作为比较参数,然后从序列的左右两边分别扫描,如果从右边扫描到比比较参数小,从左边扫描到比比较参数大的数,将他们交换位置,继续扫描,直到两个扫描指针相遇,然后把比较参数放到相遇位置。这时该数列被分为左右两个部分,左边的比它小,右边的比它大,这时再用同样的办法,分别对左右两边进行比较,直到排序完成。代码:

2017-02-27 21:35:18 187

原创 插入排序(C语言)

插入排序是选择一个数作为比较参数,从第二个数开始与第一个数比较,若是比第一个数小,则将第一个数后移一位,将较小的那个数插入到前面,完成第一次排序;然后取第三个数与前两个数相比,以此类推。代码如下:运行后:

2017-02-27 21:08:33 272

原创 选择排序(C语言)

选择排序是在一组待排数据中,首先假设第一个数最小,将它依次与其他数相比,如果后面有其他数比它更小,则将新的数作为最小的数,一趟排序结束后,将最小的数排到第一个代码如下:排序后:

2017-02-27 20:26:31 294

原创 冒泡法排序(C语言)

数据结构中的排序算法中,冒泡法是比较简单的排序算法,能将一串数字通过逐个比较的方式,将大的数排到下面,小的排到上面,像气泡上浮,由此得名。运行:

2017-02-26 21:33:40 493

转载 A+B problem

Calculate a + bInputThe input will consist of a series of pairs of integers a and b,separated by a space, one pair of integers per line.OutputFor each pair of input integers a and b you sh

2017-02-23 16:53:10 236

空空如也

空空如也

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

TA关注的人

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