自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CatcherTheRye的专栏

专注Java领域

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

原创 你应该知道的ThreadPoolExecutor

为什么要有线程池来,可以参考这篇Blog Java线程实现原理首先来简单看下Java中两种启动线程的方式。//Extends Threadpublic class MyThread extends Thread { @Override public void run(){ //TODO } public void main(String[] args

2017-05-11 16:36:55 443

原创 ElasticSearch实战-RestAPI

Elastic重要API介绍

2022-11-13 20:51:31 935 1

原创 ElasticSearch实战--集群管理--向集群中添加新节点

向elastic search集群中添加节点

2022-11-12 21:32:25 1700

原创 ElasticSearch集群管理--往集群内添加新节点

向elastic集群中添加多个节点

2022-11-12 21:11:59 1564

原创 Kubenets 123

安装kubernets环境破费周折,特此记录整个过程第一步: VirtualBox安装CentOS7 64系统。用什么环境无所谓(1)系统下载地址如下。下载CentOS-7-x86_64-Minimal-1908.iso就可以,DVD或者Everything太大了,用不着http://mirrors.aliyun.com/centos/7/isos/x86_64/(2)安装完成后,用系统账...

2019-11-30 19:30:10 302

原创 Docker安装mongo

本文描述如何使用docker在本地安装和部署mongo数据库。docker for mac的安装参考: https://blog.csdn.net/catchertherye/article/details/102866355mongo docker镜像说明文档 https://hub.docker.com/_/mongo安装和启动过程# 下载镜像docker pull mongo#...

2019-11-02 14:33:43 232

原创 Web-Flux with Kotlin Demo

github: https://github.com/zhanzhanqi/web-flux本文将web-flux demo中的handler模式的使用方式进行了节选,直接将本文中代码服务复制到ide中就可以使用。至于生层次的reactive的套路及其好处,有了更深的体会后在开文章记录。pom依赖 <dependency> <groupId>org.spr...

2019-11-02 14:19:38 225 1

原创 Docker For Mac安装

在mac中使用docker的第一步就是要安装一个docker工具,docker for mac.下载地址: docker for mac下载地址下载时比较坑的地方是要登录,并且提示需要输入docker id其实就是账号的用户名,页面如下:没有DockerID也没有关系,点击下面的Sign Up进行注册就行了注册并登录之后就可以下载了,下载下来的是docker.dmg, 安装方法跟mac...

2019-11-01 23:55:54 589

原创 Jetty源码阅读 - ServerConnector

Jetty ServerConnector阅读Jetty源码需要Java NIO的知识 refs:Java NIO浅析Java NIO模型的关键类是ServerSocketChannel SocketChannel Selector这两个,其中ServerSocketChannel用于创建服务端端口的监听,且提供了#accept方法用于返回SocketChannel。SocketChan...

2018-03-17 15:42:49 983

原创 数据库性能分析工具

官网 https://www.percona.com/downloads/percona-toolkit/LATEST/文档 https://www.percona.com/doc/percona-toolkit/LATEST/index.htmlPercona Toolkit is a collection of advanced command-line tools used by Perc

2017-05-23 09:52:37 1058

原创 高级Java工程师面试资料收集

【Java面试必备】最近5年133个Java面试问题列表 https://www.nowcoder.com/discuss/21112

2017-05-15 17:29:56 636

原创 volatile能保证long&double类型变量操作的原子性

这个题是正确的,但是也不是必须的。该命题的存在是Java内存模型要求lock, unlock, read, load, assign, use, write这个8个操作都具有原子性,但是同时又对64位的数据类型(long&double)给了一个相对宽松的规定,就是允许虚拟机将没有被volatile参数修饰的64位数据类型的读写划分为两次32位的操作来进行,即允许虚拟机将load, store, r

2017-05-15 16:12:15 7394

原创 Java线程实现原理

