自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (6)
  • 收藏
  • 关注

原创 LinkedHashMap 原理及用于缓存数据时LRU算法

基于 LinkedHashMap特性,可以实现出热点缓存的处理,保证固定数量缓存,LRU 最近最少使用算法。原因是当 LinkedHashMap 设置了accessOrder=true 时 调用put 和get时都会把当前数据放到末尾处。这样可以方便的实现旧数据的剔除。重写LinkedHashMap中的removeEldestEntry方法具体可参考上述博客 转自:https://blog.csd...

2018-04-10 14:18:44 347

原创 mysql插入时使用 INSERT ... ON DUPLICATE KEY UPDATE

项目中用到ON DUPLICATE KEY UPDATE  ,这样存在重复数据时可以执行更新语句具体用法不细说  主要有一点要注意 之前以为更新时会返回2,实际发现不一定的  执行update时 若更新的字段值没变,此时是不返回2的 。具体官方文档也给出描述了  重点红圈标出...

2018-04-04 16:44:23 409

原创 spring mybatis batch操作时关闭sqlsession

在利用mybatis 的sqlsession,批处理方式打开session,例如 public void batchdelete(Collection dataList, final SingleProcessor processor) { final SqlSession session = getGenericSqlSessionFactory().openSession(

2017-10-23 20:17:32 2636

原创 java 并发知识点收集

1.java 并发包 http://www.importnew.com/26461.html

2017-09-13 20:38:24 373

原创 spring cloud 学习笔记1-依赖包介绍

首先介绍下各个常用包依赖 后续补充: spring-cloud-starter-parent 具备spring-boot-starter-parent同样功能并附加Spring Cloud的依赖 spring-cloud-starter-config 默认的配置服务依赖,快速自动引入服务的方式,端口8888 spring-cloud-config-server/client 用户自定义配

2017-03-31 17:06:11 2635

原创 java 垃圾回收

本文基于Oracle hotspot jvm 1.GC:查找不再使用的对象,以及释放这些对象所管理的内存 2.算法:分代收集 Young:主要是用来存放新生的对象。 Old:主要存放应用程序中生命周期长的内存对象。 Permanent:是指内存的永久保存区域,主要存放Class和Meta的信息,Class在被 Load的时候被放入PermGen

2017-01-12 10:55:25 474

原创 spring 事务传播

在service中有两个方法 A和 B, A没有配置事务,B配事务, 若在A中调用B方法时,事务将不起作用,原因是因为spring的事务是基于AOP的方式,是代理类加的增强,Proxy.B,若在内部调用时则仅是直接调用B,事务将失效。 解决方法:1 将B移到另一个类中                  2 A调用B时不直接调用B,而是调用AOP代理类 的B方法

2016-11-02 15:07:06 403

转载 AbstractQueuedSynchronizer 中的condition原理

转自:http://www.importnew.com/9281.html 在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurrent包提供的一种独占锁的实现。它继承自Dong Lea的 AbstractQueuedSynchronizer(同步

2016-06-15 14:34:17 524

原创 随笔面试题

1.联合索引  比如创建联合索引e1,e3 触发联合索引是有条件的: 1、使用联合索引的全部索引键,可触发索引的使用。 例如:SELECT E.* FROM E WHERE E.e1=1 AND E.e3=2 2、使用联合索引的前缀部分索引键,如“key_part_1 常量”,可触发索引的使用。 例如:SELECT E.* FROM E WHERE E.e1=1 3、使用部分

2016-03-29 19:42:38 468

转载 Fork/Join框架

转自并发编程网:http://ifeve.com/talk-concurrency-forkjoin/ 1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任

2016-03-11 16:38:29 484

转载 ReentrantLock(重入锁)以及公平性

转自 并发编程网ReentrantLock(重入锁)以及公平性

2016-03-10 20:07:10 718

原创 spring 获得ApplicationContext

在spring mvc项目中,可以通过实现ApplicationContextAware 来获得ApplicationContext, public class ContextHolder implements ApplicationContextAware { private static ApplicationContext context;} 实现接口中方法

2016-03-08 19:56:36 508

转载 java semaphore 信号量,流控程序

信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。  Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。 import java.util.Date; import java.util.concurrent.ExecutorS

2016-02-02 11:10:35 1045

原创 fastjson 版本性能

项目中用到fastjson,在将json串转换成Javabean的时候版本差异对性能影响较大。 当json串大小比较小时差异不明显,但是项目中发现当json达到1M以上时1.1.15的版本性能很差,需要几十秒。而最新的版本1.2.7仅需要100ms左右。 List boss3DatePriceMQBeans =JSON.parseArray(json, Boss3DatePrice

2016-01-05 18:53:00 3499

原创 mybatis intercept

了解了下mybatis的拦截器: package com.tuniu.pcs.core.intercept; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.plugin.Interceptor;

2015-12-28 17:23:46 1161

原创 elasticsearch java client

elasticsearch java api 提供两个客户端类Node Client ,TransportClient Node node = nodeBuilder().clusterName("yourclustername").node(); Client client = node.client(); Node Client: 1.本身也是集群节点之

2015-12-21 10:48:36 1021

原创 elasticsearch java query API

下面介绍下几个常用的查询Api 首先: TermQueryBuilder这个用于正常的检索,但是对于String (分析的)字段不能,例如name:joy may; 如果该字段是analyzed ,则需要使用另外一个MatchQueryBuilder("filedName",value) 查询条件里嵌套的对象字段 NestedQueryBuilder("path",Quer

2015-12-02 17:14:36 1988

转载 java volatile

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。   volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java

2015-12-01 13:37:59 515

原创 spring data elastic search初识

首先pom文件里依赖: org.springframework.data spring-data-elasticsearch 1.1.3.RELEASE 配置elastic 定义的文档结构: @Document(indexName = "product-index",type = "PRODU

2015-11-30 14:18:45 5593 1

原创 active mq 生产

destination id="queueName" class="org.apache.activemq.command.ActiveMQQueue"> index="0" value="@{queue.name}" /> Spring jms template id="amqConnectionFactory" class="org.apache.activemq

2015-11-25 16:12:41 587

原创 active mq 消费

首先配置MQ connection  id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> name="brokerURL" value="failover://@{amq.address}?randomize=false&jms.useAsyn

2015-11-23 14:39:07 611

原创 mongodb java

获取client 默认连接本地 MongoClient mongoClient = new MongoClient(); 查看源码:this(defaultHost(), defaultPort()); 获取DB MongoDatabase db = mongoClient.getDatabase("pcs"); 连接collection 操作 插入 db.g

2015-11-04 23:40:55 408

原创 mongodb 性能测试

由于项目中考虑使用mongodb,遂作了一些调研 机器配置: 使用Java API 单线程循环操作: 数据结构是json结构: { "firstLevel": "hello world", "secondLevel": [ { "test1": }, { "test1": } ] }单条数据

2015-11-04 22:33:37 595

转载 Node.js学习笔记之三:事件_EventEmitter

events 模块只提供了一个对象: events.EventEmitter。EventEmitter 的核心就是事件触发与事件监听器功能的封装。   可以通过require("events");来访问该模块。var EventEmitter=require('events').EventEmitter; var event=new EventEmitter(); event.on('eve

2015-11-04 22:18:26 966

转载 Node.js学习笔记之三:事件

Node.js 事件循环 Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。 Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。 Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。 Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,

2015-11-02 15:56:27 709

原创 Mongodb 学习一

基本数据库操作 1.show  dbs 查看数据库 2.show collections 查看集合 3.use dbName 切换到指定的库 数据结构: {  "id":1,  "name":"eddy",  "age":26,  "address":       {       "street":"road21",       "province":"江苏"  

2015-10-24 14:35:39 420

原创 Node.js学习笔记之二:回调

回调是一个异步等效的功能。在完成特定任务回调函数被调用。 Node大量使用了回调。Node的所有的API都支持回调这样的一种方式。 //阻塞代码 创建一个txt文件。input.txt  Hello This is  learning node js input. Just so so !!!! 创建js文件代码如下 var fs=require("fs"); var data=f

2015-10-20 13:41:45 348

原创 Node.js学习笔记之一:入门

关于Node.js这里不再赘述,直接开始学习 第一步下载安装node.js  此处安装window版本 可以在命令行里查看版本 >node -v 编写第一个hello world 编写js文件helloworld.js,代码如下: var http = require('http'); http.createServer(function (req, res) { r

2015-10-16 13:20:42 457

原创 HashSet

HashSet源码: public class HashSetE> extends AbstractSetE> implements SetE>, Cloneable, java.io.Serializable { static final long serialVersionUID = -5024744406713321676L; private tran

2015-10-14 13:09:06 381

原创 HashMap

HashMap的存储结构是这样: 数组加链表的结构: 查看hashmap源码可以看到(jdk1.8) 采用数组+链表+红黑树的结构 首先有一个每个元素都是链表(可能表述不准确)的数组,当添加一个元素(key-value)时,就首先计算元素key的hash值,以此确定插入数组中的位置,但是可能存在同一hash值的元素已经被放在数组同一位置了,这时就添加到同一hash值的元素的后

2015-10-14 11:22:34 438

原创 JMS Topic 和queue 的区别

Topic和Queue的区别

2015-09-22 13:03:33 430

原创 Thread 和 Runable 区别

首先 Thread是类,Runable是接口。 一是写一个类继承自Thread类,然后重写里面的run方法,用start方法启动线程 二是写一个类实现Runnable接口,实现里面的run方法,用new Thread(Runnable target).start()方法来启动 查看源码可以发现 Thread也是实现的Runable public class Thread imple

2015-09-14 16:38:42 1624

转载 hadoop 数据倾斜

数据倾斜是数据中的常见情况。数据中不可避免地会出现离群值(outlier),并导致数据倾斜。这些离群值会显著地拖慢MapReduce的执行。常见的数据倾斜有以下几类: 数据频率倾斜——某一个区域的数据量要远远大于其他区域。数据大小倾斜——部分记录的大小远远大于平均值。 在map端和reduce端都有可能发生数据倾斜。在map端的数据倾斜会让多样化的数据集的处理效率更低。在reduce端

2015-09-14 13:56:10 1803

转载 jvm 学习

面试中被问道JVM,结果没能很好的回答清楚,这里再学习一遍,补充下。 下面是找到的一篇博客,讲述的比较详细: 一、java虚拟机的生命周期:   Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开

2015-09-09 15:56:49 1353 1

原创 spring boot 入门

首先第一步创建一个maven工程 springboot1 1.在pom文件里添加下面配置,依赖。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

2015-09-09 10:29:07 447

原创 Callable 和Future 接口使用

使用Callable和Future的组合,异步获取数据,Callable负责执行,Future获取执行结果 1:Callable和Future  ExecutorService executor = Executors.newCachedThreadPool(); Future future=executor.submit(new Callable(){ @Override

2015-09-08 17:58:53 485

原创 mapreduce的二次排序 SecondarySort

在看Hadoop The definitive guide 时,关于二次排序,在设置好setGroupingComparatorClass 后一直不明白为什么reduce的入参就是要查询的年最高温度,代码里没有看到是怎么实现的: 代码: // cc MaxTemperatureUsingSecondarySort Application to find the maxi

2015-09-08 15:27:50 545

转载 java Pattern和Matcher详解

看到了Pattern和Matcher的代码,找了篇博客学习一下 结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input)一种最基础最简单的匹配。 java正则表达式通过java.ut

2015-09-06 17:16:43 377

原创 spring mvc HandlerMethodReturnValueHandler

今天项目遇到一个问题:在controller里重定向,正常使用 return "redirect:/url".结果怎么都不可以,后来发现RequestMappingHandlerAdapter里的HandlerMethodReturnValueHandlerComposite 对象里的List returnValueHandlers  被通过配置封装去掉了ViewNameMethodReturnV

2015-05-16 15:05:58 1881

原创 Eclipse TestNG

1.安装TestNG 插件   在Eclipse Marketplace里安装插件,目前最新插件是6.9版本,要求的JDK是1.7,,否则会不能执行。 这里指定JDK, 2.编写测试代码:   此项目基于Spring 的maven工程:  @ContextConfiguration(locations = { "classpath*:config/spring/sprin

2015-05-12 16:19:07 638

高校科研管理系统课程设计

课程设计 简单的教务管理系统 实现登录输入输出 查询 导出到EXCEL报表 VB

2011-05-23

IDEA setting文件

idea setting 文件 直接导入使用就可以了

2015-09-01

araxis merge

一直用的这个工具,很好用, 自己可官网下载2013版,然后将该压缩包里的merge.exe 替换到安装路径下就好了。亲测可用

2015-06-08

spring data elasticsearch

spring data elasticsearch

2015-11-23

360安装文件

软件安装文件

2013-10-24

mongodb_java

java 操作 mongodb 测试

2015-11-02

空空如也

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

TA关注的人

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