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

原创 AQS框架分析

一. 同步器多线程并发的执行,之间通过某种 共享 状态来同步,只有当状态满足某个条件,才能触发线程执行。而这个共同的语义可以称之为同步器,可以认为几乎 juc ( java.util.concurrent ) 下面所有的锁机制都可以基于同步器定制来实现的。而 juc 的思想是将这些场景抽象出来的语义通过同意的同步框架来支持。juc 里所有的这些锁机制都是基于 AQS ( Abstrac...

2018-04-25 13:23:46 372

原创 LNK1101: MSPDB140.DLL 的版本不正确

问题情况:启动生成时会提示:warning D9028: 最小重新生成失败,正在转换为标准生成LINK : fatal error LNK1101: MSPDB140.DLL 的版本不正确;请重新检查此产品的安装在多次查询后,仍然没有发现可行的解决方法,最后在某个和问题毫不相干的博客中找到了结果。说可能和字体渲染有关系,而正好我前几天用了 Mactype 美化字体。由于不放心系统出现问题,一直

2017-06-04 20:44:01 5980 2

原创 JDK中Stack的bug

JDK中Stack的bug在写 Dijkstra 的最短路径算法的时候,打印结果发现和预期的结果不同,查找出来的路径刚好是反着的。在经过多次bug排查后最后发现问题在路径的打印上面。Stack<DirectedEdge> path = new Stack<>();for (DirectedEdge e = edgeTo[v]; e != null; e = edgeTo[e.from()])

2017-04-01 22:52:28 749

原创 Ubuntu下为chromium安装Adobe Flash Player

Ubuntu下为chromium安装Adobe Flash Player参考来源:ask ubuntu1.下载Adobe Flash Player先下载adobe flash player的插件:Adobe Flash Player,选择后缀为.tar.gz的文件下载后解压tar -zxvf xxx.tar得到一个libpepflashplayer.so的文件2.加入Chromium的插件文件夹su

2017-03-24 11:39:34 591

原创 牛顿法开平方

牛顿法(又称:牛顿迭代法)能快速逼近很多方程的解,自然可以用来开任意平方。求a√\sqrt{a},即求x2−a=0x^2 - a = 0的正根。更一般的,求a√k\sqrt[k]{a},即求xk−a=0x^k - a = 0的正根。注意:牛顿法只能逼近解,不能计算精确解。不过实际应用中,我们都不要求绝对精确的解,只要精度足够高就好了,所以它的应用非常广泛。牛顿法假设方程f(x)=0f(x) = 0

2017-03-15 13:40:50 7524

原创 Linux学习(15)--管道命令

管道命令如果一些数据要经过几道手续之后才能得到我们想要的格式,应该如何来设置。这就是管道(pipe)命令的问题了,它使用 “|” 这个界定符号。而且管道命令与连续执行命令是不一样的。假如我们想知道 /etc 下面有多少文件,那么可以利用 ls /etc 来查询,但是文件太多,我们不知道前面输出的内容是什么,此时我们就可以利用 less 来协助:[root@mars ~]# ls -al /etc/

2017-03-13 17:08:22 747

原创 Linux学习(14)--数据流重定向

数据流重定向一般来说,如果要执行一个命令,通常它会是这样的:经过文件读入数据后,再将数据输出到屏幕上。Standard error 和 Standard output都可以把信息输出到屏幕上,那么区别在哪里呢?Standard output 和 Standard error简单地说,标准输出指的是命令执行所回传的正确的信息,而标准错误输出可理解为命令执行失败后,所回传的错误信息。比如,我们去查看 /

2017-03-13 13:35:21 821

原创 Linux学习(13)--初识bash shell

bash shell我们知道,操作系统其实就是一组软件,由于这组软件在控制整个硬件与管理系统的活动监测,如果这组软件被用户随意操作,若用户操作不当,将会使得整个系统崩溃。但是系统总还是需要用户操作系统的,所有就有了在操作系统上面发展的应用程序。用户可以通过应用程序来指挥内核,达到我们的目的。其实 shell 的功能只是提供用户操作系统的一个接口,因此这个 shell 需要可以调用其它软件才好。

2017-03-13 09:17:22 323

原创 Linux学习(12)--文件压缩

在 Linux 的环境中,我们可以看到许多压缩文件的扩展名。尽管说 Linux 的扩展名没什么作用,但是由于 Linux 支持的压缩命令非常多,彼此之间采用的压缩技术不同,可能造成无法互通的情况。所以为了照顾使用者,适当的扩展名还是必要的。下面是几个常见的压缩文件扩展名。*.Z compress程序压缩的文件*.gz gzip程序压缩的文

2017-03-09 18:39:19 565

原创 Linux学习(11)--文件系统的简单操作

磁盘与目录的容量:df,dudf:列出文件系统的整体磁盘使用量du:评估文件系统的磁盘使用量(常用于评估目录所占容量)[root@VM_174_157_centos ~]# df [-ahikHTm] 目录或文件名选项与参数:-a:列出所有的文件系统,包括系统特有的/proc等文件系统-k:以KBytes的容量显示各文件系统-m:以MBytes的容量显示各文件系统-h:以人们熟知的G

2017-03-08 17:14:58 322

原创 Linux学习(10)--Ext2文件系统特性

dumpe2fs(查看文件系统)[root@VM_174_157_centos ~]# dumpe2fs [-bg] 设备文件名选项与参数:-b:列出保留为坏道的部分-h:仅列出 superblock 的数据,不会列出其他的区段内容范例1:找出根目录下的磁盘文件名,并查看相关信息[root@VM_174_157_centos ~]# dfFilesystem 1K-blocks

2017-03-07 19:34:07 381

原创 Linux学习(9)--inode/block特性

inode/block特性操作系统的文件数据除了文件实际内容外,通常含有非常多的属性,例如Linux的文件权限(rwx)与文件属性(所有者、事件参数等等)。文件系统通常会将这些数据放到不同的区块,权限与属性放置到 inode 中,实际数据则放置到 data block 区块中。另外,还有一个超级区块(superblock)会记录整个文件系统的整体信息。每个 inode 与 block 都有编号,他们

2017-03-04 17:35:37 456

原创 Linux学习(8)--命令与文件的查询

命令与文件的查询虽然某些软件配置文件的文件名是不变的,但是各个distribution放置的目录是不同的。此时就要利用一些查询命令将该配置文件的完整文件名找出来。脚本文件名的查询我们知道在Terminal中,连续输入两次[Tab]就可以知道用户有多少命令可以执行。那我们怎么知道这些命令的完整文件名放在哪里?此时就需要 while 或 type来查找。- which(寻找执行文件)[root@VM_1

2017-02-28 20:51:20 388

原创 Linux学习(7)--文件权限

文件与目录的默认权限和隐藏权限在之前我们已经提到了,我们可以通过chown修改属性,chmod修改权限。在这个地方就不多说了,不了解的话可以去前面看看。下面我们主要谈一谈“新建一个文件或者目录时默认的权限是什么”。文件默认权限:umaskumask是指定“目前用户在新建文件或目录时候的权限默认值”,我们可以通过以下的方式得知或者设置umask:[root@VM_174_157_centos ~]#

2017-02-25 17:18:16 440

原创 Linux学习(6)--文件内容查阅

如果我们要查阅一个文件的内容时,该怎么办呢?这里有很多有趣的命令可以来分享一下:最常用的显示文件内容的命令可以说是 cat 与 more 及 less了。此外,如果我们要查看一个几百MB的文件,但是只需要最后的几行字,该怎么办呢?用tail啊!此外,tac也可以!那我们先来看看各个命令的用途:cat:从第一行开始显示文件内容tac:从最后一行开始显示,可以发现tac就是cat倒着写!nl:显示

2017-02-20 10:53:19 804

原创 Linux学习(5)--文件与目录管理

linux文件与目录管理中的 ls、cp、rm、mv、basename、dirname等命令的基本使用和注意事项

2017-02-19 14:47:25 607

原创 Linux学习(4)--目录与路径

相对路径与绝对路径: 绝对路径:路径的写法一定由根目录 / 写起,例如 /usr/share/doc 这个目录; 相对路径:不是由 / 写起,例如由 /usr/share/doc 到 /usr/share/man 下这个目录,可以写 cd ../man。指的是当前工作目录下的路径。目录的相关操作一些特殊的目录,可以帮助我们快速操作:. 代表此层目录..

2016-11-21 21:23:43 310

原创 Linux学习(3)--目录配置

一、Linux目录配置标准:FHS因为利用Linux来开发产品或distributions的社群/公司与个人实在太多了, 如果每个人都用自己的想法来配置档案放置的目录,那么将可能造成很多管理上的困扰。 所以,后来就有所谓的 Filesystem Hierarchy Standard (FHS)标准的出炉了! FHS是根据过去的经验一直再持续的改版的,FHS依据文件系统使用的频繁与否与是否允许使用者随

2016-11-21 19:35:54 259

原创 Linux学习(2)--文件权限

用户:就是普通的一个账号,有自己私人的一些文件 用户组:囊括了一些用户的一个整体,用户组里面的每个人都拥有访问属于用户组的公共文件的权力,而外面的则不行。rwx是文件或目录的权限,我们有chgrp,chown,chmod命令去做出更改,同时我们一般采取两种方式,1-数字修改,2-符号修改

2016-11-19 15:11:45 385

原创 Linux学习(1)--基本命令、man page

首次接触《鸟哥的Linux私房菜基础篇(第三版)》学习Linux,对于之前的一些硬件和CentOS就不做赘述了,个人的理解也不是很深刻。如果后续有时间的话,会实际操作再来做总结。Linux distribution是CentOS 6.6 (64bit)命令行操作[root@VM_174_157_centos ~]# commmand [-options] parameter1 parameter

2016-11-19 11:22:38 473

原创 Java多线程内存可见性

原子性:原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到。 共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。synchronized关键是是可见的,且原子的。volatile不能保证原子性

2016-11-12 21:38:20 410

原创 HashMap工作原理

在之前写的一篇博文中,大致分析了一下实现方式和区别,但是HashMap的工作是怎样的?如果遇到hashCode相等怎么办?如果超过了负载因子又怎么办?这些问题,依然值得我们去深思和理解。以下是一些思考点:HashMap的一些特性HashMap的实现原理HashMap中的数据结构源码中的数据域HashMap的构造函数HashMap的存取机制

2016-11-11 15:39:28 350

原创 HashSet、HashMap和Hashtable的区别

HashSet和HashMap都是Collection框架的一部分,它们让我们能够使用对象的集合。Collection框架主要有Set接口、List接口和Queue接口。Set集合不允许对象有重复的值;List允许重复,并可以对集合中的对象进行索引;Queue则是FCFS算法(First Come First Serve)。HashSetHashSet实现了Set接口,它不允许集合中有重复的值。当我

2016-11-10 15:36:27 2681 3

原创 Java中启动线程start和run方法

一、区别Java中启动线程有两种方法,继承Thread类和实现Runnable接口,由于Java无法实现多重继承,所以一般通过实现Runnable接口来创建线程。但是无论哪种方法都可以通过start()和run()方法来启动线程,下面就来介绍一下他们的区别。start方法:通过该方法启动线程的同时也创建了一个线程,真正实现了多线程。无需等待run()方法中的代码执行完毕,就可以接着执行下面的代码。此

2016-11-07 20:17:14 19915

原创 Java反射和泛型的本质

1.Class类的使用其实类也是对象,类是java.lang.Class类的实例对象。2.动态加载类我用什么才加载什么,不用就不加载,不影响其他的3.获取方法信息4.获取成员变量构造函数信息5.方法反射的基本操作通过invoke操作方法6.通过反射了解集合泛型的本质泛型的本质其实就是去泛型

2016-10-23 14:34:52 581

原创 int、Integer和IntHolder

一、对象包装器与自动拆装箱有时,需要将int这样的基本类型转换为对象。所有的基本类型都有一个与之对应的类。二、int、Integer和IntHolder类型的区别

2016-10-13 22:24:47 1339 7

原创 Java静态域、静态常量和静态方法

在几乎所有的程序里,main方法都被标记为static修饰符。那么我们就来讨论一下这个修饰符。包括静态域、静态常量和静态方法

2016-09-09 17:17:53 724

原创 Java中不编写返回引用对象的访问器方法

在《Java核心技术 卷1》(原书第9版)的时候,在113也有一个警告,说注意不要编写返回引用可变对象的访问器方法,关于可变对象的概念,我自己的理解就是在类中可以不通过域更改器方法就能改变值的对象。,而在所给示例的 Employee 类中就违反了这个设计原则,其中的 geiHireDay 方法就返回了一个 Date 类对象,因为这会破坏封装性!

2016-09-08 20:04:37 482

原创 Java中的Random()函数

在《Java核心技术 卷1》中,看到在数组排序这一章节使用了Math.random()这个方法来生成随机数,一开始是想了解使用方法。但是后来看到了更多详细的介绍,所以做一个简单的小结。Java中存在两种Random函数:一、java.lang.Math.RandomMath.random方法将返回一个随机浮点数。该数的值处于 0 到 1 之间(即 [0, 1)的左闭右开区间),返回值是一个伪随机选择

2016-09-07 15:40:04 635

原创 Java中的代码点和代码单元

代码点、字符编码方案、UTF-16:是指什么字符是抽象的最小文本单位。它没有固定的形状(可能是一个字形),而且没有值。“A”是一个字符,“€”(德国、法国和许多其他欧洲国家通用货币的标志)也是一个字符。字符集是字符的集合。例如,汉字字符是中国人最先发明的字符,在中文、日文、韩文和越南文的书写中使用。代码点是指可用于编码字符集的数字。编码字符集定义一个有效的代码点范围,但是并不一定将字符分配给所有这些

2016-09-06 22:10:54 499

原创 Big-Endian 和 Little-Endian

1)大端(Big-Endian)就是高位字节排放在内存的低地址端。2)小端(Little-Endian)就是低位字节排放在内存的高地址端。

