java
文章平均质量分 81
小雄哥
勿忘心安
展开
-
Java项目依赖各jar包的作用和解释
IKIKAnalyzer3.2.8.jar // 分词器ant-junit4.jar // ant junitantlr-2.7.6.jar //没有此包,hibernate不会执行hql语句。并且会报NoClassDefFoundError:antlr/ANTLRException错误aopalliance-1.0.jar //这个包是AOP联盟的API包,里面包含了针对面向切面的接转载 2015-09-14 16:33:11 · 6046 阅读 · 0 评论 -
Java并发编程:线程池的使用和源码解读[ThreadPoolExecutor]
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任原创 2016-08-16 16:53:06 · 1254 阅读 · 0 评论 -
Java的元组类型整理
// 1元组 Unit u = new Unit("xo"); // 2元组 Pair p = Pair.with("xo", 1217); // 3元组 Triplet triplet = Triplet.with("xo", 1217, 1.0); //... KeyValue kv = KeyValue.with("xo", "1217")原创 2017-09-12 14:47:27 · 6574 阅读 · 0 评论 -
线程池整理
basicJava里的是线程(不是进程),Java线程直接映射到操作系统的线程,1:1的关系。会受到操作系统的线程调度、线程数量限制的影响为什么用线程池:线程的创建和销毁开销非常高(时间、内存)线程池越大越好?线程消耗系统资源,尤其是内存,如果有大量闲置线程会占用很多内存;而且还会竞争CPU时间当系统负载变高,程序仍然认为自己能处理,创建很多线程,结原创 2017-09-11 10:56:30 · 613 阅读 · 0 评论 -
guava 学习大纲
guava 学习大纲原创 2017-05-31 19:25:01 · 552 阅读 · 0 评论 -
Collections.sort() 排序算法 源码简介
Collections.sort()和排序算法简介原创 2017-05-23 12:01:21 · 3473 阅读 · 0 评论 -
HashMap对HashCode碰撞的处理
Java中HashMap是利用“拉链法”处理HashCode的碰撞问题。在调用HashMap的put方法或get方法时,都会首先调用hashcode方法,去查找相关的key,当有冲突时,再调用equals方法。hashMap基于hasing原理,我们通过put和get方法存取对象。当我们将键值对传递给put方法时,他调用键对象的hashCode()方法来计算hashCode,然后找到bucket(原创 2016-09-06 18:37:46 · 23833 阅读 · 1 评论 -
什么是HashTable?HashMap和HashTable的区别
HashTable是什么?哈希表(Hashtable)又称为“散置”,Hashtable是会根据索引键的哈希程序代码组织成的索引键(Key)和值(Value)配对的集合。Hashtable 对象是由包含集合中元素的哈希桶(Bucket)所组成的。而Bucket是Hashtable内元素的虚拟子群组,可以让大部分集合中的搜寻和获取工作更容易、更快速。HashMap是什么? 看另外一篇文章原创 2016-09-06 15:13:02 · 6100 阅读 · 0 评论 -
Java transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。这样当多个线程原创 2016-09-06 15:03:30 · 416 阅读 · 0 评论 -
Java synchronized详解
Java synchronized详解第一篇:使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。在程序中我们原创 2016-09-06 15:00:36 · 526 阅读 · 0 评论 -
Lock与synchronized 的区别
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在原创 2016-09-13 15:11:06 · 548 阅读 · 0 评论 -
JAVA语言工具类封装-基于poi的excel导出功能
excel导出基本上是必备的功能,如果条目超过65535 则考虑csv,小于不考虑。一句话使用:OrderInfoExcelBuilder.getInstance().createExcel(OrderType.MAIN_ORDER, orderInfoDetailList, response);结构比较简单,抽象类+子类实现。先看下抽象类:package com.qunar.原创 2016-08-31 19:00:05 · 3393 阅读 · 0 评论 -
精准的金额类
package com.qunar.flight.ib2b.trade.center.web.util;import java.io.IOException;import java.io.Serializable;import java.math.BigDecimal;import java.math.MathContext;import java.math.RoundingMode;原创 2016-03-15 15:02:12 · 944 阅读 · 0 评论 -
spring mvc 传中文 到controller层乱码的 解决方法
String sta =null; try { sta = new String(status.getBytes("iso-8859-1"),"utf-8"); } catch (UnsupportedEncodingException e) { }原创 2015-11-18 22:21:45 · 6575 阅读 · 1 评论 -
Java开发中的23种设计模式详解
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真转载 2017-11-28 09:55:09 · 747 阅读 · 0 评论