自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

web小菜鸡的专栏

专注web架构30年

  • 博客(43)
  • 资源 (4)
  • 收藏
  • 关注

原创 虚拟机类加载机制

类从被加载到虚拟机内存,到卸载出内存为止,经历了7个阶段:加载、验证、准备、解析、初始化、使用、卸载。其中验证、准备、解析统称为连接。解析有时候在初始化后面,这是为了支持java语言的动态绑定。加载:加载需要完成以下三件事 通过一个类的全限定名来获取定义此类的二进制字节流; 将这个字节流所代表的静态储存结构转化为方法区运行时数据结构; 在内存中生存一个代表这个类的java.long.Class

2016-06-04 20:02:33 360

原创 双亲委派机制

定义:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制工作机制 类装载器就是寻找类的字节码文件,并构造出类在JVM内部表示的对象组件。在Java中,类装载器把一个类装入JVM中,要经过以下步骤:(1) 装载:查找和导入Class文件;(2) 链接:把类的二进制数据合并到JRE中;校验:检查载入

2016-06-01 14:37:56 1140

原创 垃圾收集器介绍

1.Serial收集器Serial是最基本历史最悠久的收集器,曾经(在JDK1.3.1之前)是虚拟机新生代收集的唯一选择。它是单线程收集器。单线程的含义是指他只会使用一个CPU或者一条收集线程来完成收集工作,而且在它进行收集的时候,必须暂停其他所有的工作线程。虽说Serial收集器对于商业的大型虚拟机不适用,但是确实Client模式下默认的新生代收集器。因为它简单高效。同时桌面端的新生代不会太大,回

2016-06-01 14:02:43 549

原创 分代回收机制

分代收集算法是目前大部分JVM的垃圾收集器采用的算法。它的核心思想是根据对象存活的生命周期将内存划分为若干个不同的区域。一般情况下将堆区划分为老年代(Tenured Generation)和新生代(Young Generation),老年代的特点是每次垃圾收集时只有少量对象需要被回收,而新生代的特点是每次垃圾回收时都有大量的对象需要被回收,那么就可以根据不同代的特点采取最适合的收集算法。目前大部分

2016-05-31 15:29:23 2031 1

原创 JAVA虚拟机内存机制

1、Java内存区域划分: 运行时的数据区:方法区和堆(各个线程共享的内存区域),程序计数器、Java虚拟机栈和本地方法栈(线程私有的)程序计数器:当前线程所执行字节码的行号指示器,字节码解释器就是通过改变计算器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理和线程恢复都需要依赖计数器完成。如果线程执行的是一个java方法,计数器记录的是正在执行的虚拟机字节码指令的地址;如果

2016-05-31 14:53:39 416

原创 单例模式

1.定义 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例 2. 懒汉式实现单例 //懒汉式单例类.在第一次调用的时候实例化自己 public class Singleton { private Singleton() {} private static Singleton instance=nul

2016-05-31 14:14:18 251

原创 事务性质和隔离级别

事务的性质和隔离级别事务的三个基本要素:ACID事务:是一系列的数据库操作,是数据库应用的基本逻辑单位原子性:即不可分割性,事务要么全部被执行,要么就全部不被执行。一致性或可串性:事务的执行使得数据库从一种正确状态转换成另一种正确状态。隔离性:在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务。持久性:事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障

2016-04-30 22:07:59 309

原创 drop,truncate与delete的区别

truncate和 delete只删除数据不删除表的结构(定义),truncate当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。 truncate 删除数据时不记录日志,其他都记录日志delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发. truncate,drop是ddl, 操作立即

2016-04-29 08:58:50 395

原创 字符流和字节流

字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点。所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的

2016-04-29 08:55:17 265

原创 LinkedList详解

LinkedList详解LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的类实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。实现Deque接口,可以双向访问链表LinkedList的构

2016-04-29 08:53:41 863

原创 ArrayList类详解

ArrayList类ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List)实现的接口和继承的类函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类,它的容量是自动增长的。ArrayList实现了Serializable接口,因此它支持序

2016-04-29 08:38:57 481

原创 序列化与反序列化

序列化与反序列化序列化: 将数据结构或对象转换成字节流的形式的过程 反序列化:将在序列化过程中所生成的字节流转换成数据结构或者对象的过程在OSI七层协议模型中展现层(Presentation Layer)的主要功能是把应用层的对象转换成一段连续的二进制串,或者反过来,把二进制串转换成应用层的对象–这两个功能就是序列化和反序列化。如何实现java对象的序列化和反序列化:a.相应的对象实现了序列化接口

