- 博客(61)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Java设计模式之单例模式-学习笔记2
两种方式实现Java设计模式之单例模式,单例在程序应用中是非常常见的一种设计模式之一,其思想和代码实现都非常的简单,单例单例顾名思义在程序运行的过程中只会产生一个实例,接下来看看代码的实现: Coding: public class Singleton { private static Singleton instance = null; private Sin...
2014-05-31 19:24:55 113
原创 Oracle数据库的SQL操作脚本
Oracle 数据SQL脚本学习 ----- 建表语句 create table student( sno varchar2(10) primary key, sname varchar2(20), sage number(2), ssex varchar2(5));create table teacher( t...
2014-05-31 17:41:28 277
原创 Oracle数据库的SQL操作脚本
te table teacher( tno varchar2(10) primary key, tname varchar2(20));create table course( cno varchar2(10), cname varchar2(20), tno varchar2(20), constraint pk_course primary key (cno,tno));create table sc( sno var
2014-05-31 17:41:28 99
原创 [hadoop][sqoop]导入大表的异常
用sqoop全量地往HDFS中导入一张大表,大概30G左右。运行的过程总是不成功,抓了日志分析,发现是sqoop运行时候抛出了MySQL的异常: java.sql.SQLException: Incorrect key file for table '/tmp/#sql_f27_0.MYI'; try to repair it 再分析,发现是sqoop解析SQL语句后,会组装出一条边界确...
2014-05-30 21:13:42 455
原创 [hadoop][sqoop]导入大表的异常
orrect key file for table '/tmp/#sql_f27_0.MYI'; try to repair it 再分析,发现是sqoop解析SQL语句后,会组装出一条边界确认的SQL脚本,类似这样的SELECT MIN(id), MAX(id) FROM (select id,xxoo from [big_table] a where (1 = 1) ) AS t1 这个脚本会把大表全部读取到MySQL服务器的内存中,再找出min(id)与max(id),所以服务器
2014-05-30 21:13:42 183
原创 String连接字符串一定比StringBuffer、StringBuilder慢吗?
本文标题没有实际含义,看看实例, (本文为转载 …………) String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的...
2014-05-30 13:33:05 450
原创 ConcurrentHashMap 的实现原理及与HashTable的比较
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益...
2014-05-28 22:50:08 148
原创 Java多线程- 一目了然线程的调度(合并Join)-学习笔记12
线程的合并的含义就是将几个并行线程的线程合并为一个单线程执行,应用场景是当一个线程必须等待另一个线程执行完毕才能执行时可以使用join方法。join为非静态方法,定义如下:void join(): 等待该线程终止。 void join(long millis): 等待该线程终止的时间最长为 millis 毫秒。 void join(long millis, int nanos)...
2014-05-27 22:42:04 149
原创 Java设计模式之责任链模式-学习笔记1
设计模式之责任链模式(Chain of Responsibility)是Web项目中最经常用到的一个设计模式,比如是Apache Tomcat 的对Encoding的 处理,Struts2 的拦截器, jsp servlet 的Filter 等等,都是基于责任链模式设计的。 下面直接来模拟WEB发送一个请求Request经过两个过滤链HTMLFilter过滤标签、SensitiveFi...
2014-05-24 23:15:34 114
原创 Java设计模式之责任链模式-学习笔记1
的Filter 等等,都是基于责任链模式设计的。 下面直接来模拟WEB发送一个请求Request经过两个过滤链HTMLFilter过滤标签、SensitiveFilter过滤敏感词汇,经过过滤之后返回一个Response对象 实例代码:public interface Filter { public void doFilter(Request req, Response rsp, FilterChain chain);}public class HTMLFilt
2014-05-24 23:15:34 74
原创 Condition线程通信-线程执行过程中进行条件切换-学习笔记11
Java5 中提过了Condition ,该类可以实现线程间的条件控制,废话少说直接来看一个实例。实例: 启动两根子线程,连同主线程一共3根线程,实现子线程1执行5次切换至子线程2执行5次,再切换至主线程执行5,然后切换至子线程1执行5次,如此往复3次,程序退出。 程序代码:import java.util.concurrent.locks.Condition;...
2014-05-24 19:38:11 145
原创 传统线程通信-线程执行过程中进行条件切换-学习笔记10
传统线程通讯执行过程中的通信是通过Object类的wait()、notify()、notifyAll()方法来实现的,下面我们通过一个案例来学习一下这些方法。 案例: 假设现在存在两个线程,主线程main与一个子线程,首先子线程执行5次,然后切换到主线程执行10次,再切换至子线程执行5次,主线程执行10次,如此各循环3次。 程序代码如下:/**...
2014-05-24 18:32:55 89
原创 Hadoop-Hive-Hbase-Sqoop相关技术分享
http://lvwenwen.iteye.com/blog/1781980 大家好!欢迎大家加入:(141570425)吖大哥QQ技术交流群,在这你可以将你的Hadoop领域的相关经验分享给大家,该群也会为大家免费分享很多关于Hadoop领域的技术文档、视频、资料及在线技术探讨会,期待你的加入!!! http://yunpan.cn/QipHycMQIwWIS 访...
2014-05-23 08:50:08 130
原创 Java多线程-ThreadLocal-学习笔记9
一、概述ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线...
2014-05-22 15:00:33 131
原创 Java多线程-ThreadLocal-学习笔记9
hreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。 从线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收(除非存在对这些副本的其他引用)。 通过ThreadLoc
2014-05-22 15:00:33 83
原创 Java多线程-并发协作(生产者消费者模型)-学习笔记8
对于多线程程序来说,不管任何编程语言,生产者和消费者模型都是最经典的。就像学习每一门编程语言一样,Hello World!都是最经典的例子。实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了,利用前面说过的堵塞栈实现该模式异常简洁。对于此模型,应该明确一下几点:1、生产者仅仅在仓储未满时候生产,仓满则停止生产。2、消费者仅仅在仓储有产品时候才能消费...
2014-05-22 10:34:04 116
原创 Java多线程-新特征-阻塞栈LinkedBlockingDeque-学习笔记7
对于阻塞栈,与阻塞队列相似。不同点在于栈是“后入先出”的结构,每次操作的是栈顶,而队列是“先进先出”的结构,每次操作的是队列头。这里要特别说明一点的是,阻塞栈是Java6的新特征。、Java为阻塞栈定义了接口:java.util.concurrent.BlockingDeque,其实现类也比较多,具体可以查看JavaAPI文档。下面看一个简单例子:/** * 阻塞栈 * * @...
2014-05-22 10:24:36 86
原创 Java多线程-新特征-阻塞队列ArrayBlockingQueue-学习笔记6
阻塞队列是Java5线程新特征中的内容,Java定义了阻塞队列的接口java.util.concurrent.BlockingQueue,阻塞队列的概念是,一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,直到有空位为止。同样,当队列为空时候,请求队列元素的操作同样会阻塞等待,直到有可用元素为止。有了这样的功能,就为多线程的排队等候的模型实现开辟了便捷通道,非常有用。java.ut...
2014-05-22 10:00:15 130
原创 Java多线程-新特征-阻塞队列ArrayBlockingQueue-学习笔记6
添加新元素的操作会被阻塞等待,直到有空位为止。同样,当队列为空时候,请求队列元素的操作同样会阻塞等待,直到有可用元素为止。有了这样的功能,就为多线程的排队等候的模型实现开辟了便捷通道,非常有用。java.util.concurrent.BlockingQueue继承了java.util.Queue接口,可以参看API文档。import java.util.concurrent.ArrayBlockingQueue;/** * 阻塞队列 * * @author 吖大哥 *
2014-05-22 10:00:15 103
原创 Java多线程-新特征-信号量Semaphore-学习笔记5
简介信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。概念Semaphore分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得。以一个停车场运作为例。为了简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆不受阻碍的进入,然后放下...
2014-05-22 09:31:53 104
原创 Java多线程-新特征-锁(下)-学习笔记4
在上文中提到了Lock接口以及对象,使用它,很优雅的控制了竞争资源的安全访问,但是这种锁不区分读写,称这种锁为普通锁。为了提高性能,Java提供了读写锁,在读的地方使用读锁,在写的地方使用写锁,灵活控制,在一定程度上提高了程序的执行效率。Java中读写锁有个接口java.util.concurrent.locks.ReadWriteLock,也有具体的实现ReentrantReadWriteL...
2014-05-21 21:09:20 91
原创 Java多线程-新特征-锁(上)-学习笔记3
在Java5中,专门提供了锁对象,利用锁可以方便的实现资源的封锁,用来控制对竞争资源并发访问的控制,这些内容主要集中在java.util.concurrent.locks 包下面,里面有三个重要的接口Condition、Lock、ReadWriteLock。Condition: Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同...
2014-05-21 20:55:06 82
原创 Java多线程-新特性-有返回值的线程-学习笔记2
在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写。或者干脆绕过这道坎,走别的路了。现在Java终于有可返回值的任务(也可以叫做线程)了。可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了...
2014-05-21 16:44:13 139
原创 Java多线程-新特性-线程池-学习笔记1
Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。大部分介绍线...
2014-05-21 16:00:17 114
如何获取mybatis 执行 的 sql
2016-07-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人