![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 89
hongshan50
我是要成为海贼王的男人。
展开
-
vector
Vector用法小结 /** * 演示Vector的使用。包括Vector的创建、向Vector中添加元素、从Vector中删除元素、 * 统计Vector中元素的个数和遍历Vector中的元素。 */ ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程,还是用Vector比较好一些import java.util.*;/** * 演示Vector的使转载 2010-04-16 15:13:00 · 793 阅读 · 0 评论 -
从实际项目中浅谈SSH框架中MVC分层思想的应用与优缺点(一)
最近研究了一下Spring的MVC框架感觉功能很强大,所以想把使用后的感想写出来。本人也不算什么牛人,所以写的理论性不是很强,之前开发了一个基于SSH框架的室内环境监测系统的客户端,说实话结构现在看起来有点乱,尤其是后期功能不断添加之后,更是有点力不从心,在此,为了给一些和我一样在框架里刚刚起步的同学们一点点鄙陋的建议,我把我当时的设计思想和现在一点点感悟写出来,分享给大家。我将从两部分来谈一下我原创 2012-11-25 10:37:20 · 9696 阅读 · 0 评论 -
import javax.servlet 出错
Error:The import javax.servlet cannot be resolvedThe import javax.servlet.http.HttpServletRequest cannot be resolvedDescription:我们经常会把别人的项目copy到自己这里进行二次开发或者参考,有的时候会发生上面的错误,即eclipse项目里我们导入的转载 2012-12-14 09:47:52 · 14166 阅读 · 6 评论 -
迅速解决resin或者tomcat启动闪一下就消失的问题
通过抓屏看到的线索:发现肯定是格式问题导致的原因。所以可以肯定照成错误的原因一定是你的环境变量没有设置好导致的。在这里我写一下我的标准版的配置:CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jarJAVA_HOME:C:\Program Files\Java\jdk1.7.0_09Path:%JAVA_HOME%\b原创 2013-01-04 21:26:01 · 5462 阅读 · 0 评论 -
redirect与dispatcher.forward的区别
这是一个MVC框架,在这里举一个例子来说明请求转发和重定向的区别。用户登录à验证通过之后返回用户列表界面。过程如下:在客户端(浏览器点击登录按钮)第一种思路:请求转发,这种情况只有一个request,可以传递数据。->loginsServlet->queryallServlet->Request.getRequestDispatcher(列表页面).forward();如下原创 2013-05-01 23:13:54 · 2077 阅读 · 0 评论 -
JAVA过滤器和拦截器的区别(个人理解)
这里我会从过滤器讲起,先谈谈过滤器与拦截器。在接触Structs框架之前,我们都是以过滤器为常见。过滤器,filter,顾名思义,在请求资源之前,会将请求过滤。一般过滤器是在web.xml中进行配置。其实Structs也是通过过滤器,将请求访问的servlet(.action)进行过滤,进入到structs机制中。过滤器比较常见的使用如过滤掉非法的url(盗链),判断session,用户信原创 2013-05-01 23:07:36 · 1879 阅读 · 0 评论 -
Cookie和Session的关系(个人理解)
之前,总是使用Session,Cookie接触的比较少,通过这次的项目,使我了解了,这两者的关系与用法。首先先简单聊几句两者的概念:Session是客户端与服务器的会话,session是存储在服务器端的。通常用户登录之后,用户信息存储在session之中。Session在服务器中是有生命周期的。可以在web.xml中进行配置。默认应该是30分钟。Cookie是存储在客户端之中的。Cooki原创 2013-05-01 23:09:37 · 1359 阅读 · 0 评论 -
Linux服务器下Jenkins+Ant+Tomcat+SVN实现持续集成和部署配置方法
这几天一直搞服务器持续集成和自动化部署这块,总算是成功部署上了,在这里我谈下经验。 公司服务器结构主要是分为:SVN版本控制在一个服务器上,Tomcat应用服务器,Jenkins服务器,当然还有数据库服务器等等。。。 这里我们的思路是,所有开发人员均从SVN服务器上获取代码,也可以提交代码。之前是必须通过人员每天将SVN的最新代码拷贝到Tomcat服务器中。我们想可以省去人原创 2013-05-30 15:05:18 · 14631 阅读 · 0 评论 -
Eclipse安装反编译插件Jodeclipse或者是JadClipse方法
Jodeclipse 是Jode的Eclipse插件,JadClipse是Jad的Eclipse插件,它们都是非常好的反编译插件。Jode Eclipse Plugin 1.0.5 for Eclipse version 3.1 / 3.2安装方法(1)从如下地址下载:http://sourceforge.net/projects/jodeeclipse把下载下来的文件jode转载 2013-06-05 10:40:31 · 3617 阅读 · 0 评论 -
session效率
(1)-不恰当的request.getSession()在HttpServlet中,HttpSession对象通常在request.getSession(true)方法调用时才创建。 HttpSession的使用是有代价的,需要占用服务器资源,本着能不浪费就不浪费的原则,我希望系统中的session都在掌握之中,在需要创建时由 我们的代码明确创建。但是最近在开发中发现,新的session对转载 2013-06-26 16:02:38 · 2033 阅读 · 0 评论 -
序列化与反序列化中serialVersionUID的作用(通俗易懂)
serialVersionUID:字面意思上是序列化的版本号,这个在刚刚接触java编程时,学序列化大家一般都不会注意到,在你一个类序列化后除非你强制去掉了myeclipse中warning的功能,在你实现序列化的类上会有这个警告,点击会出现增加这个版本号。说说这个版本号得作用:就是确保了不同版本之间的兼容性,不仅能够向前兼容,还能够向后兼容,即在版本升级时反序列化仍保持对象的唯一性。它有转载 2013-10-17 17:56:10 · 2221 阅读 · 0 评论 -
Git Bash+EGit在项目中配合使用最常用方法总结(根据场景使用)
最近在项目中使用Git进行代码管理,之前一直用SVN进行管理,现在谈一谈Git在项目中如何与EGit插件配合使用,高效同步开发。使用过SVN一段时间的人,初识Git一定感觉很别扭,发现会遇到各种各样的问题,感觉没有SVN方便,究其原因是还没有领略到Git之美,没有熟练使用Git。因为我在刚开始的时候就有这样的感觉,当深入研究Git一段时间之后才深深的被Git的魅力吸引,慨叹Linux大师深原创 2014-03-30 16:05:23 · 8958 阅读 · 2 评论 -
JavaWeb项目前端规范(采用命名空间使js深度解耦合)
没有规矩不成方圆,一个优秀的代码架构不仅易于开发和维护,而且是一门管理与执行的艺术。这几年来经历了很多项目,对代码之间的强耦合及书写不规范,维护性差等问题深恶痛绝。在这里,通过仔细分析后,结合自己的编码习惯总结了一套适用于javaweb项目的前端书写规范,与大家分享一下。ps:感谢阿海的创意,后期整理如下(附文件下载):一、项目结构这里和其他项目区别不大,我将模板抽离出来,更容易分原创 2014-03-19 16:55:42 · 8094 阅读 · 5 评论 -
Spring事务管理与数据库隔离级别的关系(Spring+mysql)
之前写过一篇文章《数据库隔离级别(mysql+Spring)与性能分析 》,里面很多问题写的不是很专业,也不是很有逻辑性,现在重新整理一下,希望对大家有帮助。这部分通过两天时间反复的做实验总算是理清了其中的关系,其中有些部分可能略有偏差,但是相信大家仔细读的话会对对这部分的理解带来很大的帮助。先来总体说一下我对这个问题的理解,用一句话概括:数据库是可以控制事务的传播和隔离级原创 2014-03-20 15:36:39 · 13034 阅读 · 3 评论 -
Java项目源码为什么要做代码混淆(解释的很好)
代码混淆,是将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。代码混淆的主要目的是为了保护源代码,阻止反向工程。反向工程会带来许多问题,诸如知识产权泄露,程序弱点暴露易受攻击等。使用即时编译技术的语言,如Java、C#所编写的程序更容易受到转载 2014-04-01 17:39:38 · 5989 阅读 · 2 评论 -
String、StringBuffer和StringBuilder的区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字转载 2014-07-28 13:43:00 · 1480 阅读 · 0 评论 -
JAVA对象及属性的内存堆栈管理(通过小程序简单说明)
JAVA在执行过程中会划分4个内存区域(heap、stack、data segment、code segment)代码区(codesegment):java开始执行会把代码加载到code segment区域然后找到main方法开始执行静态区(datasegment): 是存放静态变量字符串常量堆区(heapsegment): 一般由程序员分配释放,存放由new创建的对象和数组,jvm不定时查看这个原创 2014-10-29 11:43:09 · 4381 阅读 · 0 评论 -
java数据库连接为何用class.forName().他和new有什么区别。
在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法。通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作。因此,单单使用Class.forName( )是动态加载类是没有用的,其最终目的是为了实例化对转载 2012-09-02 21:34:28 · 2389 阅读 · 0 评论 -
Socket编程中,尽量用PrintWriter取代BufferedWriter
简单化德把问题说一下吧!最近试着编写socket聊天小软件。在服务器端和客户端产生一个Socket 后,两边各自用getIputStream()和getOutputStream()方法,构造各自的输入输出流。其中服务器端的Socket ssBufferedReader is=new BufferedReader(new InputStreamReader(ss.getInputSt转载 2012-06-20 16:50:18 · 11503 阅读 · 6 评论 -
Eclipse下好使,但是cmd下执行java运行class文件提示Exception in thread "main" java.lang.NoClassDefFoundError问题
其实遇到这个问题,我想大概不会是几个低级错误照成的,网上主要说的几点是:1.注意大小写。2.注意别java TCPSocket.clas,别加class。3.注意路径。个人感觉也就是第三个需要注意,前两个我就不说了。关于路径问题。注意,不用像网上说的,非要把你class的路径配置到classpath下,只要在classpath的配置最前面加上“.;”即可。“.”代表当前目录下即可,“;”代原创 2012-06-15 11:57:21 · 11895 阅读 · 3 评论 -
理解TestCase类(转)
<br />TestCase类在整个JUnit框架中处于核心的地位。你可以在junit.framework包中发现TestCase这个类。在JUnit开发人员当中,甚至是在一些高级的程序员当中,都有一个疑惑,那就是测试用例(test case)和TestCase类之间的关系。事实上,这是个命名冲突问题。“测试用例”(test case)这个术语通常指的是单个的测试,通过编码来校验某个特定的行为。那么,将多个测试用例都收集到一个类中,这个类是TestCase的子类,而且每一个测试用例都被实现为TestCase转载 2010-09-20 11:25:00 · 1644 阅读 · 0 评论 -
Junit TestCase
<br /> 1、将junit的jar包放在工程的classpath中<br />2、创建Junit Test Case,其类继承自junit.framework.TestCase,选择要测试的类,点击“下一步”,选择所要测试的类的方法,在写测试方法时要遇到assert的一系列方法判断测试结果正确与否(测试类的测试方法应该以test开头,必须是public void,并且无参的):<br />如:<br />原类:<br />public class SampleCalculator { <br />pu转载 2010-09-20 11:34:00 · 7667 阅读 · 1 评论 -
myeclipse中console(控制台)显示不完全
<br />可以增加控制台显示条数:<br />Window->Preferences->Run/Debug/Console->Console buffer size原创 2010-09-20 15:51:00 · 10641 阅读 · 0 评论 -
Myeclipse中package,source folder,folder区别
在eclipse下,package,source folder,folder都是文件夹. <br /><br />它们的区别如下: <br />package:当你在建立一个package时,它自动建立到source folder下,也只能建立在这个目录之下. <br /><br />source folder:存放java源代码的文件夹,当然也包括一些package文件夹,还可以包含其他文件. <br />项目构建后,source folder里面的java自动编译成class文件到相应的bin文转载 2011-01-27 21:27:00 · 2498 阅读 · 0 评论 -
resin.conf 配置文件说明(中文详解)
Resin3.1下resin.conf配置文件说明xmlns:resin="http://caucho.com/ns/resin/core">转载 2011-02-13 22:31:00 · 3548 阅读 · 0 评论 -
resin报错问题归纳
<br />关于Resin的问题:<br />1. 首先下载resin。<br />2. 关注一下resin里的配置文件。(/ conf / resin.conf)<br />要注意配置一下几个地方:<br />1. 端口问题,对于已有的Internet对口,或则Tomcat端口不要占用,我用的是90.<br /><!-- The http port --><br /><http server-id="" host="*" port="90"/><br />2.原创 2011-02-13 22:47:00 · 3763 阅读 · 0 评论 -
JAVA类中static用法
Java 类中类属性 (static 变量) 和对象属性 (非 static 变量) 的初始化顺序可以用如下程序测试:public class Test {static String a = "string-a";static String b;String c = "stirng-c";String d;static {printStatic("before static");b = "string-b";printStatic("after static");}public static voi转载 2011-02-18 22:02:00 · 1171 阅读 · 0 评论 -
创建自己的Liberaries的步骤
<br />1.Windows-Preferences-Java-Build Path-User Liberaries<br />2.点击右侧new,创建自己的类库名。注意:下面的System libraries 不要勾选。<br />3.点击新建的库,点击右侧Add Jar,添加进去你的jar.然后ok.<br />4.当需要引用你自己的liberaries时,在工程上右键,点击Build Path-Configure bulid path.<br />5.在右边选择Add Library,选择User原创 2011-02-17 00:02:00 · 1044 阅读 · 0 评论 -
Java线程总结
1.线程定义.线程:一个程序中不同的执行路径。进程是一个静态的概念,所谓的进程在执行是指进程中的线程在进行。在一个时间点上,一个cpu只有一个线程在运行。(单核)2.Java里面线程创建两种方式:package test;public class TestThread1 {原创 2011-07-19 14:04:40 · 689 阅读 · 0 评论 -
关于JAVA匿名内部类我的理解,举一个小例子阐述。
对于匿名内部类究竟是怎么回事,谈谈我自己的理解。只有带有抽象方法,才提到匿名内部类。比如接口之中必须有抽象方法,只不过省略了abstract关键字,还有抽象类中也有抽象方法.对于它到底是什么,我是这么理解的。比如说一个接口,现在有一个函数,想用到这个接口的实例作为参数,但原创 2011-09-17 20:05:23 · 1715 阅读 · 1 评论 -
JAVA串口通信详解
浅谈Java串行端口技术协议 串行通讯慨述 串行通讯协议有很多种,像RS232,RS485,RS422,甚至现今流行的USB等都是串行通讯协议。而串行通讯技术的应用无处不在。可能大家见的最多就是电脑的串口与Modem的通讯。记得在PC机刚开始在中国流行起来时(大约是在90年代前五年),那时甚至有人用一条串行线进行两台电脑之间的数据共享。除了这些,手机,PDA,USB转载 2011-12-26 19:37:22 · 1906 阅读 · 0 评论 -
待续
1.关于read(byte[] b)read(byte[] b) : 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。以整数形式返回实际读取的字节数。在不指定读取的起始点时,默认从流中读取b.length长度的字节值到字节数组中去,完全覆盖字节数组,当然前提是该流长度大于或者等于字节数组,如果小于字节数组就只写入流长度的字节。在输入数据可用、检测到文件末尾或者抛出异常前,此方法转载 2011-12-26 20:41:11 · 715 阅读 · 0 评论 -
JAVA Observer
Java 提供了 Observer 模式的默认实现,下面我们就看一下 Java 对 观察者模式的支持。Java 对 观察者模式的支持 主要体现在 Observable 类和 Observer接口。(1) Observable 类代表 被观察者 (java.util.Observable) 主要方法有: void setChanged()转载 2011-12-26 15:16:46 · 2392 阅读 · 0 评论 -
Java输入输出流小结
Java输入输出流总结:输入输出流可以按不同角度进行分类:1.按数据流方向分为输入流输出流2.按处理数据单位可以分为字符流和字节流(stream、reader)3.按功能不同分为节点流和处理流一.先看几个例子:(字符流与字节流)(1)package test.io;import java.io.FileInputStream;import j原创 2011-07-25 11:10:48 · 1066 阅读 · 0 评论 -
java数组定义方法
数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素。§5.1一维数组一、一维数组的定义type arrayName[];其中类型(type)可以为Java中任意的数据类型,包括简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量。例如:int intArray[];声明了一个转载 2010-04-10 20:13:00 · 12418 阅读 · 3 评论 -
web.xml加载顺序
一1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将转换为键值对,并交给servletContext。 4、容器创建中的类实例,创建监听器。 二 Load-on-startup转载 2012-03-09 09:50:16 · 27593 阅读 · 2 评论 -
JAVA Static方法与单例模式的理解
JAVA Static方法与单例模式的理解原创 2014-11-03 16:40:31 · 14387 阅读 · 3 评论