2016-05-04 12:21:54 435

原创 三种基本排序

前、排序的基本概念1、冒泡排序2、简单选择排序3、直接插入排序

2016-04-23 21:34:05 1240

原创 浅谈位域

作为C语言新手,只能凭自己看的一些资料谈一谈自己的理解,错误之处还望不吝指正。 位域(位段) 位域是指信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域, 并说明每

2016-04-20 21:16:32 431

原创 隐式类型转换

C语言中有以下四种情况会进行隐式转换: 1、算术运算符中,低类型转换为高类型。 2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值。 3、函数调用传递参数时,系统将实参转换为形参的类型后,赋给形参。 4、函数有返回值是,系统将表达值类型转换为返回值类型。1、算术转换进行算术运算时,不同类型的数必须转换成同一类型的数据才能进行运算,在转换时依照低级类型向高级类型转换,其转换类

2016-04-20 12:29:27 1669 1

原创 const的一些用法和理解

const的用法和理解

2016-04-14 19:49:23 3714 1

原创 一些简单的选择题

一些简单的选择题的理解

2016-04-12 12:11:26 670

转载 关于堆和栈

1、栈(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆(heap)—一般由程序员分配使用,如果程序员不释放,程序结束时可能由OS回收。分配方式类似于链表。PS:这个和数据结构中的堆是不一样的,一种是数据结构,一种是内存分配方式

2016-04-10 16:51:04 433

原创 Two Sum(初谈双指针)

昨天晚上遇到这么一个题目,然后听到了关于“双指针”的使用。好了,言归正传,先来看一看这个题目:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly

2016-04-10 12:59:21 4290 6

空空如也

空空如也

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

TA关注的人

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