![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 72
yang7678287
无
展开
-
blockingQueue队列
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个转载 2015-03-10 17:05:51 · 439 阅读 · 0 评论 -
BlockingQueue总结
在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。 使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了,它会对当前线程产生阻塞,比如一个线程转载 2016-03-22 15:33:46 · 643 阅读 · 0 评论 -
探索equals()和hashCode()方法
equals()和hashCode()区别?-------------------------------------------------equals():反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。hashCode():计算出对象实例的哈希码,并返回哈希码,又称为散列函数。根类Object的hashCode()方法的计算转载 2016-04-05 10:57:41 · 177 阅读 · 0 评论 -
java 线程池原理
转载Java线程池使用说明一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程转载 2015-07-23 17:15:29 · 229 阅读 · 0 评论 -
org.junit 注解
org.junit对应的@Before @BeforeClass @After @AfterClass注解使用@Test注解时,需要先初始化一个实例额,每次调用都是重新初始化一个实例;所以@BeforeClass,@AfterClass需要是static的方法,因为在初始化前,实例没有生成。@BeforeClass在整个类执行之前,且只执行一次;@AfterClass在原创 2016-10-14 17:51:43 · 899 阅读 · 0 评论 -
邮件的发送
import java.io.File;import java.io.UnsupportedEncodingException;import java.util.Date;import java.util.Enumeration;import java.util.List;import java.util.Properties;import java.util.Vector;imp原创 2016-08-11 17:49:03 · 265 阅读 · 0 评论 -
时间格式化
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import org.apache.commons.lang.time.DateForma原创 2016-08-23 15:09:55 · 104 阅读 · 0 评论 -
解析定时任务配置的时间
public class CronExpressionEx extends CronExpression { /** * serialVersionUID */ private static final long serialVersionUID = 5074132114460101284L; public static final Intege原创 2016-08-10 15:35:00 · 526 阅读 · 0 评论 -
使用POP3协议接收并解析电子邮件(全)
package org.yangxin.study.jm; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream转载 2016-08-02 11:55:23 · 4164 阅读 · 0 评论 -
httpclient客户端与服务端
本文偏重使用,简单讲述httpclient,其实在网络编程中,基于Java的实现几乎都是包装了socket的通信,然后来模拟各种各样的协议;httpclient其实就是模拟浏览器发起想服务器端的请求,而这种更加类似于JS的请求或页面的POST、GET,不过这种数据的返回一般需要得到有意义的数据,才方便做其他的交互,否则得到一个页面结果,全是标签了,毕竟不是浏览器,所以我们用httpclient更多转载 2016-07-21 17:20:43 · 4800 阅读 · 0 评论 -
日志查看
查看某段时间的日志:cat finance-one-batch.log |egrep '2016-08-11 18:[0-2][0-57]|2016-08-11 18:30'tail -n 10 test.log 查询日志尾部最后10行的日志;tail -n +10 test.log 查询10行之后的所有日志;head -n 10 test.l原创 2016-08-16 15:11:52 · 287 阅读 · 0 评论 -
几种任务调度的 Java 实现方法与比较
前言任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现:TimerScheduledExecutor开源工具包 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 评论 -
Lucene 简介以及使用
Lucene 简介以及使用Lucene,一个基于 Java 的开源的全文搜索工具包,可以方便的嵌入到各种应用系统中,实现针对应用的全文索引以及检索功能。目前是 Apache jakarta 项目组的一个子项目,它的目的是为程序员提供工具包,让程序员利用工具包里的强大接口来完成全文检索。下面我们将以 Lucene4.7 版本为例,为您详细讲解索引的创建、创建时的参数配置、Lucene4转载 2015-12-08 15:14:53 · 394 阅读 · 0 评论 -
ThreadLocal在spring框架中的作用
我们知道Spring通过各种模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说它们不能在同一时刻被多个线程共享。虽然模板类通过资源池获取数据连接或会话,但资源池本身解决的是数据连接或会话的缓存问题转载 2016-02-22 15:46:29 · 1527 阅读 · 0 评论 -
Java反射知识
Java语言允许通过程序化的方式间接对Class进行操作,Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数、属性和方法等。Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能,这就为使用程序化方式操作Class对象开辟了途径。 简单实例 我们将从一个简单例子转载 2016-02-22 16:37:42 · 225 阅读 · 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 评论 -
注解(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@Mappingpublic @interface NeedLogin { boolean value();原创 2016-03-14 13:44:30 · 313 阅读 · 0 评论 -
Java栈与堆
Java栈与堆 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告转载 2016-03-14 17:30:35 · 206 阅读 · 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集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。简转载 2016-03-14 17:52:34 · 255 阅读 · 0 评论 -
并发线程
1.实现多线程的两种方法:继承thread接口,实现Runnable接口实现Runnable接口相比继承thread接口优势:a.可以避免由于Java的单继承特性而带来的局限;b.增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;c.适合多个相同程序代码的线程区处理同一资源的情况。实例代码:public class MyThread extend转载 2016-03-21 17:25:48 · 244 阅读 · 0 评论 -
sftp文件的上传与下载
import java.io.File;import java.io.FileNotFoundException;import java.sql.SQLException;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.Enumeration;i原创 2016-08-04 16:26:37 · 2320 阅读 · 0 评论 -
文件zip压缩与解压
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipFi原创 2016-08-04 15:56:37 · 979 阅读 · 0 评论 -
spring4.0 websocket
1.实例化@Configuration@EnableWebSocket// 开启websocketpublic class SystemWebSocketConfig extends WebMvcConfigurerAdapter implements WebSocketConfigurer { @Override public void registerWebSocke原创 2015-11-04 10:57:31 · 376 阅读 · 0 评论 -
word 转html,pdf转图片
maven配置: org.apache.poi poi 3.9 org.apache.poi poi-ooxml fr.opensagres.xdocreport xdocreport 1.0.5 org.apache.xmlbeans xmlbeans org.apach原创 2015-08-03 10:52:03 · 589 阅读 · 0 评论 -
已文件流的形式把文件展示到页面
/** * 文件通过端 输出流 输出到客户 * * @param filePath 文件完全路径 /opt/xxx/xxx.doc * @param servletResponse controller 的 输出对象 * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ @Ov原创 2015-06-12 10:42:09 · 2333 阅读 · 0 评论 -
超轻量级缓存技术——EhCache
转载自 : 蒙奇D路飞1.技术背景: 系统缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能。缓存设想内存是有限的,缓存的时效性也是有限的,所以可以设定内存数量的大小可以执行失效算法,可以在内存满了的情况下,按照最少访问等算法将缓存直接移除或切换到硬盘上。 Ehc转载 2015-05-14 16:06:54 · 219 阅读 · 0 评论 -
文件上传
必须要有enctype="multipart/form-data",另外,如果想要支持ie8上传的话,只能使用file类型,可以通过浮层,使用css修改对应样式js:$("#submitForm").on('change',function(){ $.ajaxFileUpload({url : base+"/baseInfo/ajax/toPage.htm",原创 2015-02-11 13:45:20 · 233 阅读 · 0 评论 -
js 定时处理
var timer;//点击某个点击事件,定时操作开始$(".iconqrA").on("click",function(){ setIntervalIndex();//定时操作开始 $.ajax({url : base+"/enterUser/ajax/createQrcode.htm",data : {userName:userName},原创 2015-02-11 10:58:38 · 214 阅读 · 0 评论 -
创建maven工程
如何用Maven创建web项目(具体步骤)分类: maven2014-06-06 14:07 9085人阅读 评论(2) 收藏 举报mavenwebjava目录(?)[+]使用eclipse插件创建一个web project首先创建一个Maven的Project如下图 我们勾选上Create转载 2014-10-11 18:07:13 · 383 阅读 · 0 评论 -
hs编码查询
在java中想要实现原创 2014-06-16 13:55:22 · 912 阅读 · 0 评论 -
汉字转为拼音
转载 2014-06-25 09:59:33 · 237 阅读 · 0 评论 -
图片生成缩略图
原创 2014-05-22 13:47:14 · 269 阅读 · 0 评论 -
freemarker 语法详解
1 截取字符串有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的例子就可以自定义显示的长度 ${title.content?default("")} ${title.content[0..3]?default("")}...意思就是如果这个字符串的长度小于8,那么就正常显示,反之则取4位注意:转载 2015-12-10 16:08:42 · 604 阅读 · 0 评论 -
文件的上传,下载,预览
文件上传需要用到:ajaxfileupload.js上传前台:jsp 上传offer浏览 上传文件支持格式:*.xls,*.xlsx,*.doc,*.docx,*.pdf.上传文件大小不能超过10Mjs: //文件上传$(".myModalupl-form-upload").on('change', fu原创 2015-05-21 16:49:45 · 924 阅读 · 0 评论 -
生成excel文件
使用ireport工具SupplierCountController /** * 下载 * * @param servletResponse * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ @SuppressWarnings({ "unchecked", "rawtypes原创 2015-12-01 15:01:03 · 306 阅读 · 0 评论 -
在java中启动sh脚本
1.先在对应目录下创建一个sh的脚本文件:可以进入linux,输入 nano test.sh 会在当前目录下生成一个test.sh文件可以在该文件中写入shell脚本的内容,如:#!/bin/shecho 'Hello World!'然后ctrl+x 选择Y 保存文件。2.chmod 777 test.sh给该文件赋予操作权利3../test原创 2016-06-13 17:11:30 · 2832 阅读 · 1 评论