![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 84
yang7678287
无
展开
-
java 线程池原理
转载 Java线程池使用说明 一简介 线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。 二:线程池 线程转载 2015-07-23 17:15:29 · 229 阅读 · 0 评论 -
lucene删除与属性
回页首从索引中删除文档 类IndexReader负责从一个已经存在的索引中删除文档,如清单2所示。 清单2:从索引中删除文档 File indexDir = new File("C:\\luceneIndex");IndexReader ir = IndexReader.open(indexDir);ir.delete(1);ir.delete(new Term("path","C:转载 2016-03-09 15:31:27 · 359 阅读 · 0 评论 -
Java反射知识
Java语言允许通过程序化的方式间接对Class进行操作,Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数、属性和方法等。Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能,这就为使用程序化方式操作Class对象开辟了途径。 简单实例 我们将从一个简单例子转载 2016-02-22 16:37:42 · 225 阅读 · 0 评论 -
ThreadLocal在spring框架中的作用
我们知道Spring通过各种模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说它们不能在同一时刻被多个线程共享。虽然模板类通过资源池获取数据连接或会话,但资源池本身解决的是数据连接或会话的缓存问题转载 2016-02-22 15:46:29 · 1527 阅读 · 0 评论 -
Lucene 简介以及使用
Lucene 简介以及使用 Lucene,一个基于 Java 的开源的全文搜索工具包,可以方便的嵌入到各种应用系统中,实现针对应用的全文索引以及检索功能。目前是 Apache jakarta 项目组的一个子项目,它的目的是为程序员提供工具包,让程序员利用工具包里的强大接口来完成全文检索。下面我们将以 Lucene4.7 版本为例,为您详细讲解索引的创建、创建时的参数配置、Lucene4转载 2015-12-08 15:14:53 · 394 阅读 · 0 评论 -
blockingQueue队列
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。 认识BlockingQueue 阻塞队列,顾名思义,首先它是一个队列,而一个转载 2015-03-10 17:05:51 · 439 阅读 · 0 评论 -
spring cache 与redis缓存整合
spring cache,基本能够满足一般应用对缓存的需求,但现实总是很复杂,当你的用户量上去或者性能跟不上,总需要进行扩展,这个时候你或许对其提供的内存缓存不满意了,因为其不支持高可用性,也不具备持久化数据能力,这个时候,你就需要自定义你的缓存方案了,还好,spring 也想到了这一点。 本篇文章采用spring cache与redis进行整合,实现自己想要的缓存。 我们先配置redis:原创 2016-03-10 11:12:31 · 15720 阅读 · 2 评论 -
Spring cache 缓存
spring3.1上的版本可以使用spring注解缓存,配置非常简单: 在对应的spring配置xml文件中添加如下红色配置: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ss="http://ww原创 2015-12-03 14:34:17 · 803 阅读 · 0 评论 -
spring加载资源
spring中通过Resource去获取对应的资源,Resource继承了InputStreamSource,查看InputStreamSource源码发现只有一个InputStream getInputStream(),而Resource增加了 /** * Determine whether this resource actually exists in physical form.原创 2016-10-29 11:16:00 · 324 阅读 · 0 评论 -
内存溢出的几种可能
java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。 导致OutOfMemoryError异常的常见原因有以下几种: 内存中加载的数据量过于庞大,如一次从数据库取出过多数据;集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;代码中存在死循环或循环产生过多重复转载 2016-12-08 10:26:54 · 863 阅读 · 0 评论 -
注解(Annotation)自定义注解入门
元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@Retention, 3.@Documented, 4.@Inherited 这些类型和它们所支持的类在java.lang转载 2016-03-14 10:08:31 · 345 阅读 · 0 评论 -
自定义注解实例
1.定义一个全局注解: /** * 要求登录 * 要求登录注解 * */ @Target({ ElementType.METHOD, ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface NeedLogin { boolean value();原创 2016-03-14 13:44:30 · 313 阅读 · 0 评论 -
探索equals()和hashCode()方法
equals()和hashCode()区别? ------------------------------------------------- equals():反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。 hashCode():计算出对象实例的哈希码,并返回哈希码,又称为散列函数。根类Object的hashCode()方法的计算转载 2016-04-05 10:57:41 · 177 阅读 · 0 评论 -
BlockingQueue总结
在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。 使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了,它会对当前线程产生阻塞,比如一个线程转载 2016-03-22 15:33:46 · 643 阅读 · 0 评论 -
几种任务调度的 Java 实现方法与比较
前言 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现: Timer ScheduledExecutor 开源工具包 Quartz 开源工具包 JCronTab 此外,为结合实现复杂的任务调度,本文还将介绍 Calendar 的一些使用方法。 回页首 Timer 相信大家都已经转载 2016-03-22 11:27:50 · 372 阅读 · 1 评论 -
Executor框架与线程池
Executor框架简介 在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在java.util.cocurrent 包下,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。因此,在Java 5之后,通过Executor来启动线程比使用Thread的start方法更好,除了转载 2016-03-22 11:13:41 · 229 阅读 · 0 评论 -
synchronized与Lock
synchronized特性: a.采用synchronized修饰符实现的同步机制叫做互斥锁机制,它所获得的锁叫做互斥锁。每个对象的锁只能分配给一个线程,因此叫做互斥锁 b.类的每个实例都有自己的对象级别锁。当一个线程访问实例对象中的synchronized同步代码块或同步方法时,该线程便获取了该实例的对象级别锁,其他线程这时如果要访问synchronized同步代码块或同步方法,便需要原创 2016-03-22 10:38:59 · 816 阅读 · 0 评论 -
并发线程
1.实现多线程的两种方法:继承thread接口,实现Runnable接口 实现Runnable接口相比继承thread接口优势: a.可以避免由于Java的单继承特性而带来的局限; b.增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的; c.适合多个相同程序代码的线程区处理同一资源的情况。 实例代码:public class MyThread extend转载 2016-03-21 17:25:48 · 244 阅读 · 0 评论 -
java集合
java集合的主要分为三种类型: Set(集)List(列表)Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。 简转载 2016-03-14 17:52:34 · 255 阅读 · 0 评论 -
采用@Aspect进行拦截操作
第一步,在配置里面进行配置: <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns="http://www.springframework.org/schema/beans" xmlns:context=原创 2016-08-10 17:05:49 · 2742 阅读 · 0 评论 -
Java栈与堆
Java栈与堆 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告转载 2016-03-14 17:30:35 · 206 阅读 · 0 评论 -
java内存溢出分析工具:jmap使用实战
在一次解决系统tomcat老是内存撑到头,然后崩溃的问题时,使用到了jmap。 1 使用命令 在环境是linux+jdk1.5以上,这个工具是自带的,路径在JDK_HOME/bin/下 jmap -histo pid>a.log 2 输出结果摘要 Size Count Class description ----------------------------------转载 2016-12-08 10:27:42 · 1976 阅读 · 0 评论