2016-04-29 08:26:00 354

原创 演示java内存泄漏(通过HashSet实现)

import java.util.HashSet;class Person{ String name;//为了演示方便就不私有化了 int age; Person(String name,int age) { this.name=name; this.age=age;

2015-10-16 17:32:50 446

原创 SQL SERVER的ROWNUMBER分页

例子如下ALTER PROC [dbo].[BorrowFlowUnderlease_GetAll]/*用途:分页获取所有转借信息作者:***时间:2015-5-1测试用例:EXEC BorrowFlowUnderlease_GetAll 1,"flowID LIKE '%9%'",10*/@currPage int = 1, --->当前页码(即top currPage)@

2015-10-08 11:00:56 446

原创 你不知道的sql小知识

1、sql别名使用把一个表中若干列组合成新的列SELECT CustomerName, Address+', '+City+', '+PostalCode+', '+Country AS AddressFROM Customers;用concat函数连接SELECT CustomerName, CONCAT(Address,', ',City,', ',PostalCode,', ',Countr

2015-09-25 16:35:46 472

原创 sql server2005分页rownumber()

获取tb_bottleInfo 的第一页的5条记录select * from (select *,ROW_NUMBER() OVER(Order by ID ASC ) AS RowNumber from tb_bottleInfo ) as b where RowNumber BETWEEN 1 and 5 与其他表联合查询分页select * from (select *,ROW_NUMBE

2015-09-24 16:27:37 343

转载 Java生成2维码源码

参考http://blog.csdn.net/lmb55/article/details/46039445此博客@WebServlet(“/PrintTwoBarCode”)//对servlet加注解,可以不用在xml配置servlet public class PrintTwoBarCode extends HttpServlet { private static final long

2015-09-17 15:58:45 629

原创 Java增强循环

1、使用interator遍历public class EnhancedLoop { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("a");list.add("b");list.add("c"); L

2015-06-09 21:07:12 508

原创 java可变参数

public class Varable { public int add(int i,int…js){ int sum = i; for(int j=0;j

2015-06-09 20:46:24 366

原创 Java程序员的6个级别

笔记:只记录本人目前不太熟悉的java技能 1、普通程序员:Linux下java程序的部署和开发,异常的编写,输入输出流和多线程,正则表达式、XML和属性文件。Socket编程和NIO非阻塞Socket编程, 2、高级软件工程师:javaweb分布式开发技术,JTA,JAAS,JNDIJavamail,JMS,JCA,JbossAS,weblogic,webSphere 3、javaee系统架

2015-06-09 20:26:30 3278

转载 匿名内部类的使用

1、实现抽象类的抽象方法abstract class Person{ abstract public void eat();}class Child extends Person{ @Override public void eat() { System.out.println("child eat"); }}public class Demo

2015-06-09 20:12:55 326

原创 垃圾收集算法

1、 标记-清除算法 最基础的垃圾收集算法,是其他收集算法的基础,分为标记和清除俩阶段,先标记待回收的对象,在进行回收。主要有俩个缺点:1、效率不高,2、空间问题,标记清除之后会有大量的内存碎片,以致于之后分配大对象时无法找到足够的连续的内存空间而不得不提前触发另一次垃圾回收行为。 2、 复制算法 为了解决效率和内存碎片问题,复制算法把内存划为大小相等的俩块,每次只使用其中的一块,等一块使

2015-06-04 18:18:20 297

原创 垃圾回收的finalize方法使用

在跟搜索算法不可大的对象在GC时,至少要经过俩次标记过程才能真正的死亡,第一次标记和筛选时判断对象是否有必要执行finalize方法,当对象没有重写finalize方法或者finalize方法被虚拟机调用过,虚拟机将这俩种方法认为没有必要在执行finalize方法。如果有必要执行,这个对象将被放置在一个F_Queue队列中,并由一条虚拟机自动建立的、低优先级的Finalizer线程去执行。但并不保

2015-06-04 18:17:23 680

原创 三层架构的电力系统

1.**使用hibernate,写持久化类,映射文件,hibernate配置文件** <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">hi

2015-03-20 11:51:53 798

原创 三层架构的电力系统

使用hibernate,struts2,spring开发电力系统

2015-03-20 11:49:02 680

原创 用户注册的三层架构问题

1、首先最简单的三层,jsp,service,dao层,jsp提交表单,service处理表单信息,dao用来和数据库交互2、引入hibernate,dao中与数据库的交互从比较繁杂的sql语句变成hibernate的增删改查的简单操作3、引入接口,service.impl实现service接口,dao.impl实现dao接口,这里可以引入spring的依赖注入,配置如下   

2015-01-27 16:28:56 1167

原创 关于新版本struts2.3.16出现乱码问题

首要处理是把所有格式改成utf-8  struts2.3.16.3亲测可用

2015-01-27 11:26:05 813

原创 关于txManager和txAdvice,hibernateTemplate和HibernateDaoSupport

//表示前缀为add的方法执行(省去填写transaction开始和提交的语句) name="get*" propagation="SUPPORTS" read-only="true"/>//表示只读            在xml中加入这些,可以省去填写transaction开始和提交的语句,直接可以进行增删改查操作除此之外还要在增删改查的方法上加注释@Trans

2015-01-18 16:16:48 783

原创 在spring配置DataSource数据源进行数据库操作及spring结合hibernate操作

@Resourcepublic void setDataSource(DataSource dataSource) {this.dataSource = dataSource;}使用setter注入datasource;通过Connection conn = dataSource.getConnection();获得连接 //主义使用的是hibernate4而不

2014-12-14 22:37:27 784

转载 cglib实现动态代理

JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK动态代理与CGLib动态代理均是实现Spring AOP的基础。   简单的实现举例:这是一个需要被代理的类,也就是父类

2014-12-14 22:13:18 523

原创 spring中动态代理的实现(annotation形式实现)

applicationContext.xml中添加,然后@Aspect@Componentpublic class LogInterceptor{}相当于implements InvocationHandler@Pointcut("execution(public * com.gxk.service..*.my(..))")public void myMethod(){}

2014-12-13 22:54:09 718

原创 动态代理

public class LogInterceptor implements InvocationHandler{private Object target;public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {beforeMethod(method);//在被代理对象的方

2014-12-13 22:52:09 462

原创 spring annotation

@Autowired自动装配@Autowiredpublic void setUserDAO(UserDAO userDAO) {this.userDAO = userDAO;}默认按类型寻找,然后会去xml文件中自动寻找跟UserDAO(第一个字母小写也就是userDAO)项目的bean,赋值给userDAO。如果需要指定需找bean的名称,则添加@Qualifier("u");

2014-12-13 16:04:14 484

转载 Spring BeanFactory实例化Bean的过程

Spring BeanFactory实例化Bean的过程  Bean的实例化是Bean生命周期的一个非常重要的环节,一般来说,初始化后,就不再改变了,直到bean被从BeanFactory中显式的移除。 当从BeanFactory中通过getBean()方法获取一个bean的时候,BeanFactory会经过如下的步骤来构建Bean的实例,这正是实例化Bea

2014-12-12 19:24:20 485

原创 批量删除

String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>      ">        My JSP 'delete.jsp

2014-12-09 19:14:07 462

原创 Struts2获取request,session,application几种方法

package com.bjsxt.struts2.user.action;import java.util.Map;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class LoginAction1 exten

2014-11-25 19:41:08 482

原创 struts2验证

this,addFieldError( "person.firstName", "First name is required." )

2014-11-25 19:00:47 432

原创 使用domainmodel和modeldriver

使用modeldriver时     使用action属性传递参数添加

2014-11-25 11:29:23 540

转载 struts2拦截器使用

package name="testLogin" namespace="/" extends="struts-default">                    interceptors>              interceptor name="myInterceptor" class="com.interceptor.MyInterceptor">interceptor>      

2014-11-24 16:26:54 482

原创 Struts2使用动态action(感叹号方式)遇到的问题及解决办法

首先是xml<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="htt

2014-11-21 20:17:57 1349

密集人群中的行人检测

行人检测的好文章,密集人群中的行人检测,机器学习,模式识别的好文章

2015-10-28

struts2,hibernate,spring整合开发用户注册

struts2,hibernate,spring整合开发用户注册,用了MyEclipse和mysql

2015-03-17

简单的留言板

自己写的一个简单的留言板,没有复杂的div css,主要是分页技术

2015-03-17

《编译原理》课程实验报告(词法分析)

编译原理词法分析源程序,代码简单易懂,适于初学者学习,希望能帮助大家

2013-05-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除