要了解Java线程的实现,首先需要了解下操作系统的线程模型。随着操作系统的发展,操作系统的调度由原来的进程转移到了线程,而进程则越来越成为了一个资源的集合,自保护了程序所需要的网络端口,磁盘文件句柄等;线程在作为程序执行和调度的最小单位,线程共享了进程内的资源,本身只包含了本线程运行所需要的最小的资源,因此切换起来比进程更加轻量级,成本更低。在系统中线程有两种实现方式,内核线程和用户线程。内核线程有

2017-05-12 11:39:17 531

原创 Mysql 事务ACID特性及事务隔离级别

Mysql 事务ACID特性及事务隔离级别From High Performance MysqlACID 特性原子性 Atomicity 一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中一部分操作。一致性 Consistency 数据库总是从一个一致性状态转换到另一个一致性状态。隔离性 Isolation

2017-03-26 15:25:23 732

原创 git diff 四种比较方式

工作场景在用git进行版本控制的时候,通常会有这样的需求: 1.我想知道我的工作目录中都发生了那些变化,以辅助我的commit操作。 2.当要真正进行提交时,我需要清楚将要提交的内容和版本库的内容有哪些不同,这样的提交是正确的吗。 3.在线上代码出现问题的时,明确的知道原来有个版本的代码是好用的,除了进行线上紧急回滚外,我需要知道到底进行了什么操作引起了失败。 除此之外可能还会有其他的需求吧

2015-11-14 11:49:54 5581

原创 git reset的三种模式

新学git,对git的reset操作总是怕狼怕虎的,这样是不对的,对于任何新鲜事物都要大胆去尝试。看几篇博客,看几页图书然后死记概念,永远也不能完全理解其中的道理。废话不多说,直接上货。先看实例mkdir git-resetcd git-resetgit init开始做几次提交echo "Hello, git rest" > readme.txtgit add .git commit -m

2015-11-08 21:03:20 13250 2

原创 Java实现各种类型的单例模式

