自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

语言

欢迎访问我的个人博客:http://guochenglai.com

  • 博客(24)
  • 收藏
  • 关注

原创 百度无法爬取Github Pages静态网站解决方案

在Github Pages上面托管了自己的静态博客,经过一段时间的运行发现自己网站的流量基本都是来自与谷歌、必应、搜狗等等搜索引擎,确没有百度的搜索引擎的流量,最后谷歌一下发现原因是:百度爬取GitHub太频繁了,甚至引起了GitHub的服务不稳定,最后GitHub直接把百度屏蔽了,也就是说,所有托管到GitHub Pages上的静态博客都是无法被百度搜索到。

2016-09-29 09:56:50 3766

原创 AQS(AbstractQueuedSynchronizer)源码分析

AbstractQueudSynchronizer(AQS)是道格李java并发编程的基础,内部主要包括Node和ConditionObject两个内部类,基于Node节点构建了一个FIFO队列,用来存储等待锁的线程的队列。基于ConditionObject节点也构造了一个FIFO队列,用于存储因为某种原因已经获取到锁而又主动释放锁的线程的队列。在concurrent包下面的大部分的工具类都是以他为基础,包括CountDownLatch,Lock,ReadWriteLock,Semaphare,条件队列….

2016-06-07 09:45:19 671

原创 Hexo+GitHub Page 搭建博客详解

Hexo是基于node.js的,所有的文章最后都被编译成了静态的HTML,所以你搭建一个博客系统并发布到线上从整体来看只需要如下三步: 1 在本地搭建一个博客系统。 2 在本地编写博客并编译 3 将本地编译的文件提交到GitHub Pages上。本文将分为以下九个部分讲解:1 框架的选取2 整体运行原理3 需要注意的问题4 本地博客搭建5 配置maupassant样式6 定制maupassant7 部署到GitHub Pages8 配置阿里云域名9 七

2016-06-02 20:43:10 830

原创 博客地址迁移啦!!!

经过最近一段时间的努力我的个人网站终于上线了。个人网站地址是:http://guochenglai.com/about/以后会逐渐将本站的所有文章迁移到新的博客!!!!

2016-05-27 17:02:15 424

原创 使用try-with-resource改进代码异常处理机制

1 JDK1.7之前标准的异常处理机制      在JAVA7之前,程序中必须顺次打开或者关闭资源,如果只打开了资源没有关闭资源。就会出现资源泄漏问题,线上代码运行时间越久,程序的效率就会越低。但是,资源的关闭不仅繁琐而且很容易出问题.....2 使用try-with-resource改进异常代码的处理机制 JDK1.7中引入了try-with-resource机制,试图简化异常处理以及资源关闭等问题。由try-with-resource语句托管的资源文件,在离开try-with-reso

2016-05-24 10:39:31 1919

原创 字符编码历史(字符编码详解)

1 字符集概述    简单来说字符集就是一套文字符号及其编码的描述。从20世纪60年代美国标准化组织ANSI发布了第一个计算机字符集ASCII开始,为了处理不同的文字,各大计算机公司,各国政府,以及各种标准化组织发明了几百种字符集,例如我们所熟悉的:ASCII,USC,GBK,BIG5... 这些不同的字符集从收录到编码都各不相同,给软件的移植和信息的交换带来了很大的困惑。最严重的问题就是字符

2016-05-23 20:43:02 633

原创 Mybatis如何返回Map而不是List<Map>

1 综述       在使用Mybatis的时候,有时候我们会有这么一种需求:我们希望通过Mybatis查询某一个表返回的结果是一个Map(HashMap),而这个Map的Key是表的一个字段,Value是另一个字段。然而当我们按照Mybatis的做法,指定查询Mapper语句的resultType为map时返回的结果是一个List。本文的例子将采用一个简单的方法,直接返回map。

2016-05-18 16:49:28 6006 1

原创 java 学习曲线(Java学习书籍推荐)

在刚学习Java语言的时候,就在网上搜索Java学习推荐的书籍,很多人都吧《Java编程思想》作为入门的书籍推荐,我觉得有点不合适,《Java编程思想》讲解的内容比较深入,当时就是因为第一本书就看这个,差点放弃了。最近总结前几年的编程心得的时候,顺便把自己看过的书,和写过的笔记整理了一遍,希望下面的书单能够对读者有一定的帮助。

2016-05-16 20:10:31 6086 1

原创 mac 常用软件推荐

1 intellij idea       简介:Java编程的利器,用完idea之后绝对不会再想用eclipse,但是从eclipse转入idea的过程比较艰难,目前有社区版和企业版本,一般来说社区版本就足够日常的学习和开发了,企业版本加入了spring等企业开发框架的支持,但是价格比较贵。      官方下载地址:https://www.jetbrains.com/idea/downl

2016-05-16 10:52:17 828

原创 java并发编程之4——Java锁分解锁分段技术

1  锁优化            自旋锁:非自旋锁在未获取锁的情况会被阻塞,之后再唤醒尝试获得锁。而JDK的阻塞和唤醒是基于操作系统实现的,会有系统资源的开销。自旋锁就是线程不停地循环尝试获得锁,而不会将自己阻塞,这样不会浪费系统的资源开销,但是会浪费CPU的资源。所有现在的JDK都的是先自旋等待,如果自旋等待一段时间之后还没有获取到锁,就会将当前线程阻塞。

2016-05-13 20:42:53 5152

转载 KMP算法详解

尊重原作者,原文地址:http://blog.csdn.net/shakespeare001/article/details/513812510、关于KMPKMP是用于字符匹配的一个常用算法。关于KMP概念、前缀、后缀概念参考文章中有详细介绍,这里就不做详细讨论,本文详细关注讨论KMP核心点,next数组的作用及求解思路,KMP算法的思路。1、next数组是什么

