java
yixiao3660
这个作者很懒,什么都没留下…
展开
-
Quartz
什么是Quartzublic void execute(JobExecutionContext context) throws JobExecutionExceptio在Job接口实现类里面,添加需要的逻辑到execute()方法中。配置好Job实现类并设定好调度时间表,Quartz就会自动在设定的时间调度作业执行execute()。整合了Quartz的应用程序可以重用不同转载 2017-09-06 19:07:54 · 408 阅读 · 0 评论 -
Java后台-面试问题汇总:历时20天,主流互联网公司面试经历
本人Java开发,3年经验,7月初来到帝都,开启面试经历,前后20天左右,主面互联网公司,一二线大公司或者是融资中的创业公司都面试过,拿了一些offer,最后综合决定还是去360了。 不同面试官面试风格一定不同,我这里就是总结这些天面试Java开发过程中的大多数问题,综合分类有Java基础,框架,多线程,网络通信,Linux,数据库,设计模式,算法,缓存等几个模块,由于问题太多,下面先列出问题转载 2017-01-05 22:05:07 · 322 阅读 · 0 评论 -
java中Executor、ExecutorService、ThreadPoolExecutor介绍
1.Excutor 源码非常简单,只有一个execute(Runnable command)回调接口 public interface Executor { /** * Executes the given command at some time in the future. The command * may execute in转载 2016-05-23 17:40:54 · 894 阅读 · 0 评论 -
对Thread.interrupt()方法很详细的介绍
在JDK1.0中,可以用stop方法来终止,但是现在这种方法已经被禁用了,改用interrupt方法。Thread.interrupt()方法不会中断一个正在运行的线程。它的作用是,在线程受到阻塞时抛出一个中断信号,这样线程就得以退出阻塞的状态。更确切的说,如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞,那么,它将接收到一个中断异常(I转载 2016-05-23 16:27:37 · 284 阅读 · 0 评论 -
lockInterruptibly 和lock的区别
lockInterruptibly 与 lock比较区别在于 lockInterruptibly 优先考虑响应中断,而不是响应锁定的普通获取或重入获取 Java代码 package test; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lo转载 2016-05-23 00:34:17 · 341 阅读 · 0 评论 -
Java开发岗位面试题
一、Java基础String类为什么是final的。HashMap的源码,实现原理,底层结构。说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。描述一下ArrayList和LinkedList各自实现和区别Java中的队列都有哪些,有什么区别。反射中,Class.forName和classl转载 2017-01-05 22:11:36 · 467 阅读 · 0 评论 -
java垃圾回收
JVM垃圾处理方法(标记清除、复制、标记整理)标记-清除算法标记阶段:先通过根节点,标记所有从根节点开始的对象,未被标记的为垃圾对象 清除阶段:清除所有未被标记的对象复制算法将原有的内存空间分为两块,每次只使用其中一块,在垃圾回收时,将正在使用的内存中的存活对象复制到未使用的内存块中,然后清除正在使用的内存块中的所有对象。标记-整理标记阶段:先通转载 2017-01-05 22:12:50 · 291 阅读 · 0 评论 -
quartz详解1:初步了解quartz
http://blog.itpub.net/11627468/viewspace-1763389/一、引入 你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用Java编程吗?如果这些问题中任何一个你回答转载 2017-09-06 19:07:06 · 310 阅读 · 0 评论 -
quartz详解2:quartz由浅入深
一、quartz核心概念 先来看一张图: scheduler任务调度器trigger触发器,用于定义任务调度时间规则job任务,即被调度的任务misfire错过的,指本来应该被执行但实际没有被执行的任务调度转载 2017-09-06 19:06:09 · 286 阅读 · 0 评论 -
Disruptor 极速体验
已经不记得最早接触到 Disruptor 是什么时候了,只记得发现它的时候它是以具有闪电般的速度被介绍的。于是在脑子里, Disruptor 和“闪电”一词关联了起来,然而却一直没有时间去探究一下。最近正在进行一项对性能有很高要求的产品项目的研究,自然想起了闪电般的 Disruptor ,这必有它的用武之地,于是进行了一番探查,将成果和体会记录在案。一、什么是 Disruptor转载 2017-09-06 17:02:25 · 240 阅读 · 0 评论 -
Android权限Uri.parse的几种用法
1,调web浏览器 Uri myBlogUri = Uri.parse("http://xxxxx.com"); returnIt = new Intent(Intent.ACTION_VIEW, myBlogUri); 2,地图 Uri mapUri = Uri.parse("geo:38.899533,-77.036476"); returnIt = new Intent(转载 2017-02-09 22:12:24 · 462 阅读 · 0 评论 -
Java关键字final、static使用总结
一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final成员变量表示常量,只能被赋值一次,赋值后值不再改变。转载 2017-01-05 22:36:49 · 269 阅读 · 0 评论 -
简述spring 的事务传播行为和 隔离级别
spring 的事务传播行为: Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播: PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。 PROPAGATION_SUPPORTS:支持当前事转载 2017-01-05 22:35:31 · 272 阅读 · 0 评论 -
java垃圾收集描述
Java的垃圾收集机制主要针对新生代和老年代的内存进行回收,不同的垃圾收集算法针对不同的区域。所以java的垃圾收集算法使用的是分代回收。一般java的对象首先进入新生代的Eden区域,当进行GC的时候会回收新生代的区域,新生代一般采用复制收集算法,将活着的对象复制到survivor区域中,如果survivor区域装在不下,就查看老年代是否有足够的空间装下新生代中的对象,如果能装下就装下,否则老年转载 2017-01-05 22:34:10 · 426 阅读 · 0 评论 -
spring的事务管理有几种方式实现,如何实现
Spring+Hibernate的实质: 就是把Hibernate用到的数据源Datasource,Hibernate的SessionFactory实例,事务管理器HibernateTransactionManager,都交给Spring管理。那么再没整合之前Hibernate是如何实现事务管理的呢? 通过ServletFilter实现数据库事务的管理,这样就避免了在数据库操作中每转载 2017-01-05 22:28:25 · 444 阅读 · 0 评论 -
Java中的NIO,BIO,AIO定义
BIO同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。NIO同步非阻塞,服务器实现模式为一个请求转载 2017-01-05 22:14:50 · 325 阅读 · 0 评论 -
线程池
什么是线程池?如果让你设计一个动态大小的线程池,如何设计,应该有哪些方法? 什么是线程池线程池顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。设计一个动态大小的线程池,如何设计,应该有哪些方法 一个线程池包括以下四个基本组成部分:线程管理器(Thr转载 2017-01-05 22:14:06 · 224 阅读 · 0 评论 -
多线程实现方式---实现Runnable接口
多线程实现方式---实现Runnable接口一个类如果需要具备多线程的能力,也可以通过实现java.lang.Runnable接口进行实现。按照Java语言的语法,一个类可以实现任意多个接口,所以该种实现方式在实际实现时的通用性要比前面介绍的方式好一些。 使用实现Runnable接口实现多线程的示例代码如下: /**转载 2016-05-21 17:23:11 · 547 阅读 · 0 评论 -
JAVA 学习之implements的用法
mplements 也是实现父类和子类之间继承关系的关键字,如类 A 继承 类 B 写成 class A implements B{}. 这是百度百科上的解释: implements是一个类实现一个接口用的 关键字 ,他是用来实现接口中定义的抽象方法。比如:people是一个接口,他里面有say这个方法。public interface people(){ pu转载 2016-05-21 16:58:09 · 2901 阅读 · 0 评论 -
JAVA并发编程学习笔记之CLH队列锁
NUMA与SMPSMP(Symmetric Multi-Processor),即对称多处理器结构,指服务器中多个CPU对称工作,每个CPU访问内存地址所需时间相同。其主要特征是共享,包含对CPU,内存,I/O等进行共享。SMP的优点是能够保证内存一致性,缺点是这些共享的资源很可能成为性能瓶颈,随着CPU数量的增加,每个CPU都要访问相同的内存资源,可能导致内存访问冲突,可能会导致CPU资源的浪转载 2016-05-21 15:30:24 · 213 阅读 · 0 评论 -
另一种遍历Map的方式: Map.Entry 和 Map.entrySet()
[转]另一种遍历Map的方式: Map.Entry 和 Map.entrySet() (2013-06-09 10:46:55)转载▼ 分类: Java源网址: http://blog.csdn.net/mageshuai/article/details/3523116 今天看Think in java转载 2016-05-21 10:22:08 · 231 阅读 · 0 评论 -
C++ Java要点记录
简介依然记得当初学习C++的理想----开发游戏外挂,记得在大学开发的第一款游戏外挂是连连看,读取地址数据,然后算法匹配,模拟单击事件,当时被许多同学羡慕嫉妒。JAVA开发是2012年3月份开始开发Android后专注的,Java的学习是在大学完成的,当时JAVA考试95分满以为Java没啥难的,后来从事android开发发现自己对java的理解不深。内容J转载 2016-04-25 09:08:56 · 230 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别??
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常转载 2016-05-19 19:29:37 · 161 阅读 · 0 评论 -
C3p0源码探索(一)之配置篇
C3p0源码探索(一)之配置篇所需文件:1、 c3p0-0.9.1.2.jar http://sourceforge.net/projects/c3p0/2、 mysql.jar http://dev.mysql.com/downloads/connector/j/5.0.html3、 c3p0-0.9.1.2http://nchc.dl.sourcef转载 2016-05-19 00:59:33 · 317 阅读 · 0 评论 -
Java中Properties类的使用
知识学而不用,就等于没用,到真正用到的时候还得重新再学。最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于 Java已经好久没用了,而这些模拟器大多用Java来写,外加一些脚本语言Python,Perl之类的,不得已,又得重新拾起。本文通过看《Java编程思想》和一些网友的博客总结而来,只为简单介绍Properties类的相关操作。一、Java Pro转载 2016-05-19 00:55:55 · 212 阅读 · 0 评论 -
java中Map,List与Set的区别
Set,List,Map的区别java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存转载 2016-05-17 11:56:43 · 158 阅读 · 0 评论 -
Java中Map的用法详解
Map简介将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。 Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如转载 2016-05-17 11:10:45 · 296 阅读 · 0 评论 -
int与Integer的区别
int 是基本数据类型Integer是其包装类,注意是一个类。为什么要提供包装类呢???一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。比如,现在int要转为Stringint a=0;String result=Integer.toString(a);在java中包装类,比较多的用途是用在于各种数据类型的转化中。我写几个demo//通过包装类来实现转载 2016-05-28 14:53:18 · 195 阅读 · 0 评论 -
HashMap与ConcurrentHashMap的区别
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable转载 2016-05-25 20:06:59 · 202 阅读 · 0 评论 -
一个故事讲清楚NIO
假设某银行只有10个职员。该银行的业务流程分为以下4个步骤:1) 顾客填申请表(5分钟);2) 职员审核(1分钟);3) 职员叫保安去金库取钱(3分钟);4) 职员打印票据,并将钱和票据返回给顾客(1分钟)。 我们看看银行不同的工作方式对其工作效率到底有何影响。1 BIO方式 每来一个顾客,马上由一位职员来接待处理,并且这个职员需要负责以上4个完整流程。当超过10个转载 2016-05-24 19:03:09 · 199 阅读 · 0 评论 -
HashMap遍历的两种方式,推荐使用entrySet()
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object转载 2016-05-21 10:48:43 · 211 阅读 · 0 评论 -
JAVA并发编程学习笔记之ReentrantLock
ReentrantLock是一个可重入的互斥锁,ReentrantLock由最近成功获取锁,还没有释放的线程所拥有,当锁被另一个线程拥有时,调用lock的线程可以成功获取锁。如果锁已经被当前线程拥有,当前线程会立即返回。此类的构造方法提供一个可选的公平参数[html] view plain copy print?public Reentran转载 2016-05-21 15:19:44 · 195 阅读 · 0 评论 -
JAVA并发编程学习笔记之Unsafe类
java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应。2、可以定位对象某字段的内存位置,也可以修改对象的转载 2016-05-21 15:29:31 · 197 阅读 · 0 评论 -
JAVA并发编程学习笔记之MCS队列锁
简介与CLH类似,MCS也是由QNode对象构成的链表,每个QNode表示一个锁持有者,表示一个线程要么已经获取锁,要么正在等待锁。它与CLH不同的是,队列是一个显示链表,是通过next指针串起来的。实现MCS队列锁的具体实现如下:1、如图(a)所示,队列初始化时没有结点,tail=null;2、如图(b)所示,线程A想要获取锁,于是将自转载 2016-05-21 15:28:57 · 387 阅读 · 0 评论 -
JAVA并发编程学习笔记之AQS简介
1、引言JAVA内置的锁(使用同步方法和同步块)一直以来备受关注,其优势是可以花最小的空间开销创建锁(因为每个JAVA对象或者类都可以作为锁使用)和最少的时间开销获得锁(单线程可以在最短时间内获得锁)。线程同步越来越多地被用在多处理器上,特别是在高并发的情况下,然而,JVM内置锁表现一般,而且不支持任何公平策略。从JAVA 5开始在java.util.concurrent包中引入了有别于S转载 2016-05-21 15:27:14 · 217 阅读 · 0 评论 -
JAVA并发编程学习笔记之synchronized
监视器java中同步是通过监视器模型来实现的,JAVA中的监视器实际是一个代码块,这段代码块同一时刻只允许被一个线程执行。线程要想执行这段代码块的唯一方式是获得监视器。监视器有两种同步方式:互斥与协作。多线程环境下线程之间如果需要共享数据,需要解决互斥访问数据的问题,监视器可以确保监视器上的数据在同一时刻只会有一个线程在访问。什么时候需要协作?比如:一个线程向缓冲区写数据,另一个线转载 2016-05-21 15:26:47 · 235 阅读 · 0 评论 -
JAVA并发编程学习笔记之AQS源码分析(获取与释放)
同步状态AQS采用的是CLH队列,CLH队列是由一个一个结点构成的,前面提到结点中有一个状态位,这个状态位与线程状态密切相关,这个状态位(waitStatus)是一个32位的整型常量,它的取值如下:[java] view plain copy print?static final int CANCELLED = 1; stat转载 2016-05-21 15:26:09 · 338 阅读 · 0 评论 -
JAVA并发编程学习笔记之AQS源码分析(共享与互斥)
共享模式与独占模式AQL的内部队列采用的是CLH队列锁模型,CLH队列是由一个一个结点(Node)构成的。Node类中有两个常量SHARE和EXCLUSIVE,顾名思义这两个常量用于表示这个结点支持共享模式还是独占模式,共享模式指的是允许多个线程获取同一个锁而且可能获取成功,独占模式指的是一个锁如果被一个线程持有,其他线程必须等待。多个线程读取一个文件可以采用共享模式,而当有一个线程在写文转载 2016-05-21 15:25:41 · 469 阅读 · 0 评论 -
JAVA并发编程学习笔记之AQS源码分析(超时、中断与其他)
中断JAVA中并没有好的中断线程的方式,早期引入的Thead.stop()和Thread.resume()容易导致死锁(参考:http://docs.oracle.com/javase/6/docs/technotes/guides/concurrency/threadPrimitiveDeprecation.html),已经不推荐使用。JAVA线程提供了协作式中断,何为协作是中断转载 2016-05-21 15:23:01 · 184 阅读 · 0 评论 -
Tomcat学习之Context
context一个context代表一个web应用,它运行在特定的虚拟主机中,每个web应用要么是一个war文件,要么是一个符合规范的目录。一般HTTP请求路径中带有requestURI,我们可以从requestURI中获取上下文路径,根据上下文路径可以选择适合的web应用程序来处理这个请求。你还可以定义多个context,但每个context的名称必须唯一。context一般会出转载 2016-05-21 15:22:26 · 270 阅读 · 0 评论