
java
文章平均质量分 79
枫之逆
逆风的方向,更适合奔跑。。
展开
-
JVM分代垃圾回收策略的基础概念
JVM分代垃圾回收策略的基础概念由于不同对象的生命周期不一样,因此在JVM的垃圾回收策略中有分代这一策略。本文介绍了分代策略的目标,如何分代,以及垃圾回收的触发因素。文章总结了JVM垃圾回收策略为什么要分代,如何分代,以及垃圾回收的触发因素。为什么要分代分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采转载 2012-02-20 12:31:36 · 713 阅读 · 0 评论 -
log4j程序中的配置方法
在程序中的配制方法有如下几种: BasicConfigurator.configure()方法使用最简的方法配置log4j环境。注:所谓配置log4j环境,就是指配置root logger,因为所有其它的logger都是root logger的后代,所以它们(默认情况下)都将继承root logger的性质。 BasicConfigurator.configure(原创 2012-05-21 14:32:55 · 1746 阅读 · 0 评论 -
IllegalArgumentException: Mapped Statements collection does not contain value for Mapper解决办法
问题描述如下:用MyBatis开发时遇到如下问题,2012-8-7 17:23:48 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet springServlet threw exceptionjava.lang.IllegalArgumentException:原创 2012-08-07 17:28:30 · 6772 阅读 · 1 评论 -
算法学习之排序学习之基数排序,计数排序及java实现
先介绍一下概念 计数排序和基数排序都是非比较排序,就是不用进行比较就能排序,相对于堆排序,快速排序,插入排序等都是比较排序,比较排序算法的最坏情况下届都要做0(nlgn)次的比较,堆排序和合并排序都是渐近最有的比较排序算法,线性时间排序的时间复杂度都是O(n)。 计数排序的基本思想,假设n个输入元素中的每一个都是介于0到k的整数,此处k为某个整数。当k=O(n)时,计数排序运行时间是O原创 2012-09-05 15:29:59 · 1834 阅读 · 0 评论 -
算法学习之排序学习之快速排序
快速排序,对包含n个数的数组进行排序,最坏运行时间O(n2),期望的运行时间O(nlgn)。 快速排序基本思想,基于分治模式的,先找其中一个数为中间数,然后根据中间数将数组分为两个部分,左边比中间数小,右边比中间数大,然后对左边和右边两部分子数组分别递归调用快速排序,由于两个子数组是就地排序的,合并他们不需要操作,整个数组已经有序了。 具体看代码,下面代码给出了两种实现。pac原创 2012-09-06 12:14:27 · 1387 阅读 · 1 评论 -
MyBatis入门介绍,凤凰涅槃:从 iBatis 到 MyBatis
从iba iBatis 到 MyBatis,你准备好了吗?直接传送吧,转自http://www.ibm.com/developerworks/cn/opensource/os-cn-mybatis/index.html?ca=drs-对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate、JPA 这样的一站式对象 / 关系转载 2012-05-23 10:09:53 · 2111 阅读 · 0 评论 -
反射获取对象成员的字段值,getFields()和getDeclaredFields()用法区别
用反射获取内部类的属性其实很简单。。我弄了半天才弄好,由于很弱智的原因啊,写此博文已吸取教训。 虽简单,但是太坑爹了,getFields()只能获取public的字段,包括父类的。 而getDeclaredFields()只能获取自己声明的各种字段,包括public,protected,private。 而我写的Characters类中的属性是在继承父类的,父类中是protect原创 2013-03-06 18:44:26 · 77822 阅读 · 10 评论 -
反射+枚举+freemarker,自动生成实体类,自动建表建索引(一)之生成实体类,枚举详解
用反射+枚举+freemarker,自己实现的自动生成实体类和自动建立数据表。用enum枚举作为数据表的配置文件,1个枚举就是1张表,根据枚举类,自动生成实体类,和自动建表。下面先介绍自动生成实体类。 主要步骤就是先反射读取枚举类,获取所需信息,然后用freemarker生成实体类。这里需要用到freemarker.jar这个jar包(点击下载)。 1、普及下enum枚举,既然用到了,原创 2013-03-28 11:52:13 · 9166 阅读 · 10 评论 -
反射+枚举+freemarker,自动生成实体类,自动建表建索引(二)之建表建索引,注解和DatabaseMetaData 获取信息
接上一篇博文反射+枚举+freemarker,自动生成实体类,自动建表建索引(一)之生成实体类,枚举详解,这篇博文介绍自动建表。 用反射+枚举+freemarker,自己实现的自动生成实体类和自动建立数据表建索引。用enum枚举作为数据表的配置文件,1个枚举就是1张表,根据枚举类,自动生成实体类,和自动建表建索引。 主要步骤和上一篇博文差不多,就是先反射读取枚举类,获取所需信息,然后用原创 2013-03-28 14:38:28 · 4410 阅读 · 0 评论 -
反射获取枚举上的注解
关于反射获取枚举上的信息,javaSE的jdk相关API里面并没有提供方法,直接获取也只能获取到enum类上的注解,上网搜了半天,中文没搜到解决方法结果,感觉太坑爹了,于是记录且分享如下:一、前言----引出问题 在前面的一篇博文(反射+枚举+freemarker,自动生成实体类,自动建表建索引(一)之生成实体类,枚举详解)中,讲到关于自动生成实体类的方法中,用枚举来当配置文件,这个原创 2013-04-22 16:29:42 · 13208 阅读 · 1 评论 -
Eclipse设置代码高亮,设置代码样式
前言 由于eclipse自身的文本框、代码颜色等不够好看,不够护眼等原因,于是自己摸索试着设置了下,最后成功设置代码颜色高亮,分享如下。(本文提供了两种方法,一是自己根据下列步骤自己尝试设置一遍,此法灵活性较高,可设置自己想要的颜色;二是自己把我分享的我设置好的方案直接导入即可,简单粗暴。好了闲话少叙,进入正题。)方法一、设置代码高亮 先打开eclipse,打开菜单栏window-原创 2013-09-05 16:22:28 · 25166 阅读 · 12 评论 -
File already exists: filesystem '/path/file', transaction svn常见错误解决方法
前言 多人任务基本都会用到SVN,于是提交的时候如果不先更新在提交或者操作顺序不对,会经常出现错误,其中File already exists: filesystem这个就是个常见问题,上网找了半天没找到解决办法,经过摸索,经解决办法分享于此。解决方法 不同情况对应不同的解决方法: 1、通用的。直接先备份,然后将本地删除,然后充仓库里面checkout出最新的文件,然原创 2013-09-05 17:17:16 · 44481 阅读 · 2 评论 -
【protocol buffers】java解析.proto文件具体方法
一、前言 本文将介绍用java解析.proto文件。 由于protobuffer的java库里面有提供可以直接解析.ptoto文件的相关类,所以并不能像C++那样直接可以解析.proto文件,我google了半天才在网上找到方法,于是便有了这篇博文。(此处需要用到protobuf的jar文件,可以点击此处下载) 二、具体解析方法 不能直接用protobuf提供的库来解析.p原创 2013-03-29 14:36:57 · 25176 阅读 · 1 评论 -
【Protocol Buffers】Google开源技术-Protocol Buffers介绍
尊重原作者的劳动成果,本文转自:http://program-think.blogspot.com/2009/05/opensource-review-protocol-buffers.html 今天来介绍一下“Protocol Buffers”(以下简称protobuf)这个玩意儿。本来俺在构思“生产者/消费者模式”系列的下一个帖子:关于生产者和消费者之间的数据传输格式。由于里面扯转载 2013-03-01 17:11:52 · 2852 阅读 · 0 评论 -
【protocol buffers】Invalid embedded descriptor for ".proto".Dependencies passed (Protobufer)解决办法
前言 之前开发的时候,发现居然出现了Dependencies passed to FileDescriptor.buildFrom() don't match those listed in the FileDescriptorProto.的错误,还有Protocol Buffers Invalid embedded descriptor problem等错误,上网google了很久也没找到原创 2013-09-05 17:03:19 · 5077 阅读 · 2 评论 -
K-means算法的java实现,聚类分析681个三国武将
一,k-means算法介绍: k-means算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。 k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各原创 2012-05-07 16:58:29 · 10920 阅读 · 30 评论 -
explise rcp application export导出exe问题解决
问题描述如下:!ENTRY org.eclipse.osgi 4 0 2015-03-25 16:24:01.651!MESSAGE Application error!STACK 1java.lang.NullPointerExceptionat org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.(ModelServi原创 2015-03-25 16:37:32 · 6286 阅读 · 0 评论 -
log4j使用小结
log4j是一个记录日志的工具,功能比较强大,在写代码的过程中发现如果一些消息,异常错误,警告之类的老是往控制台打印的话,并不是很好的一个记录方法,于是用了log4j这个功能比较强大的日志记录工具,然后记下自己的使用总结。 介绍 经验表明日志记录是开发周期的重要组成部分。它提供了几个优点。它提供精确的 背景下的应用程序的运行。一旦插入到代码中,生成日志输出,无需原创 2012-05-21 11:18:04 · 1864 阅读 · 0 评论 -
maven 和 ant 比较
一个简单的 build.xml 文件:simple example build file<target name="compile" depends="init"description="compile the source " ><target name="dist" depends="compile"description="generate原创 2012-05-17 11:22:34 · 9306 阅读 · 2 评论 -
svn:is not under version control and is not part of the commit, yet its child解决办法
在把写好的代码提交到svn上面时,遇到了一个错误如下:svn: Commit failed (details follow): svn: 'D:\eclipse\StatusInquiry\src\com\cnjmwl\scm\policy' is not under version control and is not part of the commit, yet its child原创 2012-06-07 10:59:15 · 30318 阅读 · 6 评论 -
用Java编写你自己的简单HTTP服务器
HTTP是个大协议,完整功能的HTTP服务器必须响应资源请求,将URL转换为本地系统的资源名。响应各种形式的HTTP请求(GET、POST等)。处理不存在的文件请求,返回各种形式的状态码,解析MIME类型等。但许多特定功能的HTTP服务器并不需要所有这些功能。例如,很多网站只是想显示“建设中“的消息。很显然,Apache对于这样的网站是大材小用了。这样的网站完全可以使用只做一件事情的定制服务器。J转载 2012-02-27 22:25:03 · 1161 阅读 · 0 评论 -
Java构造方法私有化-->单例模式-->Runtime类的设计
在学了Java这么久的过程中,发现构造方法私有化,即用private修饰符修饰构造方法,那么这个类就不能用new进行实例化,否则会报错。既然不能用new进行实例化,那么能产生该类的实例么?这种设计难道没有意义么?其实这就是设计模式中的单例模式的设计。Java中不用实例化就能调用的方法可以用static修饰,private修饰符仅有在该类中能访问,因此可以提供static的方法,返回该类的实例(原创 2012-02-25 18:57:34 · 3583 阅读 · 1 评论 -
J2EE ajax中文乱码解决
前几天在关于java web 开发中遇到的表单提交、ajax提交的乱码问题,纠结死了,找了下资料,终于发现解决方法,总结了一下,方便日后查找。 1、html表单提交,在文本框中输入中文提交到Servlet或JSP处理,即使对HttpServletRequest中的方法进行了设置req.setCharacterEncoding("gb2312");也不能解决中文乱码问题,但是英文则原创 2011-12-15 10:45:27 · 1175 阅读 · 0 评论 -
Servlet、jsp的生命周期,线程安全,感悟
在学Servlet、JSP时候,对于servlet什么时候创建实例?什么时候调用init()方法,init()方法有什么作用?service()方法何时调用?如何处理请求?init()、jspInit()、service()、_jspService()、destroy()、jspDestroy()能不能覆盖?ServletContext作用域、HttpSession作用域、HttpServletR原创 2011-12-16 11:06:44 · 2704 阅读 · 0 评论 -
Java中接口的感悟
在Java的学习中,学了这么久才发现面向接口编程的好处很多,其中最后重要的莫过于可以拥抱变化。在了解到接口的设计中,才发现自己之前对接口的真正意义上的功能只了解一半。大多编程的经验下,Java中的接口是用于表示一种标准,只定义了一些标准,一些方法的声明而没有实现,表示将方法名暴露给远程客户端。如USB接口等。这便是大家所熟悉的,也是常用的接口功能。但是接口中还有一种重要的功能,即接口表示一种能原创 2012-02-26 12:12:07 · 1274 阅读 · 0 评论 -
<jsp:useBean />及相关动作深入理解
学JSP的时候,发现jsp和javaBean合作真的很方便,一些东西直接交给javaBean处理,但是在用的过程中,还是发现了不少问题,如果提交表单中有中文怎么办?javaBean里面的属性成员不只是基本数据类型,而是Object类型又如何处理?深入了解了后,发现javaBean其实不过是各种作用域的一个Attrubute属性。 1、单独使用和包含使用。单独使用即原创 2011-12-18 15:42:55 · 1370 阅读 · 0 评论 -
xubuntu11.10下搭建java运行环境笔记(jdk1.7+mysql5+tomcat6.0.35+eclipse3.7)
在自学linux时装了xubuntu系统后,早就想在这个系统下搭建java开发环境了,在windows下已经对java比较熟悉了,就想动手体会下java真正到跨平台特性,搭建环境的时候对linux并不是很熟系,也参考了一些网上的资料,过程有点纠结,不过最终搭建成功,不废话了,具体过程如下: 1, 开发过java的程序员都知道要先有jdk,这是最核心的,于是我先到orache官网上原创 2012-03-25 18:14:18 · 1897 阅读 · 0 评论 -
Struts2学习之国际化机制
什么叫国际化呢?自学时刚看到这个词的时候感觉好像很高端很难的样子,深入理解后才发现就那么一回事,不过其中的机制确实挺好的。 国际化主要是指语言的国际化,是不同地区和使用不同语言的用户都能方便地使用同一个应用系统。Struts2的国际化机制是建立在Java国际化 的基础之上,对Java国际化 进行了优化和封装。主要过程如下: 当客户端发送请求时,Struts2的i18n(原创 2012-02-28 18:43:50 · 1287 阅读 · 0 评论 -
jvm的stack和heap,JVM内存模型,垃圾回收策略,分代收集,增量收集(转)
深入Java虚拟机:JVM中的Stack和Heap(转自:http://www.cnblogs.com/laoyangHJ/archive/2011/08/17/gc-Stack.html)在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题。原创 2012-03-28 12:28:54 · 13573 阅读 · 0 评论 -
设计模式学习之桥模式
桥模式:将对摸个问题抽象的不同形式分别于该问题的具体实现部分相互分离,是它们都可以独立的裱花,并且能动态的结合。这个模式是面向对象的接口隔离原则的典型实现和具体的应用。 使用桥模式可以讲对问题的抽象的不同形式与该问题的具体实现部分相互分离,使他们都可以独立的变化--因为桥模式可以提供在各个不同的实现中动态的进行交换,而不必重新编译程序。同时可以向客户端程序隐藏具体实现部分的功能细原创 2012-03-13 12:43:52 · 3034 阅读 · 0 评论 -
在JVM上运行的五大脚本语言(Top five scripting languages on the JVM)
遵循软件开发工具,在过去十年中的任何人都知道,长期的“Java”指的是一双的技术:Java编程语言和Java虚拟机(JVM)。Java语言被编译成字节码在JVM上运行。通过这种设计,JAVA提供可移植性。 然而,语言和JVM,已越来越多地在相反的方向移动。语言已变得越来越复杂,而JVM已经成为最快和最有效的执行平台之一。Java的许多基准,等于如编译语言生成的二进制代码的性能翻译 2012-03-19 12:06:05 · 4407 阅读 · 0 评论 -
JAVA多线程,面试者的最爱!(转)
多线程 线程:是指进程中的一个执行流程。 线程与进程的区别:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内存和系统资源。 如何创建一个线程? 创建线程有两种方式,如下: 1、 扩展java.lang.Thread类 2、 实现Runnable接口 Thread类代表线程类,它的两个原创 2012-04-05 18:32:39 · 1587 阅读 · 1 评论 -
PIO读取excel文档,java实现
读取excel文件,然后也可以生成excel文件,用java实现,不废话了,直接贴代码和结果。补充一下这个需要引入一个包,要下载一个poi-3.0.jar(直接点击就可以下载)文件。下载完之后就加到classpath就能编译通过,然后就行了。。 我还是说一下步骤吧。。先创建一个工作簿对象new HSSFWorkbook(new FileInputStream(filepath)),然后在原创 2012-05-12 13:21:40 · 10210 阅读 · 2 评论 -
Eclipse启动时fail to create Java Virtual Machine问题的解决
问题描述 一开始我的eclipse还能用,还是好的,然后好像是360提示有个关于JAVA的漏洞,然后我就补了这个漏洞,启动eclipse时居然就启不起来了,提示fail to create Java Virtual Machine这个错误, 于是上网找了答案,找到了解决方法,解决如下: 解决办法 找到eclipse安装目原创 2012-06-04 10:05:23 · 56784 阅读 · 13 评论 -
socket连接,传输文件,读写excel,txt,多线程处理请求
最近写了一个小程序,关于socket连接的,分为客户端和服务端,服务端在指定的端口等待客户端连接,针对不同的客户端建立一个线程去处理请求,客户端则想服务端建立连接,这个可以传输excel文件,也可以生成excel文件,具体看代码吧,注释的挺清楚的。。。一共4个文件。SocketClient.java代表客户端对象,SockeServer.java代表服务端,Connection.java为多线原创 2012-05-16 14:22:36 · 4681 阅读 · 1 评论 -
Unable to locate the Javac Compiler in: C:Program FilesJavajre6..libtools.jar解决办法
在安装了m2eclipe之后,从SVN上导入了一个项目后,经常会报这个错,上网查了资料,发现原因是安装了JDK之后,有两个jre,一个在C:/Program Files/Java/jre6下,一个在C:Program FilesJava/jdk1.6.0_20/jre, 而默认eclipse如果不做改变,会使用前者,而m2eclipse默认会去找JDK下的jre。而且在eclipse的配置文件中对原创 2012-06-07 10:41:35 · 3480 阅读 · 0 评论 -
深挖ThreadLocal
ThreadLocal是什么早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它原创 2014-04-22 16:59:27 · 429217 阅读 · 229 评论