- 浏览: 694757 次
- 性别:
- 来自: 北京
最新评论
-
masuweng:
写的详细
Java中的枚举 -
zmwxiaoming:
java unix时间戳转换 -
g21121:
lhq1013 写道请问 我通过什么方式可以获取到tomca ...
tomcat优化 -
lhq1013:
请问 我通过什么方式可以获取到tomcat的qps值?
tomcat优化 -
zengshaotao:
condition的测试代码有问题,一个await的线程醒来之 ...
Java并发之Condition与Lock
文章列表
配置参数
默认值
说明
服务注册中心配置
Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean
eureka.server.enable-self-preservation
1.下载
登录mysql官网下载页面:https://dev.mysql.com/downloads/,选择Linux系统源码版下载。
2.旧版本
进入系统,使用下面命令可以查看系统中是否已安装了mysql:
rpm -qa | grep mysql
如果返回结果含有mysql或相关组件,可以使用rpm -e命令卸载。
rpm -e xxxxx //普通卸载模式
rpm -e --nodeps xxxxx // 强制卸载模式,该模式会忽略关联组件提示
3.安装 ...
建索引的几个原则
1.最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。
2.=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式
...
源码中已经添加了中文相关注释,以便阅读和使用。
以下是源代码:
/*
* Copyright (C) 2013, 2014 Brett Wooldridge
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
...
在项目中使用Maven可以大大简化开发及构建的过程,但一旦产品线庞大,包含的项目及模块繁多时,各模块间版本管理就会产生不一致现象,从而给维护及开发带来了不少难题。
一般情况下我们采用 project -- modules形式聚合多个关联项目或模块,这样子模块就可以使用父工程中的相关配置。
一 父子工程配置
1.创建父工程(parent project)
1)首先利用开发工具eclipse创建父工程,在workspace中右键——>选择New——>选择project,在创建窗口中找到Mav ...
在某些涉及交易的系统中常常会用到不同币种,所以我总结了全球各国的货币编码为几种使用方式。
1.数据库形式
数据库形式可以在系统初始化时加载,也可以加载到缓存中使用,这种方式比较灵活,可以与其他表结合使用,如:order,pay等,结构如图:
建表语句为:
CREATE TABLE `currency` (
`CURRENCY_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`CURRENCY_CODE` varchar(8) NOT NULL C ...
再也不用为英文命名烦恼了。
英文
缩写
AbbreviateAbbreviation
ABRV
Academic
ACAD
AcceptAcceptanceAccepted
ACPT
Access
ACCS
Accident
ACDNT
AccomplishAccomplishmentAccomplishments
ACMP
Account*
ACCT*
Accounting*
ACCTG*
Accounts PayableAdvanced Placement
AP
Accounts Rece ...
Java并发之Executor
- 博客分类:
- 我所了解的Java
在很多系统中都会出现以下这种情况:某些对象或资源不得不频繁的去创建和使用,而这些对象和资源一般都是一次性的,也就是使用完就只能等待垃圾收集器的清理。等到下一次使用时又会往复这样的过程,一旦这 ...
在传统的多线程实现方式中(继承Thread和实现Runnable)无法直接获取线程执行的返回结果,如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。
从Java 1.5开始,java.util.concurrent包中提供了 Callable和 Future两个接口,通过它们就可以在任务执行完毕之后得到任务执行结果。
一、Callable
返回可能抛出异常的任务的结果。实现者定义了一个不带任何参数的叫做 call 的方法。
1.Callable ...
Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器。而且优化后的Tomcat性能提升显著,本文从以下几方面进行分析优化。
一、内存优化
默认情况下Tomcat的相关内存 ...
上一篇我们已经学习过了 ArrayBlockingQueue的知识及相关方法的使用,这一篇我们就来再学习一下ArrayBlockingQueue的亲戚 LinkedBlockingQueue。在集合类中 ArrayList与 LinkedList会常常拿来比较,ArrayList内部实现是基于数组的,而 LinkedList内部实现是基于链表,所以他们之间会有很多不同,但是本文不会去重点讨论,感兴趣的朋友可以参考我之前发过的几篇文章,那么有请本节的主角 LinkedBlockingQueue!
LinkedBlockingQueue
Lin ...
ArrayBlockingQueue是一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部是在队列中存在时间最长的元素。队列的尾部是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列获取操作则是从队列头部开始获得元素。
ArrayBlockingQueue继承自 AbstractQueue并实现 BlockingQueue接口。
ArrayBlockingQueue是一个典型的“有界缓存区”,固定大小的数组在其中保持生产者插入的元素和使用者提取的元素。一旦创建了这样的缓存区,就不能再增加其 ...
一、Queue
Queue是队列接口是 Collection的子接口。除了基本的 Collection操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或 false,具体取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数实现中,插入操作不会失败。
抛出异常
返回特殊值
插入
add(e)
offer(e)
移除
remove(e)
poll(e)
检查
element()
peek()
...
java.util.concurrent.locks包为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。该框架允许更灵活地使用锁和条件,但以更难用的语法为代价。
Lock 接口支持那些语义不同(重入、公平等)的锁规则,可以在非阻塞式结构的上下文(包括 hand-over-hand 和锁重排算法)中使用这些规则。主要的实现是 ReentrantLock。
ReadWriteLock 接口以类似方式定义了一些读取者可以共享而写入者独占的锁。此包只提供了一个实现,即 ReentrantReadWriteLock,因为它适用于大部 ...
java.util.concurrent.locks包为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。该框架允许更灵活地使用锁和条件,但以更难用的语法为代价。
Lock 接口支持那些语义不同(重入、公平等)的锁规则,可以在非阻塞式结构的上下文(包括 hand-over-hand 和锁重排算法)中使用这些规则。主要的实现是 ReentrantLock。
ReadWriteLock 接口以类似方式定义了一些读取者可以共享而写入者独占的锁。此包只提供了一个实现,即 ReentrantReadWriteLock,因为它适用于大部 ...