`
messon619
  • 浏览: 43541 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
Spring源代码解析(一):IOC容器:http://www.javaeye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.javaeye.com/topic/86594 Spring源代码解析(三):Spring JDBC:http://www.javaeye.com/topic/87034 Spring源代码解析(四):Spring MVC:http://www.javaeye.com/topic/87692 Spring源代码解析(五):Spring AOP获取Proxy:http://www.javaeye.com/ ...
我们知道java运行的是这样的,首先java编译器将我们的源代码编译成为字节码,然后由JVM将字节码load到内存中,接着我们的程序就可以创建对象了,我们知道JVM将字节码load到内存之后将将建立内存模型(JVM的内存模型我们将在稍后阐述),那JVM是怎么将类load到内存中的呢?对了,是通过Classloader,今天我们就来深入探讨一下Classloader。 首先我们来看一段诡异的代码(一段单实例测试代码)。 package com.yhj.jvm.classloader; /** * @Description:单例初始化探究 * @Author YHJ  create at 201 ...
字符串是Java程序中最常用的一种数据结构之一。在Java中的String类已经重载的"+"。也就是说,字符串可以直接使用"+"进行连接,如下面代码所示:                                                         String s = "abc" + "ddd";     但这样做真的好吗?当然,这个问题不能简单地回答yes or no。要根据具体情况来定。在Java中提供了一个StringBuilder类(这个类只在J2SE5及以上版本提供,以前的版本使用S ...
1 引言      Java的一个重要优点就是通过垃圾收集器GC (Garbage Collection)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java 不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责 ...
Tomcat内存溢出的原因     在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存原因是不一样的,当然处理方式也不一样。     这里根据平时遇到的情况和相关资料进行一个总结。常见的一般会有下面三种情况:     1.OutOfMemoryError: Java heap space     2.OutOfMemoryError: PermGen space     3.OutOfMemoryError: unable to create new native thread.     Tomcat内存溢出解决方案     对于前两种情况,在应用本身没有内存泄露的情况 ...
一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。 从线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失 ...
跨war包session同步解决方案 【功能点】 不同war包间session共享 【关键需求理解】 多系统间实现统一登陆(单点登陆),对用户屏蔽多个独立系统的存在,给用户提供一个整体统一的系统。 【实现逻辑描述】 用一个类的静态hashmap ...
锁是网络数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性。各种大型数据库所采用的锁的基本理论是一致的,但在具体实现上各有差别。目前,大多数数据库管理系统都或多或少具有自我调节、自我管理的功能,因此很多用户实际上不清楚锁的理论和所用数据库中锁的具体实现。         Microsoft SQL Server(以下简称SQL Server)作为一种中小型数据库管理系统,已经得到了广泛的应用,该系统更强调由系统来管理锁。在用户有SQL请求时,系统分析请求,自动在满足锁定条件和系统性能之间为数据库加上适当的锁,同时系统在运行期间常常自动进行优化处理,实行动态加锁。对于 ...
锁( locking ) 业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的 “锁” ,即给我们选定的目标数据上锁,使其无法被其他程序修改。Hibernate 支持两种锁机制:即通常所说的 “悲观锁( Pessimistic Locking )”和 “乐观锁( Optimistic Locking )” 。 悲观锁( Pess ...
上面几篇讨论的是数据库方面的事务和锁方面的一些内容,实际上我们在实际中最常用的就是基本的sql语句了,实际上我个人感觉sql很难记忆(哈哈,语法和编程语言差太多了),所以往往有时候写些复杂的sql语句就必须google一 ...
数据库中事务机在前面的两篇blog中,我写了些关于数据库中的锁方面的一些内容,实际上锁是和事务紧密联系的,在数据库中事务这一块是很重要,也是比较复杂的,而且各个数据库产品的实现也不太相同,所以有必要在这里详细描述一下,虽然这些很细致的内容我们在实际编程时用到的概率不是很大,但毕竟知道一些还是比较好的,万一有用的到的时候就能解决大问题了。下面是一些google到的内容的整理和总结。 一 事务的属性 事务具有ACID属性 即 Atomic原子性, Consistent一致性, Isolated隔离性, Durable永久性 原子性 就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在 ...
虽然不能完全避免死锁,但可以使死锁的数量减至最少。将死锁减至最少可以增加事务的吞吐量并减少系统开销,因为只有很少的事务:     回滚,而回滚会取消事务执行的所有工作。     由于死锁时回滚而由应用程序重新 ...
我们在做很多项目时都要涉及到数据库,特别是一些比较大型的web项目,更是有较大的并发处理,所以对数据库的操作有可能会产生死锁,对于数据库的死锁,一般数据库系统都会有一套机制去解锁,一般不会造成数据库的瘫痪,但解锁的过程会造成数据库性能的急速下降,反映到程序上就会造成程序的反应性能的下降,并且会造成程序有的操作失败。虽然一般对于数据库级别的锁定于解锁程序员不会在程序中用代码编程去处理,但是对于其的了解对于程序员来说还是很有好处的,它能让我们在出现问题时快速找到问题的原因,同时让我们在编程时注意哪些可能造成数据库死锁的不太好的编码。        以下以sql server2000为例,来了解数据库 ...
开源框架spring详解-----AOP的深刻理解 AOP的理解          1、AOP的概述                    AOP是一种不同于OOP(面向对象编程)的编程模式,它不是OOP的替代,而是对OOP的一种有益补充。          2、spring AOP的原理          3、spring AOP的实现                    在spring2.5中,常用的AOP实现方式有两种。第一种是基于xml配置文件方式的实现,第二种是基于注解方式的实现。                    接下来,以具体的是理智讲解这两种方式的使用。 Java代 ...
1. Struts2架构图 这是S truts2官方站点提供的Struts 2 的整体结构。 2. Struts2部分类介绍 这部分从Struts2参考文档中翻译就可以了。 ActionMapper         ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于Request等java Servlet类的依赖。Struts2中它的默认实现类是DefaultActionMapper,ActionMapper很大的用处可以根据自己的需要来设计url格式,它自己也有Restful的实现,具体可以参考文档的docs\act ...
Global site tag (gtag.js) - Google Analytics