自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

转载 为什么JVM中的新生代要有两个Survivor区?

转自https://blog.csdn.net/antony9118/article/details/51425581那么,在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区?1 为什么要有Survivor区先不去想为什么有两个Survivor区,第一个问题是,设置Survivor区的意义在哪里? 如果没有Survivor,Eden区每进行一次Minor GC,存活的对象

2018-04-02 08:58:58 10050 12

原创 关于对Java中Volatile关键字的理解

首先,众所周知,Volatile关键字保证了变量的可见性但是没有保证原子性,我一直对这个点觉得不是很理解,既然保证了可见性其实就应该保证了原子性啊,在观看了网上大多数的博客还有书籍后,我得出了自己的结论。先看一段代码:// 线程1int i = 0;i = 10;// 线程2j = i;这里变量i附了初始值0,随后更新为10,这里的10是指工作内存中的值,由于不知道什么时候将工作内存中的...

2018-04-01 22:08:36 191

转载 MySQL索引原理--从AVL树到B+树

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大于根的键值

2018-03-12 11:21:39 795

转载 常用Git命令

下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。 Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史

2018-01-12 18:02:34 163

转载 操作系统基本概念

一、计算机硬件基础1.1 总线结构  从概念上讲,计算机的结构是总线型的:布置一根总线将各种硬件设备挂在总线(Bus)上。  (1)所有的设备都有一个控制设备,外部设备通过控制器与CPU进行通信。  (2)所有的设备之间的通信也需要通过总线。1.2 流水线结构  为了提高计算机的效率,人们又设计出了流水线结构:仿照工业流水装配线,将计算机的功能部件分为多个梯级,并将计算机的每条指令拆分为同

2018-01-07 11:45:37 335

转载 操作系统导论

PS:操作系统原理是大学计算机专业最为重要的一门专业基础课程之一,对于操作系统核心原理的理解对于一个合格的程序员来说十分重要,于是我继续我的“三大原理,两个协议,一种结构”复习,三大原理中操作系统原理首当其冲,这里主要依靠阅读《操作系统之哲学原理》来进行复习,将其中重要的部分记录下来,与各位分享。当然,更推荐大家去读读这本书,相信都会有一定收获。一、程序是如何运行的?1.1 程序运行的四大要素

2018-01-07 11:39:32 2209

转载 操作系统--文件之Inode

inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。 我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层

2018-01-01 15:59:40 2031 1

转载 RSA算法原理(一)

如果你问我,哪一种算法最重要? 我可能会回答“公钥加密算法”。因为它是计算机通信安全的基石,保证了加密数据不会被破解。你可以想象一下,信用卡交易被破解的后果。进入正题之前,我

2017-12-27 16:23:49 206

转载 RSA算法原理(二)

上一次,我介绍了一些数论知识。 有了这些知识,我们就可以看懂RSA算法。这是目前地球上最重要的加密算法。六、密钥生成的步骤我们通过一个例子,来理解RSA算法。假设爱丽丝要与鲍

2017-12-27 16:22:40 258

转载 操作系统之外存管理--磁盘基础

计算机是处理数据的机器,而数据就需要有地方存放。在计算机中,可供数据存放的地方并不太多,除了内存之外,最主要的存储数据的媒介就是磁盘。对于大多数计算机领域的人来说,磁盘通常被看做是一种外部设备。可是,对于现代操作系统来说,磁盘是不可或缺的。虽然早期的操作系统可以基于磁带,但由于操作系统复杂性和性能的不断提升,用磁带作为操作系统的载体已经不合时宜,取而代之的是磁盘。由于操作系统需要存放在磁盘上,且操作

2017-12-25 14:42:33 1712 1

转载 操作系统之文件系统

一、为何需要文件系统?  磁盘具有大容量、低成本以及持久化的特点,即使发生断电,磁盘上的数据也不会丢失。但是,对于一般用户而言,使用磁盘是非常苦难的,因为他们不知道如何驱动一个磁盘,以及计算数据在磁盘上的存放位置。从上一篇《磁盘基础》可以知道,了解磁盘的各项技术细节将使用户不堪重负。  操作系统是一个魔术师,其提供给用户的就是各种幻想:抽象。进程抽象的是CPU,虚拟内存抽象的是内存,对于磁盘来说

2017-12-25 14:34:04 375

转载 遗传算法入门

三:遗传算法        照例先给出科学定义:       遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。      再

2017-12-25 08:32:02 1167

原创 在Java的Set集合中放入自定义类

