自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 问答 (1)
  • 收藏
  • 关注

转载 spring在web容器启动时执行初始化方法

需求:在tomcat启动时开启一个定时任务。想法:容器启动时执行方法,最容易想到的就是servlet中可以配置load-on-startup,设置一个正整数也就可以随容器一起启动。问题:上面的方法很好,但是由于定时任务需要去操作数据库,而项目采用了spring的依赖注入来管理对象,而servlet并不受Spring的管理。若此时在servlet中注入Spring管理的对象,则会报错

2015-08-30 18:08:48 532

转载 Java finalize方法使用

《JAVA编程思想》:java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。          (1).对象不一定会被回收。       (2).垃圾回收不是析构函数。       (3).垃圾回收只与内存有关。       (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它

2015-08-18 17:15:32 411

转载 Struts2数据传输的背后机制:ValueStack(值栈)

1.     数据传输背后机制:ValueStack(值栈) 在这一切的背后,是因为有了ValueStack(值栈)! ValueStack基础:OGNL要了解ValueStack,必须先理解OGNL(Object Graphic Navigatino Language)!OGNL是Struts2中使用的一种表达式语言,它可以用于JSP的标签库中,以便能够方便的访问各种对象

2015-08-17 15:57:10 420

转载 Struts2中的OGNL详解

首先了解下OGNL的概念:OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整个对象的结构图,实现对象属性类型的转换等功能。此外,还得先需弄懂OGNL的一些知识:1.OGNL表达式的计算是围绕OGNL上下文进行的。

2015-08-17 15:54:16 350

转载 weblogic12.1.3的安装及更新

关于Weblogic    Oracle WebLogic应用服务器产品系列是业界最全面的开发、部署和集成企业管理软件的平台。该产品系列的核心是Oracle WebLogic服务器,它是一个功能强大和可扩展的Java EE服务器。它与Oracle应用服务器以及诸如Oracle JRockit和Oracle Coherence这样的其他性能增强产品结合在一起构成了Oracle WebLogi

2015-08-16 17:51:10 887

转载 Struts2工作原理

Struts2请求响应流程: 在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller、ActionProxy、ActionMapping、Configuration Manager、ActionInvocation、Inerceptor、Action、Result等。下面我们来具体看看这些组件有什么联系,它们之间是怎样在一起

2015-08-14 09:55:47 328

转载 struts2的核心和工作原理

在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处?设计目标    Struts设计的第一目标就是使MVC模式应用于web程序设计。在这儿MVC模式的好处就不在提了。技术优势    Struts2有两方面的技术优势,一是所有的Struts2应用程序都是基于client/server HTTP交换协议,The Java Serv

2015-08-14 09:46:30 462

转载 JVM性能调优

最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录。一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm)  其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过

2015-08-12 16:57:27 277

转载 Windows下命令行下启动ORACLE服务