单例算是最简单的设计模式了,用途自不用多说,但是写好单例也是比较考验一个程序猿功底的,这就是为什么很多面试官乐于让面试者写一写单例的原因,正所谓简约而不简单。废话不多说,下面就用java来实现各种各样的单例吧。 1.饿汉模式public class Singleton{ private static Singleton instance = new Singleton(); private

2015-04-04 18:10:31 869

原创 为vim增加目录浏览插件

NERDTree 是vim的目录浏览插件,使用该插件,可以在vim窗口的一侧浏览目录,使用hjkl浏览目录,用Enter键打开或关闭目录,打开文件。下面来讲述安装方法。使用该网页进入NERDTree的github主页:https://github.com/scrooloose/nerdtree该页面提供的命令:cd ~/.vim/bundle && git clone https://gi

2015-04-04 17:25:15 981

转载 vim高效操作摘录

1. 来自IBM的一篇文档:https://www.ibm.com/developerworks/cn/linux/l-cn-tip-vim/掌握并熟练这些基本命令是使用 Vi/Vim 的基本要求。只有这样,才能在实际使用过程中做到按需选择,灵活使用,提高 Vi/Vim 的使用效率。需要说明的一点是:在使用 Vi/Vim 的时候,有时想临时退出 Vi/Vim,转到 shell 环境里去

2015-03-27 20:56:51 467

原创 vim自动格式化代码

1.在vim中可以用‘=’来格式化代码具体操作如下:== 格式化当前行gg=G 格式化整个文档#= 格式当前行及接下来的#行代码,例如“2=” 格式化当前行及接下来的2行2.用vim格式化的时候可能会遇到缩进太大的问题,可以通过在~/.vimrc中通过set shiftwidth=2 "配置自动缩进的字符数目

2015-03-24 11:03:16 5857

原创 Hadoop Streaming 获取mapreduce_map_input_file遇到的版本问题

1.Hadoop Streaming,可以在任务中获取hadoop设置的环境变量,  例如用awk写的map可以这样获取:filename = ENVIRON["mapreduce_map_input_file"]2.可是在不同的Hadoop集群提交作业的时候却遇到了版本的问题,   在0.21.0中,使用mapreduce_map_input_file可以取到作业输入文件名   

2015-03-18 15:22:52 4014 1

原创 mac中配置ice3.3.1环境

主要是配置Ice3.3.1环境,最新的3.5.1支持dmg安装方式,比较容易1.下载针对mac的安装包:    https://www.zeroc.com/download_3_3_1.html2.解压到一个目录tar -xvf ...   假设解压后的目录为~/tools/Ice-3.3.13.建立一个软链接/opt/Ice-3.3 -> ~/tools/Ice-3.

2015-03-10 14:39:15 1076

转载 修改JAVA_HOME无效,java版本保持不变的问题解决

问题现象: 在现公司,遇到一个问题,就是配置JAVA_HOME无效,不管怎么改,运行java -version始终是最初的那个java版本。直接在PATH环境变量里追加写死的java路径也没用。  解决过程: 曾经在一个人机器上发现此问题,然后又在两个机器上发现同样的问题,于是我迷茫了。 接着冷静下来想想,在以前的地方从未遇到

2013-12-11 19:05:44 657

原创 在cygwin中安装软件

对于cygwin初学者来说,在cygwin中安装软件是一个重要的需求,对于这种需求,有一种比较简单的方式可以实现,就是利用cygwin的安装文件setup.ext。如果安装cygwin之后突然想起还有软件没有安装,就可以重新运行安装文件setup.exe,按照如下步骤安装自己需要的软件。1.打开cygwin的安装文件setup.exe,点击下一步2.在下面这个界面中选择第一项,也就

2013-12-05 13:18:44 1449

原创 利用svn检出hadoop源文件

由于hadoop项目非常的复杂,版本也较多,因此在学习hadoop源码的时候可能会遇到困难,尤其是如何得到hadoop源码,我们利用svn来获取hadoop源码。首先记住hadoop源码的svn检出地址:http://svn.apache.org/repos/asf/hadoop/common/branches/1.在eclipse中点击File>>Import找到其中的svn选项(前提是

2013-12-04 15:43:44 2036

原创 cygwin中文乱码问题的解决

在cygwin界面上边栏右键,选择options在右边选择text在下面的Locale中选择zh_CN,Character set 选择GBKOK问题解决

2013-12-02 21:33:28 989

原创 1 2 5组合100,有多少种方法

问题描述:用随意多个1 2 5三个数字的组合,使其值为100,有多少种组合方法?        基础解法:穷举法,1穷举100次,2穷举50次,5穷举20次,这种方法总共穷举的次数为100*50*20=100 000,性能太差,但是为了以后描述问题,先给出穷举法的代码: for(int i = 0; i <= 100; i += 5){ for(int j = 0;

2013-10-12 17:09:43 3075 2

原创 大整数乘法实现

给两个用字符串表示的大整数,对这两个整数进行相乘,求它们的积,所谓大整数就是用int,long均无法表示的整数,对它们做乘法,只能自己来实现。我们假定两个整数是十进制的正数,我们做这样的假定只是为了研究大整数乘法的方法,至于其他进制,有正负之分只要在这种方法上稍微做点修改就行了。下面开始讲解。1.方法1两个数相乘,最先想到的方法就是,我们可以用加法来实现,对被乘数做乘数次加法,进行

2013-09-19 10:26:37 1291

原创 java到底是传值还是传引用

这个问题一直困扰着初级程序员,如果这个问题不能解决,以后在做程序的时候可能会收到影响。其实这个问题是从C++中的传值和传指针中遗留来的,我们知道java中的引用其实是类似于C++中的指针,都是指向它所表示的对象,只不过java对指针有进行了一次封装,这样比直接拿到对象的指针操作起来更安全了,其实本质上都是指针。对基本类型的变量,没有任何人去争论,都知道它是传值的。但是对于指

2013-09-14 10:04:47 717

原创 mysql常用语法

1.删除表的主键alter table table_name drop primary key;2.查看表结构desc table_name;3.查看数据库中存放的表show tables;4.查看管理的所有数据库show databases;5.创建数据库create database database_name;6.删除数据库drop databas

2013-09-12 20:34:02 500

原创 数据库查询--高级议题

一:取每个分组中的前几行记录假设数据表为stu,字段分别为id学生号、gno科目号、grade分数取每个学生成绩最好的三科成绩,可以先用一个查询,筛选出每个学生最好的三个成绩,然后再查询整个表从中找出成绩在刚才查询结果中的记录。SQL: select id, gno, grade from stu where grade in(select grade from stu group b

2013-09-12 20:21:42 678

原创 数据库连接

数据库连接操作主要是连接两个表的查询。主要分为内连接和外连接。一、内连接内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种: 1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。 2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这

2013-09-11 22:04:17 501

原创 Eclipse好用快捷键

【ALT+/】此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。【Ctrl+O】显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。【Ctrl+/】快速添加注释,能为光标所在行或所选定行快速添加注释或取消注释,在调试的时候可能总会需要注释一些东西或取消注释,

2013-09-09 22:51:46 496

原创 从一组无序的整数中找出前N大的数

经常会遇见这样的问题,如何从一组序列中找出最大的N个数,比如从一个班级的成绩中找出总成绩的前三名。可能会有一个比较简单的做法就是先将这组序列排序,然后前N个值自然而然就得到了。这对于比较少的序列,是可行的,比如前面说的一个班的前三名,但是对于数据量特别庞大的现实应用中,就不太现实了,例如我们经常用到的搜索引擎,它应该不会对她搜到的所有的页面先进行排序然后再返回前N个搜索结果吧,这样的话花费在排序上

2013-09-09 22:39:49 2362

转载 解决eclipse中overlaps the location of another project: 'xxxx'

原文地址:http://blog.csdn.net/aeolus1019/article/details/8075096new -> android project -> create project from exist source出现如下错误信息:Invalid project description------>detail: ->>> xxxx(project path)

2013-09-06 16:13:17 859

原创 将一个整形数转换成字符串形式

假如给你一个题目,将一个整型数转换成它的字符串形式,你会怎么做,你会这样做,new Integer(432).toString(),或者Integer.toString(432),再或者Integer.toString(432,10)这几个方法都能办到,但是他们是怎么实现的呢,假如让你去实现你怎么做呢,我们通常的做法是:public static String convertI

2013-09-05 21:57:34 4223

翻译 CUP中文文档

弄过编译器的都知道,在进行语法解析的时候需要使用自动生成工具,CUP就是这样一种工具,使用CUP可以生成用java语言编写的语法解析器。花了很长时间翻译了CUP的使用手册,希望对正在使用做编译器项目的亲们有帮助。由于个人能力有限,翻译的过程中难免出现错误,希望发现错误的亲们及时提醒。CUP用户手册目录引言:关于CUP0.10 2第一章 简介和示例 2第二章 规范语法 6第三

2013-09-03 15:08:39 3644 1

MySql技术内幕(第4版)

MySql技术内幕 第4版。 介绍Mysql的基础知识及其有别与其他数据库系统的独特功能。

2018-03-20

Java并发编程的艺术

并发编程领域的扛鼎之作,作者是阿里和1号店的资深Java技术专家,对并发编程有非常深入的研究,《Java并发编程的艺术》是他们多年一线开发经验的结晶。本书的部分内容在出版早期发表在Java并发编程网和InfoQ等技术社区,得到了非常高的评价。它选取了Java并发编程中最核心的技术进行讲解,从JDK源码、JVM、CPU等多角度全面剖析和讲解了Java并发编程的框架、工具、原理和方法,对Java并发编程进行了最为深入和透彻的阐述。, 《Java并发编程的艺术》内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,同时通过实例介绍了如何应用这些技术。

2017-12-27

java并发编程实战

java并发编程实战,深入讲解了并发编程的原理,以及一些实践技术,是不可多得的一本好书。

2013-11-22

java_cup_v10k.zip(里面含有英文文档)

CUP生成语法解析器的自动生成工具,这是最新版本的CUP,使用CUP能够生成java语言编写的语法解析器。

2013-09-03

空空如也

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

TA关注的人

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