java基础
文章平均质量分 76
iteye_9391
这个作者很懒,什么都没留下…
展开
-
Could not commit Hibernate transaction解决方案
这个问题是你服务器拿到的连接已经被关闭了!mysql的连接保持时间默认是8小时,你的程序8小时没访问数据库这时候mysql的连接就都失效了,但是你的程序里面是用的连接池吧?他们那边连接池不知道你这个连接已经失效,继续给你,你去连就报这个错了。这种情况可以把关闭时间延长解决。前段时间我们还碰到一种情况引发这种错误。就是只重启了数据库没有重启web服务,导致程序那边的连接全部是已经失效的。(话说那是总...原创 2015-05-14 23:31:40 · 3126 阅读 · 0 评论 -
ReentrantLock和synchronized两种锁定机制的对比
1、synchronized和volatile都能保证共享数据在多线程情况下的可见性,synchronized能保证同步块中的业务原子性。可见性:就是所有线程在不论何时访问该变量的时候,此变量值都是内存中唯一的值(所有线程得操作都会直接读取内存唯一值,不会使用线程内部缓存的变量副本。),不会出现读取的变量是过期变量这种情况,鄙人之见,忘各位多多指点。原子性:就是业务操作不会被其他线程破坏,...原创 2014-08-28 20:46:05 · 62 阅读 · 0 评论 -
hashMap,treeMap,LinkedHashMap的默认排序
一、简单描述Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,HashTable以及LinkedHashMap等。 TreeMap:能够把它保存的记录根据键(key)排序,默认是按升序排序,也可以指定排序的比较器,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。 ...原创 2017-01-10 16:17:48 · 168 阅读 · 0 评论 -
集合一:HashMap源码窥探
人们对于任何事物的认知,往往都存在这么一个现象:只有你了解的东西,你才会感兴趣。 HashMap之于Java开发者来说,也是如此。相信多数人在起初相当长的时间内,对HashMap的印象都是“Map接口的实现类,是基于哈希的,用于存放键-值对,允许null作为键和值,非线程安全的”,仅此而已。于是在程序编写过程中便“肆无忌惮”往里放键-值对。而只有你对HashMap的实现有了一定的了解之后,...原创 2017-01-07 10:25:02 · 90 阅读 · 0 评论 -
jvm调优监控工具jps、jstack、jmap、jhat、jstat使用详解
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露...原创 2017-01-06 17:04:14 · 186 阅读 · 0 评论 -
volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们...原创 2017-01-06 16:59:08 · 97 阅读 · 0 评论 -
EL表达式处理字符串
是否 包含 某字符串 截取 拆分............... JSP页面页头添加 <%@ taglib uri="/WEB-INF/taglib/c.tld" prefix="c"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 两个标签 页面内容原创 2016-12-19 21:46:02 · 250 阅读 · 0 评论 -
Java调优经验谈
目录调优准备性能分析性能调优其他优化建议JVM参数进阶对于调优这个事情来说,一般就是三个过程:性能监控:问题没有发生,你并不知道你需要调优什么?此时需要一些系统、应用的监控工具来发现问题。性能分析:问题已经发生,但是你并不知道问题到底出在哪里。此时就需要使用工具、经验对系统、应用进行瓶颈分析,以求定位到问题原因。性能调优:经过上一步的分析定位到了问题所在...原创 2016-12-08 19:46:40 · 91 阅读 · 0 评论 -
webservice框架jersey简单总结
项目中更需要使用到webservice,具体的是使用jersey。那么首先需要了解jersey和webservice的关系,捋顺webservice框架的各种实现,通过查阅相关博客,我个人总结webservice的结构图如下: 通过上图,大概可以了解到webservice和jersey的关系了,然后我们需要了解RESTful是什么,自己也是说不太清楚,所以可以看这个博客地址...原创 2016-11-25 00:15:23 · 168 阅读 · 0 评论 -
linux查看是什么操作系统是什么命令
# uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env...原创 2016-09-06 14:11:15 · 2961 阅读 · 0 评论 -
JAXB注解使用
一.Jaxb处理java对象和xml之间转换常用的annotation有:@XmlType@XmlElement@XmlRootElement@XmlAttribute@XmlAccessorType@XmlAccessorOrder@XmlTransient@XmlJavaTypeAdapter 二.常用annotation使用说明 ...原创 2016-04-23 08:12:19 · 66 阅读 · 0 评论 -
java简单实现web服务器一
在主线程中进行等待客户端请求: public static void main(String[] args) { HttpServer1 server = new HttpServer1(); server.await(); } public void await() { ServerSocket serverSocket = null;...原创 2014-09-20 17:01:50 · 73 阅读 · 0 评论 -
java简单实现web服务器二
[align=left][size=large][color=green]概要:这里对上一篇中的访问资源进行改进,将访问servlet和静态资源进行区分。[/color][/size][/align]1、主要不同的地方是加入了两种分析器 A、servlet分析器 if (request.getUri().startsWith("/servlet/")) { ...原创 2014-09-21 08:12:19 · 104 阅读 · 0 评论 -
el表达式和jstl
一:el表达式的功能,获取数据,执行运算,获取web开发常用对象,调用java方法二:获取数据时是调用pageContext.findAttribute()方法,依次从pagecontext,request,session,applocation域中寻找。三:el表达式可以很容易的获取javabean的属性,如${user.address.city},${user.list[0]}等。...原创 2015-04-23 11:05:48 · 62 阅读 · 0 评论 -
Long和int比较用==还是用equals
应该用==,如下实测:1234567891011class Test{ public static void main(String[] args) { Long L = new Long(2); System.out.println("L\ti\tL==i\tL.equals(i)");...原创 2015-04-21 13:42:28 · 1700 阅读 · 0 评论 -
eclipse 生成jar包后,spring无法扫描到bean定义 .
myeclipse jar add directory entries 之前,我曾经写过一篇Java遍历包中所有类,但经过一名网友提醒发现,只能适用于项目src中的包,当包在jar里时就无法遍历jar里的类。就此我针对代码进行了细化,功能得到进一步的完善。在分享源码之前,先说说我在遍历jar包中的类时所遇到的困难。这是我测试用的jar包,结构如下:无论包是在src中还是...原创 2015-04-18 16:27:43 · 98 阅读 · 0 评论 -
findbugs
Findbugs安装使用说明 1用途1. FindBugs 是一个java bytecode静态分析工具,它可以帮助java工程师提高代码质量以及排除隐含的缺陷。例如:未关闭的数据库连接,缺少必要的null check,多余的 null check,多余的if后置条件,相同的条件分支,重复的代码块,错误的使用了"==",建议使用StringBuffer代替字符串连加等等。而且我们还可...原创 2015-04-16 22:05:56 · 128 阅读 · 0 评论 -
关于报错:Target runtime com.genuitec.runtime.generic.jee60 is not defined
关于报错:Target runtime com.genuitec.runtime.generic.jee60 is not defined. 打开Problem视图,提示如下: Google、Baidu都没有答案,后来通过类似的问题才得以解决(类似的问题是:Target runtime Apache Tomcat 6.0 is not defined) 解决方案是:在工...原创 2015-04-13 13:50:53 · 90 阅读 · 0 评论 -
基于注解的Spring AOP的配置和使用
AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程。可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。我们现在做的一些非业务,如:日志、事务、安全等都会写在业务代码中(也即是...原创 2015-04-08 17:44:34 · 74 阅读 · 0 评论 -
打印spring加载的bean信息 .
在启动应用程序的时或是调试时如果能够打印出spring管理的bean的信息,那么对于调试来说有很大的帮助,以下配置可以在spring创建一个bean之后打印出bean的消息,方便调试public class InstantiationTracingBeanPostProcessor implements BeanPostProcessor { // simply return th...原创 2015-04-08 07:43:09 · 725 阅读 · 0 评论 -
eclipse手动安装SVN插件
1、SVN插件下载地址及更新地址,你根据需要选择你需要的版本。现在最新是1.8.x Links for 1.8.x Release: Eclipse update site URL: http://subclipse.tigris.org/update_1.8.x svn插件包下载: http://subclipse.tigris.org/servlets/ProjectDocumentList...原创 2015-01-31 23:59:54 · 75 阅读 · 0 评论 -
Spring + JAX-WS : ‘xxx’ is an interface, and JAXB can’t handle interfaces 错误解决方法
错误栈:Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptionsdemo.order.dao.ParamDao is an interface, and JAXB can't handle interfac...原创 2015-01-26 00:46:36 · 265 阅读 · 0 评论 -
java简单实现web服务器三
[color=green][size=large][align=left]概要:考虑到上一篇中的request和response对象的安全性,不允许servlt程序员在service方法中把servletRequest和servletResponse对象进行强转request和response对象,而访问到request和response对象中私有的方法,这里引入外观类:RequestFacade...原创 2014-09-21 08:24:45 · 96 阅读 · 0 评论 -
Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
Spring 容器中的 Bean 是有生命周期的,Spring 允许 Bean 在初始化完成后以及销毁前执行特定的操作。下面是常用的三种指定特定操作的方法:通过实现InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法;通过<bean> 元素的 init-method/destroy-method属性指定初始化之后 /销毁之...原创 2016-04-16 16:59:07 · 71 阅读 · 0 评论 -
jconsole监控远程linux tomcat运行情况的配置 (转)
步骤如下:1.编辑tomcat/bin/catalina.shBash代码 vi catalina.sh 在其中“# ----- Execute The Requested Command -----------------------------------------”之前插入新的一行(中间没有换行),内容如下:Vi catali...原创 2016-03-18 18:53:28 · 262 阅读 · 0 评论 -
深入理解maven及应用--转
原文地址:http://blog.csdn.net/chaofanwei/article/details/36197183在项目里用了快一年的maven了,最近突然发现maven项目在eclipse中build时非常慢,因为经常用clean install命令来build项目,也没有管那么多,但最近实在受不了乌龟一样的build速度,于是下定决心再看看《maven实战》吧, ...原创 2016-03-06 07:15:00 · 65 阅读 · 0 评论 -
触发器限制联合唯一约束,字段可为空
--创建唯一性触发器CREATE OR REPLACE TRIGGER Tg_Completion_Test BEFORE INSERT OR UPDATE ON bz_funds_voucher FOR EACH ROW --行触发,没有本行则为语句级触发DECLARE Too_Many EXCEPTION; PRAGMA EXCEPTION_INIT(Too_Many, -2000...原创 2015-09-10 16:40:55 · 268 阅读 · 0 评论 -
Mac 安装MySQL
简述:在Mac上安装mysql参考: http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.htmlhttp://blog.csdn.net/adwfcu/article/details/7720848 步骤:1. 下载点http://www.mysql.com/downloads/mysq...原创 2015-07-26 08:23:40 · 90 阅读 · 0 评论 -
Mac OS 配置Maven
简述:在Mac OS上配置Maven参考:http://blog.sina.com.cn/s/blog_67f81bad0100r5lk.html 步骤:1. 下载Maven tar包http://maven.apache.org/download.cgi 2. 下载后解压到某个文件夹下 [html] view plaincopy...原创 2015-07-26 08:20:16 · 60 阅读 · 0 评论 -
Oracle不走索引的原因
Oracle数据库操作中,为什么有时一个表的某个字段明明有索引,当观察一些语的执行计划确不走索引呢?如何解决呢?本文我们主要就介绍这部分内容,接下来就让我们一起来了解一下 . 不走索引大体有以下几个原因: 你在Instance级别所用的是all_rows的方式 你的表的统计信息(最可能的原因) 你的表很小,上文提到过的,Oracle的优化器...原创 2015-07-21 00:03:09 · 692 阅读 · 0 评论 -
jvm GC学习
Java GC 日志详解Java GC日志可以通过 +PrintGCDetails开启以ParallelGC为例YoungGC日志解释如下 FullGC一目了然,一图胜千言 对应的参数列表-XX:+PrintGC 输出GC日志-XX:+PrintGCDetails 输出GC的详细日志-XX:+PrintGCTimeStamps 输出GC的时间...原创 2015-07-11 12:23:12 · 112 阅读 · 0 评论 -
Hibernate连接池之ConnectionProvider
Hibernate是如何初始化连接池的呢?先看下图:1.configuration实例化的时候,hibernate会去读取配置信息,并且将基本的配置信息(不包括实体映射信息)保存到configuration的字段properties中。2.调用configuration的buildSessionFactory()方法,buildSessionFactory()方法又会调用Sett...原创 2015-07-09 09:47:08 · 326 阅读 · 0 评论 -
mac下安装javaHL not available的解决办法
在Mac下安装Eclipse插件svnEclipse插件后,每次打开Eclipse都会弹出如下弹出框:提示你本机缺少JavaHL Library。选择Eclipse→偏好设置(preference)→Team→SVN,可以看到SVN接口Client的定义如下:这说明当前系统中缺少JavaHL,需要我们手动安装。subeclipse官网(http://subclipse...原创 2015-07-08 07:51:15 · 269 阅读 · 0 评论 -
Mac 启动加载文件位置(可设置环境变量)
1)首先要知道你使用的Mac OS X是什么样的Shell,使用命令echo $SHELL如果输出的是:csh或者是tcsh,那么你用的就是C Shell。如果输出的是:bash,sh,zsh,那么你的用的可能就是Bourne Shell的一个变种。Mac OS X 10.2之前默认的是C Shell。Mac OS X 10.3之后默认的是Bourne Shell。 ...原创 2015-07-08 07:01:06 · 80 阅读 · 0 评论 -
Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法
一、开篇这里整合分别采用了Hibernate和MyBatis两大持久层框架,Hibernate主要完成增删改功能和一些单一的对象查询功能,MyBatis主要负责查询功能。所以在出来数据库方言的时候基本上没有什么问题,但唯一可能出现问题的就是在hibernate做添加操作生成主键策略的时候。因为我们都知道hibernate的数据库本地方言会针对不同的数据库采用不同的主键生成策略。所以针...原创 2015-06-30 12:00:18 · 66 阅读 · 0 评论 -
JXL GC 问题探讨
最近在一个项目中采用JXL做excel导出的功能,但是项目上线后时不时的出现服务器CPU使用率达到99%的问题。查来查去发现问题尽然出在JXL导出excel上。后来通过Google搜索发现JXL会强制调用System.gc()方法。要知道在J2EE应用服务器中,是极力反对这种应用调度GC的做法的,因为System.gc()会极度影响系统性能和稳定性。但是JXL为了挽回这种强制调用,它提供 了se...原创 2015-06-24 14:31:14 · 718 阅读 · 0 评论 -
tomcat里设置session过期时间
以下是设置session时间的3个方法: 1. 在tomcat——>conf——>servler.xml文件中定义: <Context path="/test" docBase="/test" defaultSessionTimeOut="3600" isWARExpanded="true" isWARValidated="false" isInvokerE原创 2015-09-14 10:26:47 · 72 阅读 · 0 评论 -
基于MAVEN的WEB项目在ECLIPSE中使用TOMCAT调试
以前开发用过jetty来调试maven项目,不过那时也有点浑浑噩噩的,就是使用而已,业余时间都奉献给了游戏。最近在鼓捣maven,就记录一下最近搭建Eclipse中使用Tomcat调试maven项目的过程,以后忘记或者中间有什么问题时可以查到。废话不多说,下面开始搭建: 1. 安装Maven(配置Maven环境变量+Eclipse中的Maven插件)这步就不多说了,网上一搜一大把...原创 2015-09-19 19:21:01 · 48 阅读 · 0 评论 -
maven中snapshot快照库和release发布库的区别和作用
在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次。我们知道,maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。如果我们在开发阶段都是基于正式发布版本来做依赖管理,那么遇到这个问题,就需要升级...原创 2016-03-04 17:28:33 · 54 阅读 · 0 评论 -
Spring与Quartz的整合实现定时任务调度
最近在研究Spring中的定时任务功能,最好的办法当然是使用Quartz来实现。对于一个新手来说,花了我不少时间,这里我写个笔记,给大家参考。 我使用的是Maven来管理项目,需要的Jar包我给大家贴出来。 quartz-1.8.5.jar commons-logging.jar spring-core-3.0.5.RELEASE.jar spring-beans-3.0.5.RELEASE.j...原创 2016-03-04 15:18:50 · 49 阅读 · 0 评论