6 尘虚緣_KY

尚未进行身份认证

不以物喜,不以己悲!做一只有理想的生活小强!

等级
博文 269
排名 4k+

Java内存模型及volatile

工作后时间紧张,但是还是要不忘学习。本片主要记录了java内存模型和并发编程中的三个特性:原子性,可见性,有序性,然后分别从这三个方面了解了volatile这个关键字的用法及注意的地方。目录java内存区域划分JAVA内存模型并发编程的三个概念原子性可见性有序性JMM提供的解决方案happens-before原则volatile关键字内存屏障Memo...

2017-06-04 18:11:58

java类加载及双亲委派机制

目录类加载流程1、加载2、验证3、准备4、解析5、初始化双亲委派模型常见异常NoClassDefFoundErrorClassNotFoundExceptionClassCastException线程上下文类加载器JIT编译器谁被编译了?触发条件当我们第一次使用该类的时候,如果该类还未被加载到内存,则系统会通过加载-连接-初始化...

2017-06-04 17:40:21

jvm垃圾回收机制 二

上一节主要介绍了新生代的Serial/PraNew/ParallelScavenge三种垃圾回收方法和老年代的serialold和paralleold收集器,本节主要介绍CMS和G1垃圾收集器。目录CMS收集器-标记整理算法收集过程CMS产生的问题G1(GarbageFirst)收集器收集过程G1特点简单调优区域(Re...

2017-05-09 19:32:05

jvm垃圾回收机制 一

目录一、回收什么?二、何时回收?引用计数法根搜索算法-GC-root算法引用强引用软引用弱引用虚引用垃圾回收条件方法区的回收三、如何回收?垃圾回收算法1.标记-复制2.标记-清理3.标记-整理垃圾收集新生代垃圾收集器1.Serial收集器-复制算法2.ParNew收集器-复制算法3.P...

2017-05-09 18:48:16

线程的创建及线程池

目录线程的创建继承Thread类实现Runnable接口实现Callable接口线程池执行流程线程池排队策略拒绝策略Executors的四种线程池CompletionService小结前面讲了线程的六种状态及常见方法的比较,此节主要学习小结下线程的创建和线程池相关的一些知识。线程的创建1.继承Thread类,重写run方法(其实Thre...

2017-05-07 19:11:08

线程的几种状态

目录线程状态方法的比较问题与解答此节主要看以下线程的状态,通过源码的枚举类型,我们可以看到线程的六种状态。publicenumState{/***Threadstateforathreadwhichhasnotyetstarted.*/NEW,/*...

2017-05-07 19:06:09

《匠人精神》

请不要做浮躁的人!浮躁分两种:小浮:只观望而不学的人;小躁:只学而不坚持的人。小浮说:XX语言不行了,应该学YY;——--是你自己不行了吧!? 小躁问:我到底该学什么;——--别问,学就对了; 小浮说:XX有钱途吗;——--建议你去抢银行; 小躁问:我要中文版!我英文不行!——--不行?学呀! 小浮说:XX和YY哪个好;——--告诉你吧,都好——只

2016-08-31 21:50:10

C/C++【知识点笔记】

重载类的=号操作符时需要注意事项:CString&CString::operator=(constCString&st){if(this==&st)return*this;delete[]str;len=st.len;str=newchar[len+1];strcpy(str,st.str);return*this;}主要注意一下四点:(1)、是否把返回值类型声明为该类型的引用?并在结束前是否返回该实例自身的引用(保

2016-08-31 21:25:30

《异类》

在好友的推荐下,暑假看完了这本书,也确实值得一读,多了一些关于成功的认识!转眼间,由于又到了年复一年的九月初--迎新日,为了致敬开学以及我曾经的开学,写点儿东西吧,在此也衷心的希望每一位学子都能通过自己的努力在毕业的时候能实现自己的阶段小目标(例如先挣一个亿.......好了,请安静吧),在毕业的时候不留遗憾的离开大学的校园!再者也不想让自己仅有的一点儿文学细胞全部凋零了,不然小学的作文都白写了!

2016-08-30 16:36:50

C++中的10个关键字

C++中的关键字有不少,参考了一些书籍和网站博客,抽了点儿时间,这里主要列举了10个常碰见的,可能有些老生常谈了,算是巩固复习一下吧!1、constconst本意是“不变的,常量”。C语言:(1)定义该变量为只读变量,分配内存【这里的常量只是编译器属性】;(2)const与指针的组合:常量指针、指针常量、常量指针常量;C++中:(1)定义该变量为只读变量,在没有取地址&

2016-08-30 16:07:29

程序员英语

有时候如果应聘到了一个有外资背景的公司或者这个公司的很多人都有海外或外资工作背景时,你也许还会用到一些日常工作交流时候的词汇。比如我们看一下某主管开会时的发言:小王,请你尽快“Push”一下这件事,按照前期咱们定下来的“Plan”来“follow”这个“case”,每一个“Milestone”都要“Share”出来,你负责的这块工作要充分的“Open”,明天最好和客户做一个“Con

2016-07-31 10:01:13

大话设计模式:抽象工厂模式

抽象方法模式:提供一个创建一系列相关或互相依赖对象的接口,而无需指定他们具体的类。三种模式的对比: 简单工厂模式工厂模式抽象工厂模式产品可以有多个但是都属于同一类,同一等级。都继承产品抽象类。可以有多个但是都属于同一类,同一等级。都继承产品抽象类。可以有不同种类的产品,每类有多中具体产品;抽象产品只能有

2016-07-16 16:55:57

大话设计模式:工厂模式

有了前面介绍的简单工厂模式,为什么又会出来一个工厂模式呢?它们之间的区别又在哪里?工厂模式的精髓又在哪里?工厂方法模式:定义一个用于创建对象的接口,主要解决了让子类决定实例化哪一个类,而不是像简单工厂一样,让工厂来直接决定实例化哪一个产品。工厂方法模式是对简单工厂模式的稍微改进。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际工作推迟到子类中。还以书上的计算器为例:工厂模式

2016-07-16 16:39:43

大话设计模式:简单工厂模式

由于面向过程编程造成的代码膨胀问题越来越严重,使其维护的代价高,灵活性很低。为了使代码易维护、易扩展、易复用和灵活性好,所以我们在采用面向对象编程的时候,防止采用面向对象的语言实际上却做着面向过程的事儿,更需要采用某种设计模式,使程序变得高内聚,低耦合,这样的程序才能达到上面的四个优点。而简单工厂模式的出现也正是为了达到这样一种效果,将工厂和产品分块,具体解决了实例化那个对象(具体产品)的需求。从

2016-07-16 16:33:25

数据库索引《二》

目录覆盖索引最左前缀原则索引下推思考及解答设计表结构或者是创建索引的时候,我们的目标就是在满足当前需求的情况下,减少对数据库的访问,减少资源的消耗。//表结构USER_TABLE|CREATETABLE`USER_TABLE`(`id`int(11)NOTNULL,`age`int(11)NOTNULL,`orderId`big...

2016-07-13 19:38:55

数据库索引《一》

目录索引的类型回表索引维护思考与解答索引是存储引擎实现的,没有统一的标准,不同的引擎的索引工作方式不一样。常见的三种索引结构:哈希表/有序数组/搜索树。哈希表 数据结构:数组+链表的方式; 优点:等值查询的速度比较快; 缺点:因为无序,做区间查询比较慢,时间复杂度O(N); 适用场景:membercache和noslq等一些...

2016-07-12 16:42:34

数字之魅:寻找数组中的最大值和最小值

数组是最简单的一种数据结构。我们经常碰到的一个基本问题,就是寻找整个数组中最大的数,或者最小的数。这时,我们都会扫描一遍数组,把最大(最小)的数找出来。如果我们需要同时找出最大和最小的数呢?对于一个由N个整数组成的数组,需要比较多少次才能把最大和最小的数找出来呢?这个题目比价简单,主要方案如下:方案一:分别求最大和最小值。这是一种比较常规的解法。可以分别求出数组的最大值和最小值,这样,

2016-07-12 16:36:03

数字之魅:判断两个链表是否相交

题目:给出两个链表的头指针,比如head1和head2,判断这两个链表是否相交。这里为了化简,我们假设两个链表均不带环。方案一:蛮力法。一般我们都能想到的,就是从head1开始,逐个与head2中的每个结点的地址比较,看是否相等,如果不等,则head1移动到下一个结点,继续和head2中的每一个结点的地址比较;如果找到相等,则这两个链表相交;直到head1==NULL,则不相交。注意为了避免存

2016-07-12 16:31:36

数字之魅:快速寻找满足条件的两个数

能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的数字,为了简化起见,我们假设数数组中肯定存在这样一组以上符合要求。这个题目看起来其实并不难,但是仔细想想还是有许多值得思考的地方。方案一:常人常规蛮力法。穷举法,需要找数据我们就挨个找,总是能找出来,就是时间问题,我么一次列举每一个数和后一个数的和看是否与目标值相等。但是其时间复杂度为O(N*N)。方案二:由于是查找,我们

2016-07-12 16:25:27

数字之魅:子数组之和的最大值[二维]+[三维]

题目:如何求出一个二维数组中的最大子数组之和。方案一:暴力破解-枚举法。对于一个二维数组我们列举出每一个子数组值的大小,然后进行比较,这样就可以得到最大的和了。其时间复杂度为:O(N*N*M*M*Sum的时间复杂度)[N表示行数,M表示列数,Sum是求解子矩阵的和]。由于Sum函数求和也是采用循环,足见这个时间复杂度可是相当的大。方案二:先计算出以左上角的元素(1,1)和当前元素(i,j)

2016-07-12 16:12:20
奖章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!