- 博客(105)
- 资源 (2)
- 收藏
- 关注
原创 JAVA对象及属性的内存堆栈管理(通过小程序简单说明)
JAVA在执行过程中会划分4个内存区域(heap、stack、data segment、code segment)代码区(codesegment):java开始执行会把代码加载到code segment区域然后找到main方法开始执行静态区(datasegment): 是存放静态变量字符串常量堆区(heapsegment): 一般由程序员分配释放,存放由new创建的对象和数组,jvm不定时查看这个
2014-10-29 11:43:09 4397
转载 String、StringBuffer和StringBuilder的区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字
2014-07-28 13:43:00 1497
原创 Git管理工具对比(GitBash、EGit、SourceTree)
Git管理工具对比(GitBash、EGit、SourceTree)GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐。EGit是Eclipse的Git插件,最为纠结的一个软件,因为开发时直操作很方便,尤其是有svn开发情节的人更热衷于这样,不过EGit中有很多bug和不人性化的东西,让人吐血,所以一句话EGit并不能解决所有Git
2014-04-28 09:55:39 78808 5
原创 Git工程迁移方法总结(命令行)
Git工程迁移方法总结Git工程迁移方法总结Git最近准备迁移一下位置,这里采用命令行的方式,做如下操作。1. git remote set-url origin 资源库地址这里主要是将本地库与远程的资源库挂钩。用一个图表示:2.接下来面对两种情况,也就是git位置2是否是空地址。a) 如果是空地址,ok很简单。用这个命令:git push ,如果不好使可以使用强推 git push -f当然这是
2014-04-14 10:50:39 22516
转载 Java项目源码为什么要做代码混淆(解释的很好)
代码混淆,是将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。代码混淆的主要目的是为了保护源代码,阻止反向工程。反向工程会带来许多问题,诸如知识产权泄露,程序弱点暴露易受攻击等。使用即时编译技术的语言,如Java、C#所编写的程序更容易受到
2014-04-01 17:39:38 6015 2
原创 Git Bash+EGit在项目中配合使用最常用方法总结(根据场景使用)
最近在项目中使用Git进行代码管理,之前一直用SVN进行管理,现在谈一谈Git在项目中如何与EGit插件配合使用,高效同步开发。使用过SVN一段时间的人,初识Git一定感觉很别扭,发现会遇到各种各样的问题,感觉没有SVN方便,究其原因是还没有领略到Git之美,没有熟练使用Git。因为我在刚开始的时候就有这样的感觉,当深入研究Git一段时间之后才深深的被Git的魅力吸引,慨叹Linux大师深
2014-03-30 16:05:23 8992 2
原创 Spring事务管理与数据库隔离级别的关系(Spring+mysql)
之前写过一篇文章《数据库隔离级别(mysql+Spring)与性能分析 》,里面很多问题写的不是很专业,也不是很有逻辑性,现在重新整理一下,希望对大家有帮助。这部分通过两天时间反复的做实验总算是理清了其中的关系,其中有些部分可能略有偏差,但是相信大家仔细读的话会对对这部分的理解带来很大的帮助。先来总体说一下我对这个问题的理解,用一句话概括:数据库是可以控制事务的传播和隔离级
2014-03-20 15:36:39 13051 3
原创 JavaWeb项目前端规范(采用命名空间使js深度解耦合)
没有规矩不成方圆,一个优秀的代码架构不仅易于开发和维护,而且是一门管理与执行的艺术。这几年来经历了很多项目,对代码之间的强耦合及书写不规范,维护性差等问题深恶痛绝。在这里,通过仔细分析后,结合自己的编码习惯总结了一套适用于javaweb项目的前端书写规范,与大家分享一下。ps:感谢阿海的创意,后期整理如下(附文件下载):一、项目结构这里和其他项目区别不大,我将模板抽离出来,更容易分
2014-03-19 16:55:42 8108 5
原创 数据库隔离级别(mysql+Spring)与性能分析
数据库隔离级别与Spring配置事务的联系及性能影响,以下是个人理解,如果有瑕疵请及时指正。 这里以mysql为例,先明确以下几个问题:一.一般项目如果不自己配置事务的话,一般默认的是autocommit,即执行完一个操作后自动commit,提交事务。(注:事务是绑定在数据库操作上的,也就是当程序执行(statement.excute等操作)转而到数据库层面上的
2014-03-18 23:00:57 4779
转载 B2B、B2C、B2D的简单理解
B2D现在非常流行,顾名思义,B2D 就是指那些以开发者为对象的服务,它们通过 API 等形式“售卖”自己某一方面的特长。B2D(Business to Developer)市场很可能是下一波突破性创业公司爆发的地方,因为大大小小的公司都希望能将时间和精力更多的集中在自己的核心业务上,把其他周边业务的枝枝节节外包给别的专业机构和个人。虽然现在大家对于企业市场寄予厚望,但 B2D 其实还处于市场的培
2014-01-22 14:55:59 8749
转载 序列化与反序列化中serialVersionUID的作用(通俗易懂)
serialVersionUID:字面意思上是序列化的版本号,这个在刚刚接触java编程时,学序列化大家一般都不会注意到,在你一个类序列化后除非你强制去掉了myeclipse中warning的功能,在你实现序列化的类上会有这个警告,点击会出现增加这个版本号。说说这个版本号得作用:就是确保了不同版本之间的兼容性,不仅能够向前兼容,还能够向后兼容,即在版本升级时反序列化仍保持对象的唯一性。它有
2013-10-17 17:56:10 2233
转载 session效率
(1)-不恰当的request.getSession()在HttpServlet中,HttpSession对象通常在request.getSession(true)方法调用时才创建。 HttpSession的使用是有代价的,需要占用服务器资源,本着能不浪费就不浪费的原则,我希望系统中的session都在掌握之中,在需要创建时由 我们的代码明确创建。但是最近在开发中发现,新的session对
2013-06-26 16:02:38 2044
转载 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 3628
原创 Linux服务器下Jenkins+Ant+Tomcat+SVN实现持续集成和部署配置方法
这几天一直搞服务器持续集成和自动化部署这块,总算是成功部署上了,在这里我谈下经验。 公司服务器结构主要是分为:SVN版本控制在一个服务器上,Tomcat应用服务器,Jenkins服务器,当然还有数据库服务器等等。。。 这里我们的思路是,所有开发人员均从SVN服务器上获取代码,也可以提交代码。之前是必须通过人员每天将SVN的最新代码拷贝到Tomcat服务器中。我们想可以省去人
2013-05-30 15:05:18 14637
原创 redirect与dispatcher.forward的区别
这是一个MVC框架,在这里举一个例子来说明请求转发和重定向的区别。用户登录à验证通过之后返回用户列表界面。过程如下:在客户端(浏览器点击登录按钮)第一种思路:请求转发,这种情况只有一个request,可以传递数据。->loginsServlet->queryallServlet->Request.getRequestDispatcher(列表页面).forward();如下
2013-05-01 23:13:54 2086
原创 Cookie和Session的关系(个人理解)
之前,总是使用Session,Cookie接触的比较少,通过这次的项目,使我了解了,这两者的关系与用法。首先先简单聊几句两者的概念:Session是客户端与服务器的会话,session是存储在服务器端的。通常用户登录之后,用户信息存储在session之中。Session在服务器中是有生命周期的。可以在web.xml中进行配置。默认应该是30分钟。Cookie是存储在客户端之中的。Cooki
2013-05-01 23:09:37 1367
原创 JAVA过滤器和拦截器的区别(个人理解)
这里我会从过滤器讲起,先谈谈过滤器与拦截器。在接触Structs框架之前,我们都是以过滤器为常见。过滤器,filter,顾名思义,在请求资源之前,会将请求过滤。一般过滤器是在web.xml中进行配置。其实Structs也是通过过滤器,将请求访问的servlet(.action)进行过滤,进入到structs机制中。过滤器比较常见的使用如过滤掉非法的url(盗链),判断session,用户信
2013-05-01 23:07:36 1887
原创 迅速解决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 5478
转载 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 14182 6
原创 从实际项目中浅谈SSH框架中MVC分层思想的应用与优缺点(一)
最近研究了一下Spring的MVC框架感觉功能很强大,所以想把使用后的感想写出来。本人也不算什么牛人,所以写的理论性不是很强,之前开发了一个基于SSH框架的室内环境监测系统的客户端,说实话结构现在看起来有点乱,尤其是后期功能不断添加之后,更是有点力不从心,在此,为了给一些和我一样在框架里刚刚起步的同学们一点点鄙陋的建议,我把我当时的设计思想和现在一点点感悟写出来,分享给大家。我将从两部分来谈一下我
2012-11-25 10:37:20 9711
转载 java数据库连接为何用class.forName().他和new有什么区别。
在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法。通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作。因此,单单使用Class.forName( )是动态加载类是没有用的,其最终目的是为了实例化对
2012-09-02 21:34:28 2403
转载 Socket编程中,尽量用PrintWriter取代BufferedWriter
简单化德把问题说一下吧!最近试着编写socket聊天小软件。在服务器端和客户端产生一个Socket 后,两边各自用getIputStream()和getOutputStream()方法,构造各自的输入输出流。其中服务器端的Socket ssBufferedReader is=new BufferedReader(new InputStreamReader(ss.getInputSt
2012-06-20 16:50:18 11519 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 11912 3
原创 在Spring中采用声明式方法对Hibernate和JDBC进行统一的事务配置(AOP)
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schema
2012-06-12 10:18:29 1357
转载 自定义Adapter,通过复写getView方法,实现ListView中item背景颜色变化
学习Android编程的各位同学,如果用过listView的话,应该一定知道SimpleAdapter吧,但是系统自带的SimpleAdapter功能有限,有事无法满足我们的需求,这就需要我们来自定义属于自己的SimpleAdapter。举个简单的小例子,就是实现列表背景颜色的交替。效果如下:下面讲讲我是如何实现的。 其实很简单,就是重载SimpleAdapter
2012-06-06 17:07:02 6610 4
转载 Oracle 主键自增 Native Sequence两种方式
在hibernate中实现oracle的自动增长http://kuangbaoxu.javaeye.com/blog/192434关键字: hibernate oracle sequence native 根据hibernate的文档,有两种方式实现实体对象的主键自动增长。 第一种:设置ID的增长策略是sequence,同时指定sequence的名字,最好每个表建一个s
2012-05-10 16:09:19 7783
转载 对Flush原理的个人理解
PS:听了尚学堂老师的课自己总结的,有错误的地方欢迎大家指正。1. 看一下session的结构。l Session中有一个actionQueue队列,其中有几个对象比如Insertions,deletetions等等。当执行完save(),delete()等操作之后,就把想要执行sql对象放在相应的对象中。l Session中还有一个persistenceContex
2012-04-13 20:36:15 1301
转载 Hibernate导出表代码
import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;public class ExportDB { public static void main(String[] args) { //读取hibernate.cfg
2012-04-06 10:18:46 999
原创 对Spring的一些个人理解
1. Spring最主要的就是IOC控制反转。通过IOC容器,配置对象的依赖关系。通过BeanFactory factory=new ClassPathXMlApplicationContext(“….xml”); UserManagerusrManager=(UserManager)factory.getBean(“useManager”);/**
2012-03-31 21:07:57 1072
转载 Hibernate主键生成策略与save()方法是否发sql语句的研究
public class SessionFlushTest extends TestCase { /** * 测试uuid主键生成策略 */ public void testSave1() { Session session = null; Transaction tx = null;
2012-03-16 18:24:59 4016 1
转载 DAO模式图解
DAOFactory:对所有代理类的静态封装,返回代理类。Proxy:是对DAO的实现,里面对impl配置数据库连接,然后对impl进行封装,里面可以进行安全性检查或者添加其他操作。Impl:对实现DAO接口,是接口的具体实现。DAO:是操作的借口,里面传递的参数是vo对象类。VO:相当于表中的记录。
2012-03-15 19:18:23 1485
原创 开启服务器,自动加载类是否需要开辟新的线程研究
有些应用需要在开启服务器的时候自动先加载自己写好的类。比如监听串口通信等等。那么在开启服务钱对类的加载是否需要开辟一个新的线程呢。下面对该想法做了一下测试。1.首先在web.xml添加要加载的类:startupcom.env.persistence.util.DataBufferReader1startup2com.env.persistence.u
2012-03-09 10:39:40 1467
转载 web.xml加载顺序
一1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将转换为键值对,并交给servletContext。 4、容器创建中的类实例,创建监听器。 二 Load-on-startup
2012-03-09 09:50:16 27627 2
原创 学校内网查询到的外网IP,不能做服务器的个人理解
最近做一个javaweb的项目,在家用局域网测试的。一切ok。但是回到学校,用学校内网不可以了。描述一下问题。学校内网。输入ipconfigip显示10.26.249.XXX ----------这个是内网IP然后我百度了一下显示外网ip 61.189.48.XXX --------------- 这个是外网的于是乎 我想拿外网作为服务器的地址 是否可以被
2012-02-28 20:14:42 4365
转载 待续
1.关于read(byte[] b)read(byte[] b) : 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。以整数形式返回实际读取的字节数。在不指定读取的起始点时,默认从流中读取b.length长度的字节值到字节数组中去,完全覆盖字节数组,当然前提是该流长度大于或者等于字节数组,如果小于字节数组就只写入流长度的字节。在输入数据可用、检测到文件末尾或者抛出异常前,此方法
2011-12-26 20:41:11 728
转载 JAVA串口通信详解
浅谈Java串行端口技术协议 串行通讯慨述 串行通讯协议有很多种,像RS232,RS485,RS422,甚至现今流行的USB等都是串行通讯协议。而串行通讯技术的应用无处不在。可能大家见的最多就是电脑的串口与Modem的通讯。记得在PC机刚开始在中国流行起来时(大约是在90年代前五年),那时甚至有人用一条串行线进行两台电脑之间的数据共享。除了这些,手机,PDA,USB
2011-12-26 19:37:22 1925
转载 JAVA Observer
Java 提供了 Observer 模式的默认实现,下面我们就看一下 Java 对 观察者模式的支持。Java 对 观察者模式的支持 主要体现在 Observable 类和 Observer接口。(1) Observable 类代表 被观察者 (java.util.Observable) 主要方法有: void setChanged()
2011-12-26 15:16:46 2404
原创 传统的数据库操作和Hibernate数据库操作,事务的体现
传统的sql操作,对事务其实是默认提交的,如果想对事务进行操作,则按如下的方法:try{ conn.setAutoCommit(false); //设置不会自动提交 stmt = conn.createStatement(); stmt.executeQuery("SELECT * FROM temp_info"); stmt.executeUpdate("UPDATE t
2011-12-25 09:58:10 984
原创 Spring+Hibernate集成后事务与Session的一些理解。
Spring的配置文件,在web.xml加载时,就按照类得映射给动态注入了,而且对于其中需要加载的hibernate配置文件,也只加载一次,就把sessionFactory注入给对象中。然后在类中如果需要取得sessionFactory,只需继承HibernateDaoSupport来取得session.不需要在类中写set方法,因为由HibernateDaoSupport中提供。以往我们单独
2011-12-25 09:00:28 6873
javaweb前端规范(js解耦和)
2014-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人