自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux学习笔记

1、 ps -ef|grep mysql 查询名为mysql的服务是否存在2、sudo /etc/init.d/mysql.server -P 3306 start 在beta机上启动mysql服务,如果启动时PID file exists。则要删除mysql.pid和mysql.lock。分别在/home/q/mysql/multi/3306/pid和/home/q/mysql/mult...

2018-03-05 21:37:01 353

原创 git命令笔记

1、 git clone [仓库地址]2、新建分支:git branch 分支名3、切换到分支:git checkout 分支名4、 添加代码到索引库:git add 文件名。如果是分支的全部文件,可用git add .5、 将索引库里的代码提交到本地仓库:git commit 6、将本地仓库代码推送到远程仓库:git push。如果是第一次提交,需要创建远程的分支,可用git push origi

2018-03-05 21:26:55 216

原创 Linux上搭建MySQL

1、安装 sudo yum install q-dba-pxc-5622、初始化3306配置sudo /home/q/mysql/scripts/mysql_install_file \--port 33063、配置环境变量 配置全局的在/etc/profile,配置个人的在~/.bashrcexport PATH="/home/q/mysql/bin:/home/q/pt/bin/:/home/

2018-03-05 21:20:56 244

原创 Future模式

Java多线程编程中,常用的多线程设计模式包括:Future模式、Master-Worker模式、Guarded Suspeionsion模式、不变模式和生产者-消费者模式等。1、Future模式核心思想Future模式的核心在于:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑(根据《Java程序性能优化》)。Future模式有点类似于商品订单。在网上购物时,提交订单后,

2018-03-05 17:53:44 221

原创 try-with-resource与guava Closer