1. 题目来源在做Java竞赛的编程题中,有一题要求实现一个Person类,要求能够放入到Set集合中,Person类要求有两个属性姓名和年龄。2. 题目解析首先复习一下基础知识,在Java中 a.equals(b)为true,则a和b的HashCode一定相等Java中的散列表采用HashCode计算在数组中的位置,由于我们需要重写equals方法,所以必须重写hashcode()方法,这样

2017-12-17 22:39:12 3265

转载 深入理解Java异常处理机制

1. 引子       try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。

2017-12-10 11:02:07 143

原创 Java直接内存详解

JVM直接内存前言在做欢聚时代的校招题时遇到了一道选择题,选项D如下: 直接内存的分配不会受到Java堆大小的限制,所以不会抛OutOfMemoryError异常由于对直接内存的概念不是很清晰,所以查询了相关资料,准备一篇博文总结一下什么是直接内存直接内存(Direct Memory)就是Java堆外内存直接内存并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,但是这

2017-12-10 10:46:17 4294

转载 c++成员函数

类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。类成员函数是类的一个成员,它可以操作类的任意对象,可以访问对象中的所有成员。class Box{ public: double length; double breadth; double height; double getVolume(voi

2017-10-18 14:06:56 311

原创 c++能否在析构函数和构造函数中抛出异常?

在牛客网的一道C++题目中第一次接触到这个问题,遂翻阅了《Effective C++》,总结成这篇博文。 参考《Effective C++》中条款08:别让异常逃离析构函数一、析构函数不要在析构函数中抛出异常 !虽然C++并不禁止析构函数抛出异常,但这样会导致程序过早结束或出现不明确的行为。如果某个操作可能会抛出异常,class应提供一个普通函数(而不是析构函数),来执行该操作。目的是给客

2017-10-18 13:39:21 279

原创 数据库事务四种隔离级别

数据库事务四种隔离级别在阅读《高性能MySQL》中第一次接触到了四种隔离级别,遇到了一些疑惑,故对这几种级别进行一下总结数据库事务四种隔离级别概念分类Read Uncommitted未提交读Read Committed提交读Repeatable Read可重复读Serializable可串行化表格总结不可重复读和幻读的区别参考资料1. 概念在SQL标准中定义了四种隔离级别,每一种

2017-10-05 10:50:59 229

原创 平衡二叉树

1. 定义平衡二叉排序树又称AVL树,一棵AVL树或者是空树,或者是具有下列性质的二叉排序树:它的左子树和右子树的高度之差的绝对值不超过1,且左子树和右子树都是AVL树。2. 结点的平衡因子BF(Balance Factor)BF = 左子树的高度-右子树的高度3. 结构定义typedef int ElemType;typedef struct AVLNode{ ElemType key;

2017-06-02 18:09:26 259

原创 散列表查找实现

1. 散列表算法实现结构定义#define HASHSIZE 12typedef struct{ int *elem; /* 数据元素存储基址,动态分配数组 */ int count; /* 当前数据元素个数 */}HashTable;int m = 0; /* 散列表表长,全局变量 */初始化/* 初始化散列表 */Status InitHashTable(

2017-05-31 16:54:40 1053

转载 散列表查找(哈希表)知识点

本文目录定义散列表查找步骤1. 定义相比于比较查找法,散列表的查找是通过计算来进行实现的,我们只需要通过某个函数f,使得存储位置=f(关键字),使得每个关键字key对应一个存储位置f(key)。这里我们把这种对应关系f称为散列函数,又称为哈希(Hash)函数。故采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表(Hash Table)。关键字对应的记

2017-05-31 09:37:58 726

转载 刻意练习,从新手到大师

我总是在思考如何才能学得快学得精,学得和别人不一样。看过很多本书之后,我发现无论掌握何种技巧,最基本的原则是要努力的刻意练习,才能从新手走向大师。前段时间读了一本书叫《刻意练习-如何从新手到大师》觉得不错,我总结了一下分享给大家。有目的练习目标:给自己定一个学习目标,目标可以有效的引导你学习。专注:不专注没效果。反馈:通过反馈判断自己哪些方面不足,为什么不足。走出舒适区:身

2017-05-09 15:08:32 1151

原创 了解自己

了解自己的真实水平能有效地避免心比天高、浮躁的状态1.问题背景人总是有各种各样的愿望,理想固然重要,但是能正确认识自己的真实水平更加重要。比如,自己想要考某某名牌大学,想去某个大公司,这很正常,人往高处走,水 往低处流,人都是为了更好的生活而努力奋斗的! 但是,人一旦把自己置于理想的位置就很容易忘记自己原来的水平,比如自己想考中山大学,很容易就会把自己假象成中山大学层次的学生,但其实自己远远达不

2017-05-09 14:53:45 249

原创 HDOJ 5240 Exam

题目大意:一个人要去考试,一门考试要花r小时准备,e小时后考,考试持续l小时,给出一组数据,问能不能完成所有的考试?算法分析:这是个水题,按照先考先复习的思路,按照考试时间排序,只要r>e就输出NO,否则的话就把下一轮考试的时间减去此次考试的e+l,再循环判断。实现代码如下:#include #include using namespace std;#define MAX 1000

2017-05-06 22:50:39 198

原创 最小生成树和切分定理

本文提纲最小生成树切分定理证明1.最小生成树最小生成树问题,针对带权无向图,就是在一个V个结点的连通图里面寻找V-1条边,使得这个图连通,并且权值之和最小的问题。 2.切分定理(Cut Property) 定义一:把图中的结点分为两部分,称为一个切分(Cut) 定义二:如果一个边的两个端点,属于切分不同的两边,这个边称为横切边(Crossing Edge) 切分定理:给定任意

2017-05-04 11:17:21 4233

原创 最短路径 Dijkstra算法 HDOJ_2544

本文提纲算法简介伪代码代码实现反思与感悟1.算法简介Dijkstra算法,用于计算正权图上的单源最短路,即从单个源点出发,到所有结点的最短路。该算法适用于有向图和无向图。2. 伪代码清除所有点的标号 设d[n]=0,其他d[i]=INF 循环n次{ 在所有未标号结点中,选出d值最小的结点x 给结点x标记 对于从x出发的所有边(x,y),更新d[y]=min(

2017-05-04 09:25:29 256

原创 面对压力,逃避还是面对?

从小到大,自己都对自己有着很高的期望,希望自己能上一个好学校,找一个好工作。可以结果总是事与愿违,我觉得造成自己无法成为顶尖人才主要有几大原因:一、逃避压力,不敢直面困难无论是做作业,还是遇到生活中的问题,自己很容易想到的就是得过且过,水水过。面对困难和压力,第一时间想到的总是逃避,而不是去解决。其实这也很正常,没有谁喜欢整天面对巨大的压力,人都是希望平稳的生活的。但是,人只有在压

2017-04-30 16:30:23 1342

原创 POJ 2479(动态规划)

一、题目大意求连续的整数中两段不重叠的子串的最大值,运用动态规划可以很好地解决。二、知识点回顾先看看求一段子串的最大值是如何计算的。读入的整数存在数组an中,设立新数组bn,b[i]存放以第i个元素结尾的子串的最大值,很显然,可以得出DP方程:b[i]=max(a[i],b[i-1]+a[i])程序如下:#include using namespace std

2017-04-29 14:15:06 760

原创 读《技术人员的发展之路》有感

技术人员的发展之路先贴上陈皓大神的原文链接,大家可以前往酷壳膜拜一下:)前言大学也上了一年半了,相比中学的教育,大学的教育更加自由,学习上不再完全依赖于老师的教学,更多的是自学还有同学之间的讨论,甚至包括社团或者学生助理的很多事情都需要自己去解决,而不仅仅是完成别人分派的任务。然而,在遇到比较棘手的问题时(学习中困难的部分),你脑海中首先想到的是什么?是去请教学霸小明?还是自己解决……领导力(Lea

2017-01-25 10:03:08 542 3

原创 读《暗时间》有感(一)

读《暗时间》有感(一) 我们的高级认知模块明明知道有些事情很重要,必须提前准备并持之以恒,然而我们内心的另一个小声音却在万般阻挠我们把屁股从床上挪开或把眼睛从网页上挪开 —-逃出你的肖申克(三)看了刘未鹏大神的这段话,真的感触极多,长期以来都深受这个问题的困扰。明明知道自己想做什么,想变得更强,想考莞中、想考中大、想拿14K等等,但是自己的行动却远远跟不上自己的思维,到最后失败的时候总是

2017-01-24 14:13:49 368

原创 HDOJ 1004 Let the Balloon Rise

最近重新开始了刷题的道路,也开始搭建自己的博客,第一次写,写的不好多多见谅。问题描述题目比较简单,就是统计字符串的次数算法不需要什么特殊的算法,就是人工统计算法的代码实现,具体思想:每一次读取新的字符串时从之前所有的字符串里面进行搜索,如果已经存在,则该字符串次数加一,最后将次数最多的字符串输出即可数据结构一个二维数组保存字符串,一个一维数组保存出现次数AC代码如下:include <iostrea

2017-01-24 13:57:07 331

空空如也

空空如也

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

TA关注的人

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