
Java
文章平均质量分 68
漂浮的鱼~
这个作者很懒,什么都没留下…
展开
-
java设计模式之单例模式(几种写法及比较)
概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、转载 2015-10-21 22:56:49 · 10089 阅读 · 2 评论 -
POI中设置Excel单元格格式样式(居中,字体,边框,背景色、列宽、合并单元格等)
HSSFSheet sheet = workbook.createSheet("sheet1");//新建sheet页HSSFCellStyle cellStyle = wb.createCellStyle(); //新建单元格样式一、设置背景色:cellStyle.setFillForegroundColor((short) 13);// 设置背景色 cellStyle.setFil原创 2015-09-10 17:53:45 · 40944 阅读 · 3 评论 -
在代码片段中添加时间间隔
1、在不改变最初的代码结构情况下,最简单的方法是:直接在想休眠的地方添加Thread.sleep(1000l);如:public class test { public static void main(String[] args) { for(int i=0;i<10;i++){ System.out.println(System.nanoTim原创 2015-09-10 17:15:22 · 954 阅读 · 0 评论 -
hbase分页应用场景及分页思路与代码实现
可以带着下面问题来阅读1.hbasef分页什么情况下比较有用?2.hbase分页的思路是什么?3.hbase分页代码与sql分页代码有什么区别和联系?一、hbase分页应用场景:一、应用场景hbase到底需不需要分页,hbase的数据量肯定不少,肯定是需要分页的。很多人认为数量量如此大,怎么会展示。这个从客户角度来讲,我们做的系统,不可能会给机器看的。这里面我们转载 2015-09-10 18:12:39 · 8836 阅读 · 5 评论 -
使用Timer的schedule()方法
schedule的意思(时间表、进度表)timer.schedule(new MyTask(event.getServletContext()), 0, 60*60*1000);第一个参数"new MyTask(event.getServletContext())":是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承该类,并实现转载 2015-09-10 17:19:22 · 8114 阅读 · 0 评论 -
根据泛型解析json字符串
在java中,经常用到泛型,下面用实例说一下怎么把json字符串转换为对应的泛型。父类:parentClass 子类:childClass extends parentClass childClass child = new childClass();父类中根据泛型解析字符串方法如下: /** * 解析mqText * * @param原创 2015-08-05 17:15:22 · 6138 阅读 · 0 评论 -
extends和implements区别
extends与implements的不同1、在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。 extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2、extends是继承父类,只原创 2015-05-28 22:25:07 · 113060 阅读 · 9 评论 -
Java编译器中对String对象的优化
首先把问题摆出来,先看这个代码:String a = "ab"; String b = "a" + "b"; System.out.println((a == b)); 打印结果会是什么?类似这样的问题,有人考过我,我也拿来考过别人(蛮好玩的,大家也可以拿来问人玩),一般答案会是以下几种:1、true"a" + "b" 的结果就是“ab”,这样a,b都是“ab”转载 2015-05-08 13:49:02 · 671 阅读 · 0 评论 -
为什么spring要设计为不可变对象
这是一个老生常谈的话题(This is an old yet still popular question). 在Java中将String设计成不可变的是综合考虑到各种因素的结果,想要理解这个问题,需要综合内存,同步,数据结构以及安全等方面的考虑. 在下文中,我将为各种原因做一个小结。1. 字符串常量池的需要 只有当字符串是不可变的,字符串池才有可能实现。字符串池的实现可转载 2015-05-05 23:17:29 · 1621 阅读 · 0 评论 -
java中String s="abc"及String s=new String("abc")详解
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾转载 2015-05-08 14:16:20 · 943 阅读 · 0 评论 -
java 生成随机字符串
代码: /** * 生成随机字符串 * @param length 字符串长度 * @return */ public static String getRandomString(int length) { //length表示生成字符串的长度 String base = "abcdefghijklmnopqrstuvwxy原创 2014-12-12 15:23:28 · 4173 阅读 · 0 评论 -
java 中Long和Integer不得不知道的秘密
java程序猿对Long和Integer不可谓不熟,但它们的有些秘密估计好多人都是不知道的,我们先从一个例子开始public class LongTest { public static void main(String[] args){ Long a = 10L; Long b = 10L; Long c = 127L; Long d = 127L;原创 2014-12-09 23:44:45 · 2989 阅读 · 0 评论 -
spring中scope作用域
今天研究了一下scope的作用域。默认是单例模式,即scope="singleton"。另外scope还有prototype、request、session、global session作用域。scope="prototype"多例。再配置bean的作用域时,它的头文件形式如下:如何使用spring的作用域:bean id="role" class="spring.chapte转载 2015-10-22 22:32:21 · 743 阅读 · 0 评论 -
Lock与synchronized 的区别
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在原创 2015-10-14 22:37:51 · 492 阅读 · 0 评论 -
eclipse svn同步时忽略某些文件类型和文件夹
项目开发中,开发人员经常用SVN来管理代码,在和服务器同步时,每次都看到一堆.class,.log,target等文件,这样很不舒服。解决方法:打开:window-->preferences-->team-->Ignored Resource-->Add Pattern忽略文件夹:如忽略target文件夹,就Add Pattern,填入*/target/*忽略文件:如忽原创 2015-01-16 17:53:34 · 39998 阅读 · 4 评论 -
java mysql 高性能批量处理 设置rewriteBatchedStatements
昨天研究了一下mysql的批处理,最初发现很慢10000条 每次1000 243秒50000条 每次500条 1295秒代码如下:package main;import java.sql.*;public class JdbcStreaming { public static void main(String[] args){ try {原创 2016-08-03 14:40:34 · 19182 阅读 · 1 评论 -
java通过JDBC操作mysql数据库
package main;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class DBConnec原创 2016-06-21 19:04:13 · 813 阅读 · 0 评论 -
Java参数传递:值传递和引用传递
Java参数传递方式分为两种:值传递和引用传递Java基本数据类型都是值传递方式,非基本数据类型(即引用类型,String除外,下面会详细介绍)是引用传递方式。下面举例介绍:1、基本数据类型及其包装类public class testMain { public static void main(String args[]){ float x=10;原创 2016-03-10 16:28:51 · 1005 阅读 · 0 评论 -
jsp 静态引用和动态引用的区别
1. 首先先介绍下,jsp机制: servlet容器,先将jsp转化成servlet,然后编译成.class文件,放置容器缓冲区【tomcat的work目录下】。每次调用jsp时,服务器会读取编译好的servler.class,处理jsp的请求。2. 在servlet容器转化jsp为servlet时,将引入的jsp源码全部添加到当前jsp,一并转化成一个ser原创 2016-02-25 11:06:47 · 7340 阅读 · 0 评论 -
CyclicBarrier和CountDownLatch区别
这两天写多线程时,用到了CyclicBarrier,下意识的认为CyclicBarrier和CountDownLatch作用很像,就翻阅资料查了一下,说一下他们的区别吧CyclicBarrier和CountDownLatch 都位于java.util.concurrent 这个包下CountDownLatchCyclicBarrier原创 2016-03-18 19:19:10 · 55391 阅读 · 25 评论 -
mkdir()和mkdirs()
mkdir() 和mkdirs()都是创建文件夹mkdir():在某个目录下创建下一级目录,如果上级目录不存在,则创建失败。mkdirs():如果上级目录不存在,则挨个创建目录package main.java.file;import java.io.*;public class test { public static void main(String[] a原创 2016-03-17 18:12:52 · 884 阅读 · 0 评论 -
java将控制台信息输出到文件
添加以下代码:import java.io.*;public class IO2File { public static void main(String[] args) throws IOException { File f=new File("out.txt"); f.createNewFile(); FileOutputStr转载 2016-03-17 17:11:45 · 13864 阅读 · 4 评论 -
druid连接池配置Druid
Druid 有两种配置方法:一种是基于Spring的配置,另一种是手动创建链接。下面简述这两种方法。一、Spring配置把数据源改为以下配置:原创 2015-09-10 17:23:56 · 9532 阅读 · 1 评论 -
IDEA打包可运行jar
背景:有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR包;或者某些项目不是WEB应用,纯粹是后台应用,发布时,也需要打成可运行的JAR包。并且,如果依赖第三方jar时,又不希望第三方jar也打入最终的可运行jar包,并且还希望,组织下目录结构(如把第三方jar文件,放到最终可运行jar包的并行目录lib下) 开发环境OS: Windows 8.1JDK: 1.7原创 2016-02-16 17:58:59 · 5531 阅读 · 0 评论 -
java.lang.UnsatisfiedLinkError: D:\Tomcat\apache-tomcat-7.0.37\bin\tcnative-1.dll: Can't load AMD 6
昨天重装系统后,把Java环境变量都配置好,myeclipse环境也搭建好后,今天做项目时启动tomcat后,出现这种情况,百度后说去该地址下载一个32位的dll文件,替换tomcat的bin\目录下对应的文件http://www.apache.org/dist/tomcat/tomcat-connectors/native/我嫌麻烦找个最简转载 2016-02-16 11:12:05 · 2728 阅读 · 0 评论 -
java锁机制
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中等待的某个线程就可以拿到锁转载 2015-10-14 22:04:22 · 752 阅读 · 0 评论 -
The specified JRE installation does not exist
报错信息:The specified JRE installation does not exist一、确认配置的JRE是否存在,如下所示:二、如果配置没有问题,把服务删掉,再新建window->perferences->server->installed runtimes 里的删掉,重新建立服务,再运行---------------------------------原创 2014-12-10 14:37:44 · 32633 阅读 · 1 评论 -
formatDate-------date、datetime型数据用EL表达式在页面显示
首先需在页面上导入fmt标签的声明或value: 要格式化的值,这里就是updateDatetype: 格式化的样式dateStyle: 具体样式(比type更具体的描述,可以不写)举例说明:输出结果为:2014-12-05 09:19:052014-12-52014-12-514-12-52014-12-52014年12原创 2014-12-05 11:29:25 · 8433 阅读 · 0 评论 -
quartz CronExpression表达式讲解及使用
CronTrigger配置完整格式为:[秒] [分] [小时] [日] [月] [周] [年] 序号说明是否必填允许填写的值允许的通配符1秒是0-59, - * / 2分是0-59, - * / 3小时是0-23, - * / 4日是原创 2014-12-01 12:51:26 · 964 阅读 · 0 评论 -
java.lang.UnsupportedOperationException
代码:public static void main(String[] args) { String[] arr ={"a","b","c"}; List list = Arrays.asList(arr); list.add("d"); list.add("e"); }运行结果:原创 2014-08-15 23:42:42 · 47011 阅读 · 3 评论 -
containsKey方法——判断是否包含指定的键名
前提是:Map可以出现在k与v的映射中,v为null的情况, 所以containsKey出现更加必要Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有两种情况,一种是在集合中没有该键对象,另一种是该键对象没有映射任何值对象,即值对象为null。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey(原创 2014-09-10 22:37:28 · 59757 阅读 · 5 评论 -
Multiple annotations found at this line
在Eclipse下开发,jsp页面有时会报原创 2014-08-15 12:55:56 · 52988 阅读 · 5 评论 -
Java 冒泡排序法
一、基本思路:冒泡排序是一种简单的交换类排序。其基本思路是,从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。一般地,对n个元素进行冒泡排序,总共需要进行n-1趟。第1趟需要比较n-1次,第2趟需要比较n-2次,......第原创 2014-08-10 17:35:59 · 735 阅读 · 0 评论 -
java 发送邮件
原创的地址已经记不得了,转载 2014-08-10 17:19:09 · 640 阅读 · 0 评论 -
Java 二分查找算法及效率比较
1.前提:二分查找的前提是需要查找的数组必须是已排序的,我们这里的实现默认为升序2、原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值则在中值前面找,若大于中值则在中值后面找,等于中值时直接返回。然后依次是一个递归过程,将前半部分或者后半部分继续分解为三部分。可能描述得不是很清楚,若是不理解可以去网原创 2014-08-10 17:30:56 · 3495 阅读 · 0 评论 -
HashMap的四种遍历方法,及效率比较
package com.cn;import java.util.HashMap;import java.util.Iterator;import java.util.Map.Entry;public class mapTest { public static void main(String[] args){ HashMap map = new HashMap()原创 2014-08-10 17:25:35 · 8415 阅读 · 1 评论 -
ArrayList遍历及效率比较
ArrayList遍历方法及效率比较原创 2014-08-10 17:29:17 · 10385 阅读 · 1 评论 -
session的removeAttribute()和invalidate()的区别
session.invalidate()是销毁跟用户关联session,例如有的用户强制关闭浏览器,而跟踪用户的信息的session还存在,可是用户已经离开了。虽然session 生命周期浏览默认时间30分,但是在30分钟内别的用户还可以访问到前一个用户的页面,需销毁用户的session。session.removeAttribute()移除session中的某项属性。在spring例转载 2014-08-20 22:21:48 · 29469 阅读 · 0 评论 -
SpringMVC利用return new ModelAndView(new RedirectView("xxx.do"), Map map)重定向传递多参数
接触SpringMVC不是很久,发现了一个好用的方法,重定向时可以通过一个Map传递给下一个控制器。Map map= new HashMap();map.put("userName", "yangjinde");map.put("pwd", "yjd");return new ModelAndView(new RedirectView("xxx.do"), map);则转载 2014-08-20 22:18:42 · 6006 阅读 · 0 评论 -
工作流系统的一些常见名称解释
合法E-mail地址: 1. 必须包含一个并且只有一个符号“@” 2. 第一个字符不得是“@”或者“.” 3. 不允许出现“@.”或者.@ 4. 结尾不得是字符“@”或者“.” 5. 允许“@”前的字符中出现“+” 6. 不允许“+”在最前面,或者“+@” 正则表达式如下: -----------------------------------------------------转载 2014-09-05 22:18:07 · 2120 阅读 · 0 评论