基本语法 try(…) {} ,try里面所有实现接口java.lang.AutoCloseable,包括java.io.Closeable的对象,在{}的语句块执行完毕后都会自动的close。例如:try (FileWriter fileWriter = new FileWriter(outFile);PrintWriter printWriter = new PrintWriter(file

2018-03-05 17:32:57 301

原创 MySQL笔记

SELECTselect * from product A join product_details B on A.id=B.idselect * from product A left join product_details B on A.id=B.id第一个满足条件才列出,第二个不满足条件的B字段以null代替drop与truncate/delete drop 删除数据库或数据表(表结构,

2018-03-05 16:42:28 152

原创 Guava使用之Throwables异常简化、错误传播和检查

任何人都不敢说自己的代码没有bug,所以程序抛异常是再经常不过的事情,有时候,你会想把捕获的exception抛到上一个try/catch块。对于 RuntimeException 和 Error 尤为如此,它们不需要try/catch 块,但可能被其他的 try/catch 块无意捕获。你没想捕获它们,但是声明捕获Throwable和Exception的时候,也包括了了Error或RuntimeE

2018-03-05 16:20:17 552

原创 nginx配置简介

分布式系统中,需要有一个反向代理统一处理请求转发,所有需要访问这些分布式系统的请求都先打到nginx,然后nginx根据配置的转发规则将请求转发到相应的系统。例如我的ngnix配置在/home/q/nginx/conf/vhost下面,有一个配置文件配置着url的请求转发规则,如:location /user/order/html/ { proxy_pass http://user_

2018-03-05 15:53:55 193

原创 Linux上配置git

配置用户名: git config –global user.name “yourName” 配置邮箱: git config –global user.email “yourEmail”ssh-keygen 生成秘钥,默认保存在~/.ssh/id_rsa.pub文件中 ,把整个文件内容拷贝添加到gitlab的ssh key中

2018-03-05 15:49:08 203

原创 Java注解Annotation

用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。所以,可以说注解就是源代码的元数据Annotation是如何工作的?怎么编写自定义的Annotation?例如注解@Override@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}在上面这个例子中,有几个

2018-03-05 15:32:48 144

原创 Linux上solr搜索引擎的安装

本文是《win上安装solr》的续篇,win上solr安装#点我#这次在linux上安装solr,是 jdk8+tomcat8+solr-7.1.0 的组合。这里必须首先声明一下各个主要组件的版本,因为版本不一致可能会导致很多莫名其妙的问题,比如一些类会找不到。jdk和tomcat的安装不是我们这次的重点,这里不再赘述。1、下载solrlinux上下载solr还是很方便的,到达

2018-01-19 20:31:33 340

原创 Win solr搜索引擎的安装

solr的原理、用途、简介啥的我就不说了,其他博客已经写了很多。这里ImportNew有个solr系列的文章很好,安利一波-->##点我点我##。很多初学者碰到的第一个头痛的问题,肯定是怎么成功安装并能使用。这里先跟大家介绍一下再win下怎么安装solr搜索引擎。1、下载solr到apache的solr官网下载即可,附上链接-->#想下载就点我#2、安装win的安装很简单,解压

2018-01-18 18:44:56 250

原创 java线程池

这里搜集了一些关于java线程池的好文章java线程池艺术探索深入理解java线程池-ThreadPoolExecutor

2017-11-14 14:08:10 454

原创 对象池和线程池

实际开发中,并发和多线程的情景处处存在。今天我们来聊聊对象池和线程池这个两个日常开发用的比较多,但是又很容易混淆的两个概念。对象池首先我们来说说对象池。对象池利用了串行封闭的概念:将对象O“借给”一个请求线程T1,T1使用完之后再交还给对象池,并保证“未擅自发布该对象”且“以后不再使用”;对象池收回对象O之后,等T2来借的时候再把他借给T2,完成对象所用权的传递。下面是一个简化版的对象

2017-11-12 16:04:59 1488

原创 Guava使用之Table

当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map<FirstName, Map<LastName, Person>>来实现。 为此Guava提供了一个新的集合类型-Table集合类型,来支持这种数据结构的使用场景。Table支持“row”和“column”,而且提供多种视图。@Testpublic void testTable(){ Table<String,

2017-09-17 14:21:35 948

原创 Guava使用之Splitter

Splitter:在Guava官方的解释为: Extracts non-overlapping substrings from an input string, typically by recognizing appearances of a separator sequence. This separator can be specified as a single character, fi

2017-09-17 14:12:05 1034

原创 Guava使用之Preconditions

Guava的Preconditions内置了很多前置条件判断方法,这些判断方法经常放在方法的最前面,用来检查入参的条件是否符合,它可以使代码变得更整洁。每个方法都有三个变种: 1. 没有额外的参数,抛出的异常中没有错误信息 2. 有一个object对象作为额外参数,抛出的异常中以object.toString()作为错误信息 3. 有一个String作为额外参数,附加不定数量的object对象

2017-09-17 13:57:51 700

原创 Guava使用之Ordering强大的流畅风格比较器

排序器(Ordering)是Guava流畅风格比较器[Comparator]的实现,它可以用来为构建复杂的比较器,以完成集合排序的功能。从实现上说,Ordering实例就是一个特殊的Comparator实例。Ordering把很多基于Comparator的静态方法(如Collections.max)包装为自己的实例方法(非静态方法),并且提供了链式调用方法,来定制和增强现有的比较器。常见的排序器可以

2017-09-17 13:37:49 483

原创 Guava使用之MultiSet

Multiset是什么?顾名思义,Multiset和Set的区别就是可以保存多个相同的对象。在JDK中,List和Set有一个基本的区别,就是List可以包含多个相同对象,且是有顺序的,而Set不能有重复,且不保证顺序(有些实现有顺序,例如LinkedHashSet和SortedSet等)所以Multiset占据了List和Set之间的一个灰色地带:允许重复,但是不保证顺序。 实际开发中,经常会需要

2017-09-17 13:18:48 497

原创 Guava使用之MultiMap

在日常的开发工作中,我们有的时候需要构造像Map<K, List<V>>或者Map<K, Set<V>>这样比较复杂的集合类型的数据结构,以便做相应的业务逻辑处理。例如:private class StudentScore{ int CourseId; int score;}private Map<String, List<StudentScore>> StudentScoreM

2017-09-03 17:46:43 678

原创 Guava使用之Immutable collection

在我们的很多需求中,特别是并发的情况下,我们不想让任何人修改我们的数据集合,这个时候就用到不可变集合,JDK里面也提供了Collections.unmodifiablexxx方法把集合包装成不可变形式,但是他有很多缺点,比如: - 笨重而且累赘:不能舒适地用在所有想做防御性拷贝的场景; - 不安全:要保证没人通过原集合的引用进行修改,返回的集合才是事实上不可变的; - 低效:包装过的集合仍然

2017-09-03 17:17:07 345

原创 Guava使用之BiMap

通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是一些应用场景中需要我们通过value获取key。这个时候如果用传统的方法就需要维护两个map,并且需要保持他们之间的同步。对于值已经存在的情况,会变得非常混乱。例如:Map nameToId = Maps.newHashMap();Map idToName = Maps.newHashMap();&n

2017-09-03 16:48:06 1374

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用

2017-09-03 16:34:20 324 1

原创 在Ubuntu上配置java

目前很多公司的代码大多基于java7,本次安装也是安装Java7可以选择安装开源的OpenJDK或Oracle JDK1.安装OpenJDK在终端使用命令安装jre:sudo apt-get installdefault-jdk在终端使用命令安装OpenJDK: sudo apt-get install default-jdk2.安装OracleJDK这里可以通

2017-03-10 10:58:23 511

空空如也

空空如也

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

TA关注的人

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