检查监听器状态:C:\>lsnrctl statusLSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 30-6月 -2009 21:08:04Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.正在连接到 (DESCRIPTI

2015-08-12 16:10:35 379

转载 Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务

Spring 3整合Quartz 2实现定时任务一:常规整合Spring 3整合Quartz 2实现定时任务二:动态添加任务续篇及demo下载地址:Spring 整合Quartz 2实现定时任务四:细化调整及一些已知的问题Spring 整合Quartz 2实现定时任务五:集群、分布式架构实现探讨前面我们已经完成了spring 3和quartz 2的整合以及动

2015-08-09 12:01:51 816

转载 Java 并发专题 : Timer的缺陷 用ScheduledExecutorService替代

继续并发,上篇博客对于ScheduledThreadPoolExecutor没有进行介绍,说过会和Timer一直单独写一篇Blog.1、Timer管理延时任务的缺陷a、以前在项目中也经常使用定时器,比如每隔一段时间清理项目中的一些垃圾文件,每个一段时间进行数据清洗;然而Timer是存在一些缺陷的,因为Timer在执行定时任务时只会创建一个线程,所以如果存在多个任务,且任务时间过长,

2015-08-09 11:13:14 395

转载 详解java定时任务

在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现。下面LZ就其原理、实例以及Timer缺陷三个方面来解析java Timer定时器。一、简介      在java中一个完整定时任务需要由Timer、TimerTask两个类来配合完成。 API中是这样定义他们的,Timer:一种工具,线程用其安排以后在后

2015-08-09 11:09:34 643

转载 分布式与集群的区别

简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。例如:如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的

2015-08-08 12:25:02 341

转载 ehcache memcache redis 三大缓存男高音

最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存的优缺点,仅供参考! Ehcache在java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性(基于java开发)、被认证(具有apache 2.0  license)、充满特色(稍后会详细介绍),所以被用于

2015-08-07 15:54:23 438

转载 Redis使用总结之与Memcached异同

Redis是什么?两句话可以做下概括: 1. 是一个完全开源免费的key-value内存数据库 2. 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings、map、 list、sets、 sorted sets Redis不是什么?同样从两个方面来做下对比: 1. 不是sql server、mySQL等关系型数据库,主要原因是:     

2015-08-07 15:28:12 463

转载 学习的逻辑 2: 职业半山腰

学习的逻辑: 知识经济学>>中介绍了基础的逻辑. 本文是其姊妹篇, 进一步从不同角度来阐述.我该学什么? 这是一个错误的问题这个问题可以有很多出发点. 今天讨论基于的假设是对工作方向的迷惘, 即不知道自己下一步努力的重点是什么, 但又不想时光虚度, 总觉得该学点什么, 又不知从何学起.想学习是好的, 但考虑下面这种场景. 你走进领导的办公室说: “我要加薪, 因为我参加

2015-08-07 10:17:55 409

转载 关于 tomcat 集群中 session 共享的三种方法

前两种均需要使用 memcached 或 redis 存储 session ,最后一种使用 terracotta 服务器共享。 建议使用 redis ,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富, 不只是缓存 session ,还可以做其他用途,一举几得啊。 1、使用 filter 方法存储 这种方法比较推荐,因为它的服务器使用范围比较多

2015-08-06 20:28:47 378

转载 Apache+Tomcat负载均衡两种session共享方式的设置

session共享有两种方式:1、session共享,多个服务器session拷贝保存,一台宕机不会影响用户的登录状态;2、请求精确集中定位,即当前用户的请求都集中定位到一台服务器中,这样单台服务器保存了用户的session登录信息,如果宕机,则等同于单点部署,会丢失;apache中针对上述两个方法提供了不同的配置项:  session replication:会话

2015-08-06 19:28:07 786

转载 SQL Server数据库查询速度慢的原因和解决方法

SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:  1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)  2、I/O吞吐量小,形成了瓶颈效应。  3、没有创建计算列导致查询不优化。  4、内存不足  5、网络速度慢  6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)  7、锁或者死锁(

2015-08-06 16:29:22 1563

转载 设置TOMCAT启用GZIP压缩

原理简介        HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTM

2015-08-06 14:47:21 361

转载 Tomcat 生产服务器性能优化

考虑一下这种场景,你开发了一个应用,它有十分优秀的布局设计,最新的特性以及其它的优秀特点。但是在性能这方面欠缺,不管这个应用如何都会遭到客户拒绝。客户总是期望它们的应用应该有更好的性能。如果你在产品中使用了Tomcat服务器,那么这篇文章就会给你几方面来提升Tomcat服务器的性能。感谢ITWorld article给本文提供资源。经过沉思我已经知道了和早期版本相比最新的Tomcat提供更好的

2015-08-06 14:28:46 500

转载 提升tomcat服务器性能的七条经验

在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下七种调优经验。1. 服务器资源    服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。    (1) 对于高并发情况下会有大量的运算,那么CPU的速度会直接影响到处理速度。    (2) 内存在大量数据处理的情况下,将会有较大的内存容量需求,可

2015-08-06 10:59:06 516

转载 详解java类的生命周期

引言        最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上有疑惑的朋友有所帮

2015-08-05 15:46:08 536 1

转载 Java线程面试题 Top 50

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用

2015-08-04 16:26:25 673 1

转载 ThreadLocal-分析-总结

ThreadLocal类在Spring,Hibernate等框架中起到了很大的作用,对于其工作原理,很多网上的文章分析的不够彻底,甚至有些误解。 首先,为了解释ThreadLocal类的工作原理,必须同时介绍与其工作甚密的其他几个类(内部类)1.ThreadLocalMap2.Thread可能有人会觉得Thread与ThreadLocal有什么关系,

2015-08-04 15:35:14 476

转载 Java 多线程 并发编程

一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间

2015-08-01 15:15:11 552

转载 Java线程中run和start方法的区别

Thread类中run()和start()方法的区别如下:run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程;          package com.ljq.test;public class ThreadTest {

2015-08-01 14:52:04 463

转载 JAVA中堆和栈的区别

在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。      当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。      堆内存用来存放由new创建的对象和数组。      在堆中分配的内存,由Java虚拟机的

2015-08-01 11:51:25 302

转载 JDK,JRE,JVM区别与联系

很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的。    今天特写此文,来整理下三者的关系。     JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/j

2015-08-01 11:26:23 304

转载 java之yield(),sleep(),wait()区别详解-备忘笔记

1、sleep()使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的

2015-08-01 10:55:27 404

空空如也

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

TA关注的人

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