2016-05-13 20:10:01 459

原创 java并发编程之3——Java锁的分析

在分析java的锁之前首先解释一下JVM对的内存分配模型 1  JVM内存模型                 JVM的内存公分为5个部分,主要包括:                              1  方法区                              2  堆                             3   栈

2016-05-13 20:03:05 274

原创 MySQL常见问题总结分析

说明:本文是基于innodb存储引擎进行分析的!!!!      在我们日常的开发过程了,经常会遇到一些规则法则或者约定,在不知道原因的情况下,很多时候会抱怨DBA,但是有PK不过,下面这里常见的问题,是我在公司开发中遇到的。里面有对原因的分析,希望能给大家提供帮助,解决困惑1 limit和offset VS between和and      在项目中经常遇到分页的操作,最

2016-05-13 19:35:46 582

原创 mac 开发环境配置之homebrew

1 HomeBrew介绍        homeBrew是mac的一款,软件管理工具,类型Ubuntu系统下面的apt-get包管理工具2 安装HomeBrew      ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"3 HomeBrew的使用

2016-05-13 15:14:36 361

原创 mac 配置sudo免密码

1 打开命令窗口     sudo visudo 或者  sudo vi /etc/sudoers2 将 #%admin  ALL=(ALL) ALL  替换为 %admin  ALL=(ALL) NOPASSWD: NOPASSWD: ALL

2016-05-13 14:25:19 10550

原创 mac idea(intellij idea)常用快捷键

1    切换到左侧列表快捷键  command+12    新建文件快捷键 control+enter 或者command+n3    自动生成代码 例如getter和setter  control+enter 或者command+n4    查看最近查看的文件 command+e5    查看最近修改的文件 command+shift+e6     当前文件中搜索 co

2016-05-13 14:10:54 1602

原创 Java并发编程之2——同步工具类的使用(CountDownLatch,CyclicBarrier,BlockungQueue,Semaphore)

为了简化线程同步与互斥的相关操作JDK,提供了大约4中同步与互斥的工具类: 闭锁(Latch),栅栏(Barrier),阻塞队列(BlockingQueue),信号量(semaphore),1 闭锁(CountDownLatch)2 栅栏(CyclicBarrier)3 阻塞队列(BlockingQueue)4 信号量(Semaphore)1 闭锁(Coun

2016-05-13 12:04:57 530

原创 java并发编程之1——synchronized和volatile

总的来说synchronized主要是解决线程互斥性问题,volatitle主要是解决线程可见性的问题。synchronized            1 synchronized的线程安全性                       2 synchronized的变量可见性            3  对象锁volatile

2016-05-12 20:11:17 432

转载 mac画图工具 OmniGraffle (四)化繁为简

非常不错的mac绘图教程,尊重原作者,原文地址:http://www.jianshu.com/p/48678f96ee52OmniGraffle (四)化繁为简OmniGraffle 在内容组织上有页面和图层这两个层级,稍有点遗憾的是目前的版本还没有文件夹的管理层级,希望后续的版本能加上。页面、图层、共享图层实现对内容的组织和共享。另外,OmniGraffl

2016-05-12 16:32:49 4080

转载 mac画图工具 OmniGraffle (三)基础绘图和模具

非常不错的mac绘图教程,尊重原作者,原文地址:http://www.jianshu.com/p/a422e2e2ea8bOmniGraffle (三)基础绘图和模具基础绘图中的流程图和思维导图在绘制上有一个共同点,就是希望软件在设计上能尽可能的减少对思考过程的干扰,用简单有效的方式先帮助我们完成记录,然后再进行加工和排版美化。快速记录是首要的任务,

2016-05-12 16:30:29 15771

转载 mac画图工具 OmniGraffle (二)对象的控制

非常不错的mac绘图教程,尊重原作者 原文地址:http://www.jianshu.com/p/bef7f6272c10OmniGraffle (二)对象的控制OmniGraffle 里的对象可以分成四种:形状、文本、线条和图片,其中文本比较特殊一点,可以以文本框的属性独立存在,也可以按形状特性来控制其大小,此外,形状、线条和图像中都能以标签的形式包含文本,独立存在的文本

2016-05-12 16:27:07 4355

转载 mac画图工具 OmniGraffle (一)从工具栏开始

非常不错的文档,所以转载了原文地址:http://www.jianshu.com/p/52f3ecbe8f2dOmniGraffle (一)从工具栏开始OmniGraffle的软件布局和大多数图形类软件类似,中间是编辑区,左边是页面和对象组织的管理,右边是参数设置和模具,顶栏有一些常用的快捷图标。从左到右由页面、对象的管理到细致的元素的定义和设置,纵深上用页(版面)来承载连

2016-05-12 16:22:33 13564

原创 java和Spring发送邮件

在项目中有很多地方需要用到发送邮件的功能,现在为大家分享一下在自己的项目中用Java发送邮件的配置过程。     需要如下六步即可配置完成     1 在pom中添加如下的依赖 javax.mail mail      2 在项目的resource目录中配置发邮件的服务器配置信息配置文件的名称: mail.propertiesmail.host=xxx

2016-05-12 15:52:11 549

原创 MySQL索引优化分析,SQL优化,慢查询分析

环境配置如下图:测试数据如下....type的取值在很大的程度上反应了SQL的执行性能, 按照性能由高到底,type的取值依次为:NULL,system,const,eq_reg,ref,range,index,ALL

2016-05-12 10:08:25 5971

空空如也

空空如也

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

TA关注的人

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