
java
文章平均质量分 55
enjoyinwind
这个作者很懒,什么都没留下…
展开
-
LockSupport的park与unpark调用顺序验证
1.unpark在thread start之前调用 public static void main(String[] args) throws InterruptedException{ Thread thread1 = new Thread(new Runnable() { @Override public void run() { System.out.println("thread1 start原创 2020-05-28 19:13:51 · 951 阅读 · 0 评论 -
tomcat outofmemory:permgen space解决方案
linux机器下更改catalina.sh文件,在红色位置加上红色部分,意思是将JVM方法区的大小设置为128M,最大256M。# ----- Execute The Requested Command -----------------------------------------# Bugzilla 37848: only output this if we have a TTY原创 2012-11-05 16:35:37 · 1408 阅读 · 0 评论 -
java中的转义字符
java中的转义字符有四种:JAVA中转义字符:1.八进制转义序列: + 1到3位5数字;范围'00'~'377':空字符2.Unicode转义字符:u + 四个十六进制数字;0~65535u0000:空字符3.特殊字符:就3个":双引号':单引号\:反斜线4.控制字符:5个r 回车n 换行f 走纸换页t 横向跳格b 退格 使用这原创 2012-11-14 10:10:13 · 1809 阅读 · 0 评论 -
lucene4.0结合IK Analyzer分词器的简单示例
IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简原创 2012-12-10 15:23:10 · 13460 阅读 · 4 评论 -
lucene4.0各内置分析器的使用及比较
最近看lucene,觉得书上的例子很好懂,代码也容易理解,可是从官网上下的lucene4.0,跟以前的版本还是有些出入。package org.apache.lucene.demo;import java.io.IOException;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.an原创 2012-12-10 13:55:36 · 5555 阅读 · 1 评论 -
lucene自定义排序例子
本人主要是参考lucene实战一书,不过中文版上总是发现一些错误,导致程序并没有给出想要的结果,还是要看api文档。lucene3.X实现自定义排序,主要是实现继承FieldComparatorSource抽象类的子类和继承FieldComparator的子类。1.继承FieldComparatorSource,必须实现抽象方法newComparator。2.继承FieldCompar原创 2012-12-14 13:34:30 · 5447 阅读 · 0 评论 -
异常:java.lang.IllegalStateException: Cannot deactivate transaction synchronization - not active
使用spring在应用开发中出现如下异常:java.lang.IllegalStateException: Cannot deactivate transaction synchronization - not active at org.springframework.transaction.support.TransactionSynchronizationManager原创 2012-12-28 14:12:02 · 9883 阅读 · 1 评论 -
字符编码GBK,UTF-8
GBK是汉字编码标准之一,全称《汉字内码扩展规范》。GBK编码,是在GB2312-80标准基础上的内码扩展规范,使用了双字节编码方案,其编码范围从8140至FEFE(剔除xx7F),共23940个码位,共收录了21003个汉字,完全兼容GB2312标准。英文占一字节,中文2字节。比如传奇世界2的编码为(16进制):b4 ab(传) c6 e6(奇) ca c0(世) bd e7(界) 32原创 2013-10-11 12:08:19 · 1030 阅读 · 0 评论 -
ConcurrentHashMap为什么支持完全并发的读
ps:Hashtable原创 2014-11-15 19:49:11 · 8210 阅读 · 0 评论 -
java jdk动态代理
jdk动态代理要对一个类进行代理,被代理的类必须实现至少一个接口,并且只有接口中的方法才能被代理。jdk实现动态代理一般分为三步:1. 编写接口和实现类。2. 写一个处理器,该处理器实现InvocationHandler接口,该接口只有一个方法,其签名为public Object invoke(Object proxy, Method method, Object[] args)t原创 2012-09-03 17:57:37 · 760 阅读 · 0 评论 -
ReentrantLock实现探究
默认使用非公平锁;可通过构造参数指定使用公平锁还是非公平锁;公平锁:尝试获取锁时总是会先判断当前队列里是否还有其他线程再等待该锁,如果没有才会尝试获取锁;非公平锁:会先尝试自己获取锁,不管队列里是否有其他线程在等待该锁,获取成功则返回,失败则加入等待队列末尾,此时会按照FIFO的方式获取锁;线程等待队列:使用链表数据结构,添加新线程使用CAS算法,头尾成员使用volatile关原创 2016-05-05 17:09:47 · 511 阅读 · 0 评论 -
java.lang.InterruptedException
线程的interrupt()调用不管是在该线程的阻塞方法调用前或调用后,都会导致该线程抛出InterruptedException;(1)interrupt调用在阻塞方法调用前;public class InterruptTest { public static class TestThread extends Thread{ public volatile boolean go =原创 2016-06-17 19:05:35 · 26731 阅读 · 0 评论 -
Unsafe初体验
Unsafe实例获取Unsafe实例获取方法getUnsafe() , 返回值是Unsafe的实例。但如果直接调用会抛: Exception in thread "main" java.lang.SecurityException: Unsafe。 其安全校验代码如下:public static Unsafe getUnsafe() { Class var0 = Refl...原创 2018-11-11 20:18:13 · 284 阅读 · 0 评论 -
java findLoadedClass实践
实验Bar1.javapackage com.external;public class Bar1 { public Bar1(){ Bar2 bar2 = new Bar2(); bar2.test(); }}Bar2.javapackage com.external;public class Bar2 { publ...原创 2018-11-17 19:16:26 · 3211 阅读 · 2 评论 -
java8方法引用:特定类的任意对象的方法引用
在使用特定类的任意对象的方法引用时,总是莫名其妙报错:non-static method can not referenced from a static context。解决方案:其实是类型匹配不正确,修改类型后不再报错;public class StreamTest { public static void main(String[] args){ Strea...原创 2019-01-22 21:41:27 · 2327 阅读 · 0 评论 -
tomcat6容器中的Servlet的工作模式解析
Servlet的工作模式:HTTP请求交给Servlet容器时,依次触发Engine、Host、Context的管道,管道元素的invoke方法被调用。Servlet在tomcat中有两种工作方式,一种是单线程模型,即某一时刻一个Servlet实例的service方法只能被一个线程调用,这种模式下,tomcat会为每一servlet类创建一个实例池,有请求过来时都从该实例池中取一个实例来进行处原创 2012-09-15 22:10:38 · 1953 阅读 · 0 评论 -
tomcat出现乱码问题
我在页面中将编码已经设置为utf-8,但是提交到tomcat后,本地正常,我已经将设置了过滤器将编码解析成utf-8,但是在服务上运行得到的却是乱码?解决方法:查阅了很多资料,发现页面默认是按get方式提交form,用过滤器不会按utf-8进行解析,将页面的form提交方式改为post即可解决问题。get方式进行解析采用的编码方案可查看在server.xml文件中找到connector的URI原创 2012-09-29 14:49:45 · 714 阅读 · 0 评论 -
Connection Statement ResultSet
JDBC是由一系列连接(Connection)、SQL语句(Statement)和结果集(ResultSet)构成的,其主要作用概括起来有如下3个方面: 建立与数据库的连接。 向数据库发起查询请求。 处理数据库返回结果。 这些作用是通过一系列API实现的,其中的几个重要接口如表13-1所示。 表13-1 JD转载 2011-10-20 09:08:35 · 8161 阅读 · 0 评论 -
java获取项目文件路径
this.getClass().getResource("/").getPath().substring(1)获得路径为E:/myeclipse/test/WebRoot/WEB-INF/classes/,即主目录。this.getClass().getResource("").getPath().substring(1)获得路径为E:/myeclipse/test/WebRoot/WEB-I原创 2011-10-20 11:48:56 · 200 阅读 · 0 评论 -
java里url编码解析
IE 浏览器字符默认是以utf-8进行发送,在选项高级里可以查看到,如图:下面是以“中”为例进行解析: String str = "中"; String str1 = URLEncoder.encode(str, "utf-8"); String str2 = URLEncoder.encode(str1,"gbk");原创 2012-03-11 21:38:48 · 4075 阅读 · 0 评论 -
Logger.getLogger()和LogFactory.getLog()的区别
Logger来自log4j自己的包。如果用Logger.getLogger,需要一个log4j的jar包,用此方式你只能依靠log4j:LogFactory来自common-logging包。如果用LogFactory.getLog,你可以用任何实现了通用日志接口的日志记录器替换log4j,而程序不受影响。apache的common-logging包是通用日志接口,通过这个中间层,你可原创 2012-07-06 14:48:06 · 7404 阅读 · 1 评论 -
各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
在开发基于数据库的应用系统时,需要在项目中进行数据源的配置来为数据 库的操作取得数据库连接。配置不同数据库的数据源的方法大体上都是相同的,不同的只是不同数据库的JDBC驱动类和连接URL以及相应的数据库用户名和密 码不同。下面列出8中常用的数据库的数据库数据源配置和相应的JDBC驱动包。1、Spring中数据源配置格式 这里使用了Ja转载 2012-07-05 16:08:41 · 6772 阅读 · 2 评论 -
Spring的注解配置和XML配置的比较
注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。注释和 Java 代码位于一个文件中,而 XM转载 2012-07-06 11:13:50 · 7830 阅读 · 0 评论 -
maven添加jar包到本地库
mvn install:install-file-DgroupId=包名-DartifactId=项目名-Dversion=版本号-Dpackaging=jar-Dfile=jar文件所在路径 格式为:格式为:mvn install:install-file -Dfile= -DgroupId= -DartifactId= -Dver原创 2012-07-10 14:54:28 · 5222 阅读 · 0 评论 -
java synchronized同步方法调用另一个同步方法,锁机制问题
要明白两个问题,1.锁的对象是谁,2.谁持有了锁。假设方法A和B是在同一个类Test中的两个方法。Test t=new Test(); t.methodB();这个时候,methodB方法被调用时,因为加了synchronized ,需要先获得一个锁,这个锁的对象应该是t,也就是当前的这个Test类的实例,而获得锁的东西是线程,也就是说当前线程拿到了t的锁(而不是你说的B方原创 2012-07-09 16:06:15 · 5219 阅读 · 0 评论 -
web模块调用另一web模块的action或页面
原来不清楚是怎么实现的,看了公司某模块的代码,了解到是通过标签的action属性来实现的,经查阅资料才知道原来action属性可以取如下值 值描述URL向何处发送表单数据。可能的值:绝对 URL - 指向其他站点(比如 src="www.example.com/example.htm") 相对 URL - 指向站点内的文件(比如 src="e原创 2012-08-31 09:45:42 · 968 阅读 · 0 评论 -
Tomcat6中jmx对组件进行关联和管理
1.jmx和Catalina各组件的关联主要是通过StandServer类。Catalina在启动的时候使用Digester对server.xml文件进行解析生成相应组件,主要是通过org.apache.catalina.core包中的StandServer类建立jmx和各组件之间的关联,StandServer类无参数的构造函数如下代码所示: public StandardServer()原创 2012-09-01 10:19:06 · 1326 阅读 · 0 评论 -
Tomcat6 Coyote连接器分析
Tomcat里面两大模块分为和Connector和Container。在 Tomcat 中,连接器负责和客户端进行请求响应的交流。 Tomcat 中有两种连接器 (Coyote 和 JK 连接器 ) , Coyote 连接器实现了 Http1.1 协议,我们可以将它理解为 Tomcat 的 Web 服务器部分。 JK 连接器负责处理来自第三方Web 服务器的请求,并将请求结果发送给第三方 We原创 2012-09-02 16:26:05 · 1597 阅读 · 0 评论 -
windows下java环境变量设置
windows xp下配置JDK环境变量: 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.5.0_08; 2.安装完成后,右击“我的电脑”,点击“属性”; 3.选择“高级”选项卡,点击“环境原创 2011-10-11 10:31:02 · 138 阅读 · 0 评论