java知识积累
Java海洋
从事JAVA 开发,大数据开发10多年,目前在一家互联网公司做技术负责人
展开
-
Timer 和TimerTask
1.概览Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。简单的一个例程:import java.util.Timer;import java.util.TimerTask;/*** Simple demo that us转载 2012-10-08 16:20:09 · 773 阅读 · 0 评论 -
java中split方法的用法
Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项:java.lang.string.splitsplit 方法将一个字符串分割为子字符串,然后将结果作为字符串数组返回。stringObj.split([separator,[limit]]) stringObj必选项。要被分解的 Str转载 2013-01-08 14:14:37 · 8655 阅读 · 4 评论 -
Servlet.service() for servlet default threw exception
java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407) at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725)原创 2013-04-03 09:56:01 · 1550 阅读 · 0 评论 -
JAVA定时调度框架Quartz使用案例
背景: 近期项目中遇到跨区调拨商品的需求,比如A区和B区,需要判断A区或者B区某种sku是否需要从对方库调拨商品来补充货源,避免因缺失商品而出现订单延误,影响销售和对用户产生不良影响。问题: 数据量庞大,如果当查看的时候去获取数据,那么会严重影响系统的性能,甚至导致数据库和应用服务器无法响应。解决方案:原创 2013-03-13 16:53:31 · 1690 阅读 · 0 评论 -
java.sql.SQLException: ORA-00917: 缺失逗号
ibatis Cause: java.sql.SQLException: ORA-00917: 缺失逗号ibatis Cause: java.sql.SQLException: ORA-00917: 缺失逗号 经过查找发现少了个红色的“) insert into Party ( partyId, p_Name,原创 2013-04-16 11:49:33 · 15960 阅读 · 0 评论 -
Map 使用中一点知识
public static void main(String [] args){TjEnvironmentObj obj = new TjEnvironmentObj();Map map = new HashMap();obj.setGsmIndoorNum(11);map.put(1, obj);obj.setGsmIndoorNum(33);Iterator ite原创 2013-07-26 14:02:23 · 772 阅读 · 0 评论 -
window 和linux系统分隔符的不同
今天遇到个bug。 这是个导出功能,使用的是POI,使用已经做好的模板,向里面添加数据,在action中进行处理。 首先取得模板, 路径:\\export\\excel\\template\\temp.xls代码: String modelpath = getRequest().getSession().getServletContext().getRealPath("原创 2011-11-24 17:06:17 · 9321 阅读 · 0 评论 -
struts2获取sessionid并存储在内存中
HttpServletRequest request = ServletActionContext.getRequest();String sessionId = request.getSession().getId();UserManager.getInstance().addSessionID(sessionId, userId);/** 添加用户到session中原创 2013-08-08 12:41:04 · 5043 阅读 · 0 评论 -
java 中 session 失效设置
在系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session。具体设置很简单,方法有三种:(1)在主页面或者公共页面中加入:session.setMaxInactiveInterval(900);参数900单位是秒,即在没有活动15分钟后,session将失效。这里要注意这个session设置的时间是根据服务器来计算的,而不原创 2011-11-24 10:18:50 · 13998 阅读 · 1 评论 -
查询表字段类型
/** 根据表明查询字段类型* */private Map queryFieldMap(String tableName, String dbName){if(tableName == null || dbName == null){return null;}Map resultMap = new HashMap();Connection conn = nu原创 2013-08-08 17:19:25 · 945 阅读 · 0 评论 -
SAXParseException: Content is not allowed in prolog
原因及其解决办法:1.xml编码错误该xml是UTF-8编码的,如果该文件通过UltraEdit编辑后,会在无BOM头的UTF-8文件中加入BOM,但是DOM4j不认这个BOM(dom4j1.3),解决的办法可以通过升级dom4j到1.6解决www.dom4j.org什么是BOM?http://www.unicode.org/faq/utf_bom.html#22Unico原创 2012-12-19 19:15:35 · 1263 阅读 · 0 评论 -
一个比较基础的导出EXCEL 例子
可以根据分页导出那一页,根据条件导出查询出来的值HttpServletResponse response=ServletActionContext.getResponse(); OutputStream out = response.getOutputStream(); response.setContentType( " APPLICATION/OCTET-STREAM "原创 2012-12-31 16:56:22 · 1107 阅读 · 0 评论 -
java防止表单重复提交后退等
1 在你的表单页里HEAD区加入这段代码: 2 生成一个令牌保存在用户session中,在form中加一个hidden域,显示该令 牌的值,form提交后重新生成一个新的令牌,将用户提交的令牌和session 中的令牌比较,如相同则是重复提交 3 在你的服务器端控件的代码中使用Response.Redirect("selfPage")语句。但是大多的数都不转载 2012-09-20 16:13:13 · 2087 阅读 · 0 评论 -
DWR实例总结
DWR实现的效果就是类似于ajax,实现和后台交互而不刷新页面,实现DWR,有一下步骤:1.页面引入三个JS: 这三个JS不是实际存在的,至少在我这里没有,而是有个dwr3.0.jar,应该是这个jar包的作用, 必须像以上一样引入三个JS2.页面运用:function initAction(){ var processDefName = dwr.util.g原创 2012-09-20 15:59:52 · 1363 阅读 · 0 评论 -
axis client error Bad envelope tag: definitions
axis client error Bad envelope tag: definitions2009-03-24 20:17AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userExceptionfaultSubcode: faultString: org.xml.sax.SAXExce转载 2012-10-19 16:39:05 · 12111 阅读 · 0 评论 -
java学习中应该理解的6个问题
对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。内容均来自于CSDN的经典老贴。问题一:我声明了什么!String s = "Hello world!";许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”转载 2012-10-25 09:15:26 · 896 阅读 · 0 评论 -
java中易出错的且常被面试的几点
一、关于Switch 代码: 结果: 2 3 4 分析: 少了break;所以2以下的case和default都执行了一遍。 switch case 原理是:1.当遇到匹配的项后如有break,则结束,不再执行后面的语句,如果没有break,则执行完匹配的项后,后面的语句不管是否匹配一律执行;2.如果一直没有匹配的项原创 2012-10-25 14:18:10 · 1488 阅读 · 0 评论 -
java 统计在线人数(2)
首先给你讲一下,我的理解,人数统计好说,因为,可已设置监听器,让其在服务器启动的时候进行监听,然后统计登录人数,但是统计在线人数,就麻烦点了,因为大多数人都不愿意点击注销按钮,直接关闭浏览器,这样session的关闭就麻烦了点,我先给出统计人数的代码,我想统计在线人数可以定时调用程序来统计,但是不是实时的,所以最大的障碍就是怎么在关闭浏览器的时候,就关闭sessionimport java.i转载 2012-11-13 11:39:56 · 2783 阅读 · 0 评论 -
java 实现统计在线人数
对于登录信息时使用session存储的,所以我这里是通过实现HttpSessionAttributeListener这个接口完成的。 1、实现接口类,在web.xml文件中配置监听类,从而可以使该类完成其工作。public class SessionListener implements HttpSessionAttributeListener{public void att原创 2012-11-13 11:09:39 · 4297 阅读 · 0 评论 -
登录验证过滤器
1.过滤器类public class LoginFilter implements Filter { private String weblogin = "/login.jsp"; // web页面登陆页面 //private final static String[] ispass = new String[] { "/ckeditor/", "/css/", "/images/",原创 2012-11-13 13:57:15 · 1182 阅读 · 0 评论 -
解析XML时
被解析的XML文件,编辑时最好不用UltraEdit等编辑器,如果用这些编辑器编辑保存后,会报Error on line 1: Content is not allowed in prolog错误,用记事本修改下再保存即不会报错 未完待续。。。。。原创 2012-11-14 17:44:22 · 720 阅读 · 0 评论 -
java项目打jar包
java项目打jar包分为2种情况:一、java项目没有导入第三方jar包这时候打包就比较简单:1. 首先在Eclipse中打开项目, 右键点击项目,选择“Export”;2. 选择Java/JAR file,Next;3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间;原创 2013-08-29 22:12:38 · 952 阅读 · 0 评论 -
java项目打JAR包详解1
Step1:在Eclipse的资源管理器中选中你要打包的项目,右键点击,选择“导出”项,弹出导出对话框,在下面的Java目录下选择“JAR 文件”项,下一步,在导出目标路径TextField框中输入你想保存的路径,单击“完成”。 Step2:进入Step1中保存jar文件的目录下,用压缩文件管理器打开jar文件,进入META-INF\目录下,打开MINIFEST.MF文件,对MINIFEST原创 2013-09-03 20:28:06 · 2692 阅读 · 0 评论 -
把e.printStackTrace的堆栈信息打印在log.error()中
不要这样写: log.error(e);这样只是简单的记录下错误的类型,不能精确出错误出错在哪行要写成:log.error(e.toString(),e);原创 2013-09-13 14:12:32 · 7310 阅读 · 0 评论 -
计算一个对象占用的内存
/*** 计算一个MAP对象占用的内存* @param args*/public static void main(String[] args) {System.gc(); long total = Runtime.getRuntime().totalMemory(); //单位:byte long m1 = Runtime.getRunti原创 2014-08-11 16:17:50 · 1197 阅读 · 0 评论 -
JAVA_HOME should point to a JDK not a JRE
或者是tomcat一闪而过原创 2014-08-19 12:31:18 · 23912 阅读 · 1 评论 -
OSWorkFlow流程配置文件详解
AbstractWorkflow>>osworkflow中有关工作流流转的所有核心代码都在AbstractWorkflow中,BasicWorkflow就是派生自它,不过这个BasicWorkflow基本上没做什么事情。也许我们还可以从AbstractWorkflow派生自己的Workflow类以加入扩展功能,大概这也算是osworkflow所体现的一种灵活性了,即:允许对工作流流转的执行逻辑原创 2014-09-04 11:32:00 · 4646 阅读 · 0 评论 -
StringTokenizer使用讲解
StringTokenizer是一个用来分隔String的应用类,相当于VB的split函数。1.构造函数public StringTokenizer(String str)public StringTokenizer(String str, String delim)public StringTokenizer(String str, String delim, boolean原创 2014-09-29 15:36:42 · 7691 阅读 · 0 评论 -
Address already in use : connect 异常的解决办法
Java版C/S程序,作压力测试的时候发现当客户端连续创建连接一段时间后报 Address already in use : connect ...... 乱七八糟一堆异常 再尝试建立连接已经连不上了,通过 netstat -a 命令查看,有一大堆状态为 TIME_WAIT 的占用连接不被释放 网上查到很多这类问题解决办法 问题原因:转载 2014-10-17 17:52:33 · 12067 阅读 · 1 评论 -
Java与php在Web方面的比较
比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较: 一、 语言比较 PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法。所以java不原创 2015-01-25 14:56:24 · 1372 阅读 · 0 评论 -
JSON 字符串 与 java 对象之间互相转换
首先引入maven需要依赖的jar:dependency> groupId>net.sf.json-libgroupId> artifactId>json-libartifactId> version>2.4version> classifier>jdk15classifier>dependency>需要导入的类:import net.sf.jso原创 2015-08-19 15:08:22 · 3965 阅读 · 1 评论 -
什么是面向对象,为什么要面向对象,怎么样面向对象
一、 面向对象,这个对象到底是什么? 这个对象不是C#中的实例,C#中我们把一个类的实例也叫做对象,这种对象严格的说应该是面向对象的编程实现(OOP)中的对象,面向对象编程,也不是面向类的实例编程。对象的定义是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。也有的定义为“一切都是对象”然而面向对象也原创 2015-11-06 17:48:39 · 1117 阅读 · 0 评论 -
用正则校验IP地址与MAC地址
1、java用正则表达式校验MAC地址Java代码 String mac="00-E0-20-1C-7C-0C"; //正则校验MAC合法性 String patternMac="^[A-F0-9]{2}(-[A-F0-9]{2}){5}$"; if(!Pattern.compile(patternMac).matcher(mac).fi转载 2017-01-05 15:37:41 · 13740 阅读 · 0 评论 -
JAVA中的线程以及与进程的区别
一、进程与应用程序的区别 进程(Process)是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。以Unix操作系统为例,进程是Unix操作系统环境中的基本成分、是系统资源分配的基本单位。Unix操作系统中完成的几乎所有用户管理和资源分配等工作都是通过操作系统对应用程序进程的控制来实现的。 C、C++、Java等语原创 2014-06-25 14:25:29 · 7074 阅读 · 0 评论 -
ConcurrentHashMap原理分析
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅转载 2014-06-25 14:57:56 · 961 阅读 · 0 评论 -
线程的创建和调用
一、定义线程 1、扩展java.lang.Thread类。 此类中有个run()方法,应该注意其用法:public void run()如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。 Thread 的子类应该重写该方法。2、实现java原创 2013-09-22 10:15:11 · 1621 阅读 · 0 评论 -
Failed to load Main-Class manifest attribute from
原因描述:MANIFEST.MF文件中的Main-Class配置不正确或格式不正确 检查方式:以WinRarR的方式打开jar包,如图所示, 点击进入箭头所指的META-INF文件夹 将MANIFEST.MF拷贝出来进行编辑 编辑内容,示例如下: 注意好以上三个方面就应该没什么问题了原创 2013-10-16 15:37:17 · 6763 阅读 · 3 评论 -
日志及时准确的记录错误行数
目前因现场人员反映发现action出错时,日志没有记录下错误,因为咱们在写Action的方法时,方法加了throws exception把异常抛到页面上了,没有做捕捉异常;所以日志没有记录下错误来我试了下,代码可以:在主要代码出用try圈起来;catch时添加如下语句:} catch (Exception e) {log.error(e.toString(), e);errorMs原创 2013-10-17 15:04:31 · 3210 阅读 · 0 评论 -
log4j配置文件位置详解
自动加载配置文件:(1)如果采用log4j输出日志,要对log4j加载配置文件的过程有所了解。log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找log4j.properties文件。然后加载配置。配置文件放置位置正确,不用在程序中手动加载log4j配置文件。如果将配置文件放到了config文件夹下,在build Path中设置下就好了。原创 2013-09-04 11:36:07 · 61127 阅读 · 8 评论 -
java保留两位小数4种方法
import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;public class format { double f = 111231.5585; public void m1() { BigDecimal bg = new转载 2014-01-07 14:58:17 · 1037 阅读 · 0 评论