自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MyBlog

路漫漫其修远兮,吾将上下而求索。

  • 博客(141)
  • 资源 (5)
  • 收藏
  • 关注

原创 《Effective Java 第三版》新条目介绍

前言从去年的3月份起我就在开始读《Effective Java 第二版》,当然,我读的是中文版的;可能是我理解能力还不行,对于书中的内容总是感觉理解困难;就拿第一章的内容「创建和销毁对象」来说吧,这是我读的次数最多的一章,想必原因大家也是明白的,每次我读不下去的时候,我就从头开始读,所以,现在我对这本书的第一章是最为熟悉的了。后来,有一次我上网看到有网友说这本书确实和绝大部分的翻译书籍一样,对...

2020-04-30 12:49:35 40604 15

原创 MySql使用技巧备忘录

前言先记录查询结果按逗号分割的字符串返回-- 将test_tbl表的id字段按逗号分割查出来SELECT GROUP_CONCAT(id SEPARATOR ',') FROM test_tbl;例如返回:1,2,3参考文章:MySQL Results as comma separated list...

2019-12-10 22:36:32 289

原创 MySQL使用注意事项记录(不定期更新)

前言这篇文章会记录一些关于MySQL使用上容易出错的地方。MySQL 唯一性约束允许重复的NULL值问题复述:CREATE TABLE `my_table` ( `A` char(20) , `B` char(20) , `C` char(20) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE UNIQUE INDEX UNI_AB...

2018-12-10 23:25:52 360 1

原创 MySQL查询中LIMIT的大offset会导致性能低下

前言在业务系统中难免少不了分页的需求。想到分页的时候,大家肯定会想到使用SQL中的LIMIT来实现。但是,如果不正确的使用LIMIT会导致性能问题(SQL执行得很慢、有可能会拖垮服务器),也会被领导批的;所以,我们来看看如何正确地使用LIMIT。LIMIT OFFSET, ROW_COUNT 实现分页存在性能问题的方式SELECT * FROM myTable ORDER BY `id` ...

2018-12-05 00:08:32 1262

原创 温故 Java 8 中引入的 Optional 类

前言为什么要有Optional类?(它试图去解决什么问题呢?)答:Optional类试图去解决Java系统中大量出现的NullPointerException问题和繁琐的null检查。使用Optional常用方法:创建 Optional 对象,使用of(T) 或者 ofNullable(T),它们的不同点在于对于传入的参数为null时,是如何处理的。of(T) 如果传入的参数为nu...

2018-12-04 00:28:03 209

原创 温故 Java 8 日期 API

前言为什么我们需要一个新的日期和时间库?Java开发中一个长期存在的窘境是对普通开发者的date和time用例支持不足。例如,现存的类(例如java.util.Date和SimpleDateFormatter)不是线程安全的,导致潜在的并发问题——不是普通开发者所期望的编写日期处理时的代码。一些日期和时间类也表现出相当差的API设计。例如,java.util.Date中的年份开始于190...

2018-12-02 23:39:19 665

原创 Spring Data JPA Vs Hibernate JPA Vs JPA

前言从文章的标题,就可以清晰地了解到,本文是来辨析三个容易将新手弄糊涂的技术名词。如果,你一眼看过去就知道这三个名词的区别及关系,那么,这篇文章你可以不用继续读下去了;除非,你是想要看看我有什么解释的不对,来纠错的(来找茬,哈哈),也欢迎留言。名词解释JPA(Java Persistence API,Java持久化API),它是一个关于如何处理对象关系映射(object-rela...

2018-07-31 00:25:42 695

原创 Git 常用命令小结

前言阅读本篇文章需要读者了解 Git 的基本用法,如果你对 Git 完全不了解,请先行移步了解 Git 基础。 下面是几份本人觉得不错的 Git 入门教程,新手可以参考。Git权威指南 | 国内一位大牛写的介绍 Git 用法的开源书籍,很详实Pro Git | Git 官方社区编著的介绍 Git 用法的书籍创建新分支,并且切换到新分支> git checkout ...

2018-05-08 07:39:04 323

原创 Hexo代码块前后空白行问题

解决方法1.找到hexo-util/lib/highlight.js文件 一般的路径为${blog_path}/node_modules/hexo-util/lib/highlight.js 2.修改highlight.js文件中的代码 大概在35~38行 修改前:numbers += '<div class="line">' + (firstLine + i) +...

2018-02-25 23:11:35 3519

原创 使用Spring Boot的AOP处理自定义注解

前言上一篇文章Java 注解介绍讲解了下Java注解的基本使用方式,并且通过自定义注解实现了一个简单的测试工具;本篇文章将介绍如何使用Spring Boot的AOP来简化处理自定义注解,并将通过实现一个简单的方法执行时间统计工具为样例来讲解这些内容。AOP概念 面向侧面的程序设计(aspect-oriented programming,AOP,又译作面向方面的程序设计、观点导向

2018-01-12 00:37:54 11931

原创 Java 注解介绍

Java注解又称Java标注,是Java语言5.0版本开始支持加入源代码的特殊语法元数据(元数据 Metadata:描述数据的数据)。Java语言中的类、方法、变量、参数和包等都可以被标注。和Javadoc不同,Java标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java虚拟机可以保留标注内容,在运行时可以获取到标注内容。 当然它也支持自定义Java标注。

2017-12-29 00:18:13 645

原创 MySQL 5.7 复制原理简介

通过复制,可以将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。 默认情况下复制是异步的; 从服务器不需要一直连接以接收来自主站的更新。 根据配置,可以复制数据库中的所有数据库,选定数据库甚至选定的表。

2017-11-30 23:43:31 695

原创 以Docker方式实现MySql 主从复制(实践篇)

本文实践了用Docker方式来实现基于binlog的MySql主从复制。关于MySql主从复制的原理将在下一篇中进行讲解。

2017-10-31 23:40:00 752 3

原创 Kafka快速入门

Apache Kafka was originated at LinkedIn and later became an open sourced Apache project in 2011, then First-class Apache project in 2012. Kafka is written in Scala and Java.

2017-08-31 23:59:59 461

原创 zip压缩包解压乱码问题

问题由于zip格式中并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。目前网上流传一种unzip -O cp936的方法,但一些unzip是没有-O这个选项的。

2017-05-02 23:01:48 19564 1

原创 Bash循环处理带有空格的文件名

对于带有空格的文件名在进行循环处理时,如果不好好处理会出现一些让人头痛的问题,比如本来想要对正常的文件名称进行处理,但是,由于文件名中有空格导致,文件名错误。那么如何正确处理带有空格的文件名呢?请看这篇文章。

2017-05-02 22:56:01 6176

原创 ArchLinux调节屏幕亮度

ArchLinux通过配置脚本调节屏幕亮度,其他Linux发行版类似。

2017-04-30 22:06:59 5134

原创 MySql镜像安装

Docker进阶之安装MySql镜像,启动MySql容器,简单验证MySql容器是否启动成功。

2017-04-30 21:58:48 4730

原创 Linux开机和关机记录查看

Linux系统查看系统开机关机命令简介。

2017-04-30 21:37:50 55909 1

原创 sudo cd为什么不能够执行

我想要cd到/etc/docker,但是它给我一个权限不够的错误,然后,我想到使用sudo cd /etc/docker时,它告诉我sudo: cd:找不到命令。于是,郁闷的我就去上网找了下原因。cd不是一个应用程序而是Linux内建的命令,而sudo仅仅只对应用程序起作用

2017-04-21 20:19:17 25266 4

原创 Docker快速入门

Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源),主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会。

2017-04-20 00:18:43 590

原创 Greasy Fork 用户脚本简介

这篇文章主要给大家介绍一下好用的浏览器脚本管理器,还有功能丰富的脚本列表,比如「突破百度云大文件限制」脚本,还有本人写的「一键删除微博」脚本。

2017-03-25 21:34:58 24401

原创 tmux进阶之tmuxinator

tmuxinator是tmux的配置管理工具,解决了tmux服务器关机后session丢失问题。tmuxinator可以根据配置文件快速创建tmux的session。这篇文章将告诉你如何安装tmuxinator,及简单的配置讲解。

2017-03-03 14:43:00 4220 2

原创 Linux开启swap空间

Linux开启swap空间有好几种方法,在这里只介绍两种比较常用的:使用『交换文件』和使用『交换分区』。

2017-02-25 16:51:40 6794

原创 Linux中将capslock键映射成ctrl键

经常使用电脑的我们应该会明白这样一件事,capslock键(即,切换输入法大小写)的使用频率比ctrl键要低很多,但是在大多数标准键盘上却占用着一个比较方便的位置。为了提高我们使用电脑的效率,为什么不去把使用频率低而又占着比较方便位置的capslock改成经常使用的ctrl键呢?那么在Linux下如何将capslock键修改为ctrl键呢?请看这篇文章。

2017-02-25 16:25:49 6862

原创 多启动U盘制作流程

看多了网上的一键制作U盘启动盘的工具,有没有想过自己动手熟悉一下U盘启动盘的制作过程呢?这篇文章将告诉你如何一步一步制作「多系统启动U盘」。

2017-02-07 18:24:06 5045

原创 Linux下的神器介绍之Tmux分屏器

前言我们为什么需要分屏器呢?对于这个问题,我想大家肯定都有自己的看法。主流的观点是这样的,对于生活在Linux下的人(开发人员、运维人员、普通爱好者)都不可避免的使用终端模拟器(比如,gnome-terminal)去执行一些命令或者脚本。但是,通常一个终端是不够用的。比如,你想一边观察着系统的运行状态一边用vim写个脚本,当你运行了个top命令后,你发现这个终端被占用了,你不能够再用这个终端去干其他

2017-01-23 20:18:12 2065

原创 浮点数进行精确计算的问题

在计算机科学中,浮点(英语:floating point,缩写为FP)是一种对于实数的近似值数值表现法,由一个有效数字(即尾数)加上幂数来表示,通常是乘以某个基数的整数次指数得到。以这种表示法表示的数值,称为浮点数(floating-point number)。

2016-12-28 16:59:51 2427

原创 Linux终端模拟器常见快捷键

本人常用的几个快捷键 ctrl+k 剪切文本直到行的末尾 ctrl+u 剪切文本直到行的起始 ctrl+w 剪切光标前的单词 alt+d 剪切光标后的单词 ctrl+y 粘贴最近剪切的文本 ctrl+c 删除整行 ctrl+f 向前移动一个字符 ctrl+b 向后移动一个字符 alt+f 向前移动一个单词 alt+b 向后移动一个单词

2016-12-27 17:34:52 2968

原创 持续集成进阶篇

在前一篇文章持续集成入门篇中我大概介绍了下持续集成的概念及工具(抱歉,在前一篇文章中我查的资料不够与时俱进,工具介绍的都比较老,目前流行的工具应该就属Jenkins和Travis CI 了)。这篇文章我将就持续集成的话题继续深入地探讨一番。持续集成的四个步骤『代码级别的集成』 『集成 Workflow』『持续部署与交付』『并行多workflow集成以及个性化集成』

2016-12-19 23:17:04 1979

原创 持续集成入门篇

持续集成(英语:Continuous integration,缩写为 CI),一种软件工程流程(即,开发流程),将所有工程师对于软件的工作复本,每天集成数次到共用主线(mainline)上。这个名称最早由葛来迪•布区(Grady Booch)在他的布区方法中提出,但是他并没有提到要每天集成数次。之后成为极限编程(extreme programming,缩写为XP)的一部分。在测试驱动开发(TDD)的作

2016-12-07 23:50:46 2365

转载 Ubuntu 重置root密码

情景1一拥有sudo权限如果用户具有sudo权限,那么直接可以运行如下命令: #sudo su root #passwd #更改密码 或者直接运行sudo passwd root命令就可以直接更改root密码。有关sudo su的区别:共同点: 都是root用户的权限;不同点:su仅仅取得root权限,工作环境不变,还是在切换之前用户的工作环境s

2016-12-04 18:26:22 5725

原创 HashMap和HashTable的选择

关于编程中HashMap和HashTable的选择问题,我们可以先看看下面这些问题。历史问题:Hashtable是个过时的集合类,是基于陈旧的Dictionary类的,并且存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集合框架中的一部分,而HashMap是Java 1.2引进的Map接口的一个实现。同步问题:HashMap是非synchronize

2016-11-09 20:50:51 748

原创 生产者和消费者问题

生产者和消费者是操作系统中的一个经典问题,这个问题是在讲“进程同步”时的一个例子,下面我就用Java语言中的notify和wait关键字实现这个算法。生产者/** * Description: 生产者. * * @author: crane-yuan * @date: 2016年11月5日 下午3:27:46 */public class Producer extends Thread

2016-11-06 14:24:14 1042

翻译 怎样判断Array(无序)中是否包含某个值呢?

怎样去判断Array(无序)中是否包含某个值呢?这是一个在Java中经常被问到的问题。它也是Stack Overflow上投票前几的一个问题。下面将展示投票前几的几个回答,这些回答使用不同的方式解决了这个问题,但是,时间复杂度也是各有不同的。四种解决方法使用List public static boolean useList(String[] arr, String targetValue) {

2016-11-05 12:21:12 1498

原创 Maven+Nexus+Myeclipse集成

Maven 是一个基于项目对象模型(POM)的,提倡约定优于配置(ConventionOver Configuration)的,跨平台的项目管理和构建自动化工具。首先它是一个优秀的构建工具(构建自动化、消除构建重复、标准化构建过程),其次它还是一个依赖管理工具、项目信息管理工具(如:Mylyn)。Maven安装工具下载Maven3.0.4下载maven配置maven下载后,需要

2016-11-02 23:55:44 1672

转载 Java面试中异常常见问题

Java的异常机制(概念)Java语言中的异常处理包括的四个环节。声明异常 throws关键字可以在方法上声明该方法要抛出的异常,然后在方法内部通过throw抛出异常对象。 抛出异常 throw用于抛出异常。捕获异常 try是用于检测被包住的语句块是否出现异常,如果有异常,则抛出异常,并执行catch语句。处理异常 cacth用于捕获从try中抛出的异常并作出处理。 fina

2016-10-20 18:49:01 868

原创 JDBC中的Statement和PreparedStatement对比

首先关于Statement和PreparedStatement的基本概念我就不再叙述了,可以参考这篇文章,下面我们来看几个测试例子吧。测试场景现在我们向数据库中的一张表中插入100000(10万)条数据,测试使用Statement和PreparedStatement及PreparedStatement的Batch方式所需要的时间。

2016-10-19 17:16:38 1001

原创 常见字符编码辨析

在说常见的字符编码(ASCII、gb2312、gbk、utf-8等)之前,我们先来看看编码的历史吧。编码编年史先是ASCII编码,使用一个字节的7位来表示128个字符(大小写字母,数字0到9、标点符号、及在美式英语中使用的特殊控制字符);表示的字符实在太少,出现了EASCII,EASCII码比ASCII码扩充出来的128符号包括表格符号、计算符号、希腊字母和特殊的拉丁符号;太小家子气了,中国使

2016-10-17 13:19:42 1345

原创 删除单链表倒数第n个节点

如何删除单链表中的倒数第n个节点?使用快慢指针法,实现一次遍历进行删除。

2016-10-12 21:28:10 1352

WinSetupFromUSB

超简单制作多合一系统安装启动U盘的工具 (支持Win/PE/Linux启动盘)

2017-02-07

c语言程序设计

丹尼斯里奇亲自撰写的c语言程序设计书,这本书清晰的讲解了c语言的基本语法知识,也给读者一个很好的c程序编程习惯。

2015-05-01

Win32ASMTRK

已经了解x86汇编,并且想从事破解和逆向等底层的同学,可以先修习Win32汇编,进一步了解Windows程序的运行原理。

2014-10-23

王爽汇编语言专辑

通过《王爽汇编语言》的书籍、PPT和详细的题后解答,应该可以很好的了解和熟悉汇编语言,进而了解机器(电脑)的运行机制。

2014-09-13

数据结构资料

有用的数据结构课件,帮助你快速掌握c数据结构

2014-04-14

空空如也

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

TA关注的人

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