
java
飞猪it
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
项目中的if else太多了,该怎么重构?
介绍最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的if (msgType = "文本") { // dosomething} else if(msgType = "图片") { // doshomething} else if(msgType = "视频") { // doshomething} else ...转载 2020-01-06 10:05:35 · 452 阅读 · 0 评论 -
当spring 容器初始化完成后执行某个方法
在某些应用中,我们希望,当spring 容器将所有的bean都初始化完成后,做一个操作(例如:将数据库中的字典,加载到内存中),这时我们可以实现一个接口,如下:package com.yk.test.executor.processorpublic class InstantiationTracingBeanPostProcessor implements ApplicationList原创 2013-06-19 16:40:45 · 17878 阅读 · 7 评论 -
java switch支持的数据类型
java支持的数据类型有五种他们分别是:byte、char、short、int、枚举原创 2011-07-02 22:49:17 · 17781 阅读 · 2 评论 -
java 类的初始化顺序
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序以此是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:public class InitialOrderTest { //静态变量 public static String staticField = "静态变量";转载 2011-07-07 16:01:01 · 814 阅读 · 0 评论 -
hibernate+java+sql 之间数据类型转换关系
Hibernate映射类型java类型标准SQL类型integerjava.lang.Integerintegerlongjava.lang.Longbigintshortjava.lang.Shortsmallintfloatjava.lang.Floatfloatdoublejava.lan转载 2013-11-26 09:44:54 · 2039 阅读 · 0 评论 -
几句话弄清楚Java参数传值还是传引用
作者:fbysssmsn:jameslastchina@hotmail.com blog:blog.csdn.net/fbysss声明:本文由fbysss原创,转载请注明出处关键字:Java 传值 传引用这是个老生常谈的问题了,引起过无数争论,但可以说一直没有一个令人满意的回答。有些人非要故弄玄虚,把传引用说成是栈里面放的是引用的值,说只有传值没有传引用,那看看这句经典名转载 2013-12-02 23:02:29 · 946 阅读 · 0 评论 -
java 总结
1、在集成和组合 的选择上的判断,如果 真的有必要向上转型原创 2014-10-10 17:48:41 · 602 阅读 · 0 评论 -
脏读 幻读 不可重复读
1, 脏读一个事务读到另一个事务,尚未提交的修改,就是脏读。这里所谓的修改,除了Update操作,不要忘了,还包括Insert和Delete操作。脏读的后果:如果后一个事务回滚,那么它所做的修改,统统都会被撤销。前一个事务读到的数据,就是垃圾数据。举个例子:预订房间。有一张Reservation表,往表中插入一条记录,来订购一个房间。 事务1:在Rese转载 2015-04-09 22:40:00 · 9830 阅读 · 4 评论 -
java日志组件介绍(common-logging,log4j,slf4j,logback )
common-loggingcommon-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱。所以使用commo转载 2016-03-09 23:17:42 · 607 阅读 · 0 评论 -
多线程-锁
多线程-锁锁的种类 锁 分为两种, 1:阻塞锁 2:自旋锁 - 阻塞锁 当一个线程已经持有了锁,那么其他线程则必须等待。在持有锁的线程,释放锁之前,其他线程都要处于空闲状态。当持有锁的线程,释放锁后,其他线程才能获得锁。 - 自旋锁 当第一次看到这个名字的时候,直接被它吓到��。说白了,当一个线程已经持有了锁,那么其他线程则不断的在循环判断一个标志,该标志标识锁是否被释放。如果循环原创 2016-12-15 17:54:08 · 791 阅读 · 0 评论 -
排它式AQS(EXCLUSIVE模式)
排它式AQS(EXCLUSIVE模式) CLHLock是自旋锁,不支持阻塞,AQS支持。 和CLHLock一样,AQS有一个头节点引用和一个尾节点引用,每当一个线程过来请求锁,就会创建一个节点,节点和线程绑定,然后插入到尾节点。通过源码分析阻塞式AQS 通过ReentrantLock分析AQS的阻塞锁。顺便说一下ReentrantLock这个名字,从名字可以看出,这个类默认是支持重入原创 2016-12-15 17:58:59 · 4428 阅读 · 3 评论 -
共享式AQS
共享式AQS 阻塞式锁,在同一时刻只能有一个线程在执行,当一个线程执行完成后,再去释放下一个线程,而共享式是指,锁是可以被共享的,表现形式为,在同一时刻可以有多个线程运行。通过源码分析共享式AQS的实现CountDownLatch、Semaphore都属于共享锁。基于网上有好多博客都是分析CountDownLatch,所以我在此处分析一下Semaphore。Semaphore的基本使用publ原创 2016-12-15 18:18:30 · 917 阅读 · 0 评论 -
Lock中Condition的实现
Condition 多个线程之间通信,JDK1.5以前使用wait和notify,到了JDK1.5我们有了更加高效的Condition。通过源码分析Condition的实现ReentrantLock的Condition基本使用假如要做一个生产者消费者,当队列中没有元素时,生产者要生产,此时消费者线程不应该再去争夺CPU资源,同样如果队列已满,生产者也不该去争夺CPU资源,而是交由消费者取消费,原创 2016-12-15 18:20:54 · 971 阅读 · 0 评论 -
响应中断的锁与定时锁的实现原理
响应中断的锁 在JDK5之前使用Synchronized作为获取锁的关键字,但是在获取锁的过程中无法中断,及时调用Thread.interrupt也不会中断。 为了能够使线程快速的响应中断,可以使用lock.lockInterruptibly方法。通过源码分析可中断的锁ReentrantLock的lockInterruptibly的基本使用public static void main(原创 2016-12-15 18:22:09 · 4418 阅读 · 0 评论 -
java.lang.OutOfMemoryError: Java heap space解决方法
//首先检查程序有没有限入死循环这个问题主要还是由这个问题 java.lang.OutOfMemoryError: Java heap space 引起的。第一次出现这样的的问题以后,引发了其他的问题。在网上一查可能是JAVA的堆栈设置太小的原因。跟据网上的答案大致有这两种解决方法:1、设置环境变量解决方法:手动设置Heap size修改TOMCAT_HOME/bin/cata转载 2013-05-08 14:04:33 · 1143 阅读 · 0 评论 -
synchronized与static synchronized 的区别
1.synchronized与static synchronized 的区别 synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”,类的两个不同实例就没有这种约束了。那么static synchronized恰好就是要控制类的所有实例的访问了,static synchronized是限制线程同时访问jvm转载 2011-07-02 22:19:24 · 790 阅读 · 0 评论 -
用java删除文件夹里的所有文件
import java.io.File;public class Test{ public static void main(String args[]){ Test t = new Test(); delFolder("c:/转载 2011-10-11 11:17:04 · 709 阅读 · 0 评论 -
默认构造函数的访问权限
转载于:http://alrale.iteye.com/blog/681902Java 类(1)如果没有指定构造函数,编译时会自动创建一个默认的构造函数,如果指定,则不会自动创建默认构造函数(2)如果在类的修饰前是public 则默认构造函数访问权限是转载 2011-10-15 18:33:12 · 4044 阅读 · 0 评论 -
Java 线程池学习
Reference: 《创建Java线程池》[1],《Java线程:新特征-线程池》[2], 《Java线程池学习》[3],《线程池ThreadPoolExecutor使用简介》[4],《Java5中的线程池实例讲解》[5],《ThreadPoolExecutor使用和思考》[6][1]中博主自己通过ThreadGroup实现一个线程池(挺方便理解的),使用的是jdk1.4版本,Jdk转载 2011-11-15 20:16:02 · 554 阅读 · 0 评论 -
java 数据库结果集的处理
当查询到某些结果集后,我们就可以直接利用结果集来操纵当前的数据库。默认情况下,ResultSet是不可滚动不可更新的。所以在开始的时候设置Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);然后就可以操纵结果集了:ResultSet sets原创 2011-11-17 11:24:24 · 1924 阅读 · 0 评论 -
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException
使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法,dom4j的快速手册里也建议使用这种方式,标题都写的这么阔气:Powerful Navigation with XPath。方法是使用Document的selectNodes(String XPath)方法,代码写法:List l = doc.selectNodes("//COLS/COL1");执转载 2011-12-01 09:50:57 · 2067 阅读 · 0 评论 -
Java环境变量设置
1.安装j2sdk以后,需要配置一下环境变量,右击我的电脑->属性->高级->环境变量->用户变量中单击[新建(N)]添加以下环境变量(假定你的j2sdk安装在C:\Program Files\Java\jdk1.6.0_10)(为了不出错,最好是找到J2SDK的安装目录,全部打开一直找到并打开jdk1.6.0_10这个文件夹,然后直接复制文件的地址(D),这个文件地址就是JAVA_HOME变转载 2011-11-13 16:46:27 · 550 阅读 · 0 评论 -
JSF request参数传递
1:JSF页面之间传参方法1: 方法2: 2:JSF页面之间取得参数方法1: 方法2: 3:JSF页面到后台传参转载 2013-04-16 20:48:38 · 969 阅读 · 0 评论 -
java中唯一数的生成
唯一数的生成很简单,基本上以时间为基础进行生成。在JDK里面已经有java.util.UUID类可以生成唯一的随机数。如果希望生成的唯一数为特定的格式,那么就需要自己来生成唯一数了。生成唯一数时有两个因素是必须在考虑的:必须保证唯一,这个一般以时间为基础进行变化。高效,当然越高效越好。有时我们希望在生成的唯一数中包含特定的内容,如把当前时间,如20110609132641,作为前缀等。转载 2013-04-16 20:48:03 · 1144 阅读 · 0 评论 -
Java邮箱正则表达式
"^\\s*\\w+(?:\\.{0,1}[\\w-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*\\.[a-zA-Z]+\\s*$" 这个是一个企业级的程序里copy出来的。 合法E-mail地址: 1. 必须包含一个并且只有一个符号“@” 2. 第一个字符不得是“@”或者“.” 3. 不转载 2013-04-26 10:08:06 · 74081 阅读 · 8 评论 -
Linux下Tomcat的启动、关闭、杀死进程
打开终端cd /java/tomcat#执行bin/startup.sh #启动tomcatbin/shutdown.sh #停止tomcattail -f logs/catalina.out #看tomcat的控制台输出; #看是否已经有tomcat在运行了ps -ef |grep tomcat #如果有,用kill;kill -9 pid #pid 为相转载 2013-05-02 11:10:28 · 771 阅读 · 0 评论 -
Serializable兼容性问题及serialVersionUID的使用
兼容性问题 兼容性历来是复杂而麻烦的问题。不要兼容性: 首先来看看如果我们的目的是不要兼容性,应该注意哪些。不要兼容性的场合很多,比如war3每当版本升级就不能够读取以前的replays。 兼容也就是版本控制,java通过一个名为UID(stream unique identifier)来控制,这个UID是隐式的,它通过类名,方法名等诸多因素经过计算而得,理论上是一一映射的关系转载 2011-07-02 13:13:18 · 1159 阅读 · 0 评论