摘要:heap:堆stack:栈 以前在学习的时候经常听见的两个名字,只知道是内存中的空间,但一直没有去深究堆和栈的区别。趁着周末好好来理顺一下,下面的内容绝大部分参考网上其他人的资料,中间夹杂了自己的一些认识见解,可能有偏差的地方,以后再慢慢学习。 heap(堆): heap是运行时数据区,顾名思义就是在程序运行期间动态分配内存空间,有垃圾回收来负责空间的释放。也正是由于动态内存的分配,导致存取速度比较慢。 stack(栈): stack的存取速度比heap要快,仅次于寄存器。栈中数据可共享。栈中主要存放基本数据类型和对象句柄。缺点是栈中数据大小和生命周期是确定的,不灵活。 栈的最大特点就是数据共
阅读全文
摘要:从前台jsp表单拿到数据,写入本地临时文件中。本地运行没问题,部署到服务器端,出现乱码。服务器环境win2003原始代码:1 FileWriter writer = new FileWriter(path);2 3 writer.write(fileContent)解决后的:1 Writer writer = new BufferedWriter(2 new OutputStreamWriter(3 new FileOutputStream(path), "UTF-8"));4 5 ...
阅读全文
摘要:今天在测试struts2的时候,启动tomcat6报错:Unrecognized Windows Sockets error: 0: JVM_Bind很明显是端口被占用导致的。以前为了防止端口冲突问题把tomcat的端口改成了8888,那么就先来看看到底是什么占用了8888这个端口:原来是6668这个进程占用着,那么再来看看6668是什么:- -原来是坑爹的迅雷,果断在任务管理器找到相应的进程,结束。重新启动tomcat, 启动正常。
阅读全文
摘要:今天在做Jmock测试时候,报如下异常:java.lang.SecurityException: class "org.hamcrest.TypeSafeMatcher"'s signer information does not match signer information of other classes in the same package搜了下网上的解决方案,都是说什么顺序不对。。。其实就是包冲突,如果是Eclipse自带的JUnit架包包含了一个org.hamcrest.core.jar,Jmock里面也有一个同样的架包,两个冲突了。可以把eclip
阅读全文
摘要:1. 配置struts时候,要记得一件准备工作:web.xml中配置struts的监听器:1 <filter>2 <filter-name>struts2</filter-name>3 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>4 </filter>5 <filter-mapping>6 <filter-name>struts2</filte
阅读全文
摘要:今天的问题和解决方案汇总:1.因为表中有一些字段是有默认值的,那么一定要在映射文件中配置dynamic-insert="true" 。否则,save的时候会报错,因为一些字段没有赋值。配置了动态插入之后,hibernate可以通过有值的属性字段来动态的插入,而不是所有字段都插入。一定要注意的是:<property>配置的数据库可以插入默认值的字段,一定不能加not-null="true" ,否则动态插入失败!2. 关于dynamic-update="true" 动态更新,目前用的版本是hibernate3.2,并没有实现这
阅读全文
摘要:今天在测hibernate的时候,一直出现Unable to instantiate default tuplizer这个错误,找不到entity。初步猜测是映射文件的错误,看了一下mapping,好像没什么问题,删掉了几个无关紧要的配置,也还是会提示错误。class名没有错,加上包名还是有问题。忽然想到刚才为了测试的单纯性,去掉了所有的外键关系,把POJO中的外键属性也去掉了,但是映射文件还没有删掉。删掉之后,测试通过。映射文件真的很纠结,昨天做了一个many- to -one的测试,因为配置中的pojo类名写错,直接导致整个测试不通过。就连昨天已经测通过的也跑不起来一直报异常,说找不到se
阅读全文
摘要:简单的说下java连接SQL数据库的步骤:1. 首先要有一个jtds.jar数据库驱动包。2. 可先在项目下新建一个Folder,取名为lib,把jtds驱动包放到lib文件夹下。3. 在项目上右键 build path → add External Archive 找到自己项目下刚才新建的lib文件夹,把里面的驱动文件加载进来。 4. 编写一个DBHelp的类来链接数据库数据库连接失败的原因(本例子中是SQL2005):1. 查看SQL服务是否开启 可先用window登录方式检查SQL是否可以连接。若失败可能是服务没有开启 或者 数据库安装有问题。2. 保证windows登录和SQL登录..
阅读全文
摘要:默认没有修改的情况下,是部署在项目文件夹下的,很难找。并且打不开localhost:8080自带页面,可从Eclipse修改项目自动部署路径到Tomcat下:1.先移除server中的项目,右键Remove。2. 启动Tomcat(若第3步选择项呈灰色,那就是Tomcat没有启用)3. 双击或者右键Server →Open打开Tomcat配置界面,Server Locations选择第二项,下面的Deploy path一定要写webapps4. 修改完毕后,在项目上右键,选择Run As → Run on Server ,会提示刚才修改的是否保存,选择是。这样就自动部署到Tomcat下了。
阅读全文
摘要:Iterator与ListIterator迭代器模式给容器的应用带来以下好处:支持以不同的方式遍历一个容器角色。根据实现方式的不同,效果上会有差别。简化了容器的接口。但是在java Collection中为了提高可扩展性,容器还是提供了遍历的接口。对同一个容器对象,可以同时进行多个遍历。因为遍历状态是保存在每一个迭代器对象中的。迭代器模式的适用范围:访问一个容器对象的内容而无需暴露它的内部表示。支持对容器对象的多种遍历。为遍历不同的容器结构提供一个统一的接口(多态迭代)。Iterator的最大威力:能够将遍历序列的操作与序列底层的结构分离。迭代器统一了对容器的访问方式。Collection实现
阅读全文
摘要:List接口List扩展于Collection,添加了一些方法,可以在中间插入和移除元素。两种类型的List:1.ArrayList:擅长于随机访问元素2.LinkedList : 插入和删除操作比ArrayList代价更低。ArrayList增加、删除、修改、插入元素的Demo: 1 import java.util.ArrayList; 2 import java.util.Arrays; 3 import java.util.List; 4 5 public class TestArray02 { 6 public static void main(String[] args)...
阅读全文
摘要:容器类:用来解决数组具有固定尺寸而使得灵活性受限的问题。基本的容器类(集合类)有:List、Set、Queue、Map。Java容器类类库的用途是用来“保存对象”,这分为两个不同的大类:1.Collection(集合的根接口)2.Map:每个槽内保存了两个对象,即键/值对。它们的区别在于容器中每个“槽”可以保存的元素个数。Collection的每个槽只能保存一个元素。此类容器包括:1)List:以特定的顺序保存一组元素2)Set:元素不能重复3)Queue:只允许在容器的一“端”插入对象,并从另一“端”移除对象最早在学习泛型类的时候接触过的容器类有:ArrayList。使用add()和get(
阅读全文
摘要:总结一下今天学习防盗链Filter的一些知识点: 防盗链要实现的是这样一种效果:比如说其他的网站引用本网站的图片资源,将会显示一个错误图片,只有是本网站内的网页引用时候,图片才可以正常显示。这种应该是比较常见的,例如经常逛论坛的人会看到别人贴的图显示出来是一个错误图片,如百度图片不可以外链等,用到的就是这个Filter。 首先说下Filter的工作区域是在客户端请求request抵达Servlet之前和服务器响应response在从Servlet抵达客户端浏览器之前。即FilterChain起到了一个过滤网的作用。所以在显示图片之前,先来验证图片的来源,再决定要不要正常显示该图片。 那么如何判
阅读全文