版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。本文地址:http://blog.csdn.net/jobchanceleo/archive/2007/02/14/1509960.aspx马上要过年了,如果不想考虑新的工作机会。相信很多朋友都计划着向公司老板提一下加薪的要求。有N多文章谈过加薪的事,在此分享一下我的个人观点。 老板猛然听到你加薪的要求第一反映可能是惊讶,之后可能下意识地问:“为什么你要加薪?”(直接型)“你认为去年你给公司做出了那些非常有价值地贡献呢?”(委婉 ...
  • 08:56
  • 浏览 (49)
  • 评论 (0)
 作者:江南白衣,原文出处: http://blog.csdn.net/calvinxiu/archive/2007/02/18/1511545.aspx,转载请保留。引子:    "这个项目的架构是什么?"   对方爽快的回答:"Spring+Struts+Hibernate。"   嗯,这位很可能不是架构师......一、核心竞争力架构设计的理论、模式与技术    架构师们从试验与挫折中获得架构设计的技能,但其中大量的原理、模式和技巧,都经历 ...
  • 01:15
  • 浏览 (66)
  • 评论 (0)
        也许很多人会不屑的说,Linux不就是个操作系统么。错!Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。    既然Linux只是一个内核。那么我们通常所说的Linux操作系统又是什么?我们通常所说的Linux,指 GNU/Linux ,即采用Linux内核的GNU操作系统。是的,操作系统的实际名称是GNU。什么是GNU?GNU代表GNU’s Not U ...
  • 13:40
  • 浏览 (211)
  • 评论 (0)
gc只能清除在堆上分配的内存(纯java语言的所有对象都在堆上使用new分配内存),而不能清除栈上分配的内存(当使用JNI技术时,可能会在栈上分配内存,例如java调用c程序,而该c程序使用malloc分配内存时).因此,如果某些对象被分配了栈上的内存区域,那gc就管不着了,对这样的对象进行内存回收就要靠finalize().举个例子来说,当java 调用非java方法时(这种方法可能是c或是c++的),在非java代码内部也许调用了c的malloc()函数来分配内存,而且除非调用那个了free() 否则不会释放内存(因为free()是c的函数),这个时候要进行释放内存的工作,gc是不起作用的 ...
  • 18:42
  • 浏览 (64)
  • 评论 (0)
操作系统装入jvm是通过jdk中java.exe来完成,通过下面4步来完成jvm环境.1.创建jvm装载环境和配置2.装载jvm.dll3.初始化jvm.dll并挂界到JNIENV(JNI调用接口)实例 4.调用JNIEnv实例装载并处理class类。在我们运行和调试java程序的时候,经常会提到一个jvm的概念.jvm是java程序运行的环境,但是他同时一个操作系统的一个应用程序一个进程,因此他也有他自己的运行的生命周期,也有自己的代码和数据空间.首先来说一下jdk这个东西,不管你是初学者还是高手,是j2ee程序员还是j2se程序员,jdk总是在帮我们做一些事情.我们在了解java之前首先大 ...
  • 18:32
  • 浏览 (89)
  • 评论 (0)
java:comp/env 是环境命名上下文environment naming context (ENC)是在EJB规范1.1以后引入的,引入这个是为了解决原来JNDI查找所引起的冲突问题,也是为了提高EJB或者J2EE应用的移植性。ENC是一个引用,引用是用于定位企业应用程序的外部资源的逻辑名。引用是在应用程序部署描述符文件中定义的。在部署时,引用被绑定到目标可操作环境中资源的物理位置(JNDI名)。使用ENC是把对其它资源的JNDI查找的硬编码解脱出来,通过配置这个引用可以在不修改代码的情况下,将引用指向不同的EJB(JNDI)。 在J2EE中的引用常用的有:---------JDBC ...
  • 18:32
  • 浏览 (45)
  • 评论 (0)
sun提供jndi规范,通过这个接口规范把名称和对象联系起来。但是怎么实现在于中间厂商对这个spi接口的实现。先看下面的代码:public static void main(String args[]){Properties properties = new Properties();properties.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");properties.put(Context.PROVIDER_URL,"t3://server1:7001 ...
  • 18:31
  • 浏览 (38)
  • 评论 (0)
你的J2EE应用是不是运行的很慢?它们能不能承受住不断上升的访问量?本文讲述了开发高性能、高弹性的JSP页面和Servlet的性能优化技术。其意思是建立尽可能快的并能适应数量增长的用户及其请求。在本文中,我将带领你学习已经实践和得到证实的性能调整技术,它将大大地提高你的servlet和jsp页面的性能,进而提升J2EE的性能。这些技术的部分用于开发阶段,例如,设计和编码阶段。另一部分技术则与配置相关。技术1:在HttpServlet init()方法中缓存数据服务器会在创建servlet实例之后和servlet处理任何请求之前调用servlet的init()方法。该方法在servlet的生命周 ...
  • 18:29
  • 浏览 (41)
  • 评论 (0)
在多线程的java环境中,我们很多使用需要一个共享内存来保证线程之间的通讯,这个在java里面很简单,实例变量和静态变量。这也大家是在不经意间的使用方法,想都不用想都可以实现这些方法来达到多线程共享数据的目的,这些共享数据存在一个线程安全的问题。特别是对于具有串行意义的数据,流入请求号、事务号等。这里有两个概念:1.保证在一个线程中使用完这个数据之前不能让别人去修改这个字段的意义.2.在整个线程生命周期内,保证这个数据一致性,而且不影响其他线程读取这个数据.我们在考虑现存安全的时候,对第一种情况比较关注.例如大家都知道在对一个具有线程安全数据访问的块加入一个synchronized.这里有些误 ...
  • 18:28
  • 浏览 (35)
  • 评论 (0)
在整个企业应用程序架构中,应用系统充当业务引擎实现,网络提供通讯宿主,而整正能给整个企业架构附注生命的还是app server。想象一下在20年期,计算机技术还处于开始发展的时代,面向过程的计算机软件技术开始盛行。有很多大牛可以在c上做出高效庞大的应用系统。但是就没有什么大牛能做出一个企业应用体系。因为那个时候没有app server这个东西。app server也许最早出现的是操作系统的概念,它是软件运行的环境,我想很多人要问,为什么有了操作系统这个巨无霸的软件,为什么还需要app server呢。我想从下面几点陈述:1.面向的服务对象不应用大家很多时候会在app server 上开发各种各 ...
  • 18:28
  • 浏览 (20)
  • 评论 (0)
前两天升级了Eclipse到3.1版本,在老版本的IDE环境中写的程序在Problems中会出来好多类似的警告。当采用程序的自动修复时,采用默认方式,Eclipse会加上:private static final long serialVersionUID = 1L;   其实这个问题倒也不影响程序的运行,但是我看到Problems里面有警告就不舒服,同时也说明我们写的代码还是不规范。不怕,我们有互联网查查是怎么回事,具体的原因还就是和序列化中的这个serialVersionUID有关。    serialVersionUID 用来表明类的不同版本间的兼容性。如果你修改了此类, 要修改此值。否 ...
  • 18:27
  • 浏览 (45)
  • 评论 (0)
如果一个数据既是static又是final,那么他会拥有一块无法改变的存储空间。final data: 当final用于基本数据类型时,final让其值(value)保持不变,但是当用于object reference时,final仅让reference保持不变。也就是说当reference一旦被初始化用于代表某个对象时,便再也不能改变指向另一个对象,但对象本身的内容确实可以改变的。final对array的作用和对reference的作用一样;blank finals:java允许将数据成员声明为final,却不赋初值。但是,blank finals必须在使用之前初始化,且必须在构造函数中初始 ...
  • 18:26
  • 浏览 (28)
  • 评论 (0)
拿破仑同学说过:不想当将军的士兵不是好士兵。这话有一定的道理,人活着有时是为了一股气,为了实现梦想,我们需要不停地充气,气足了人才会有干劲有激情,对于我们中的多数人来说,这是一个漂泊的时代,社会上80%的人都是打工的,只不过大伙的衣领分级别而已,有金色的,有白色的,有灰色的,有蓝色的,有无色的,不要以为金色的就了不起,本质上与蓝色是一样的:打工。偶也是个打工的,只是有一部分是为自已打工,我对打工着的各位都是充满了敬意与爱意,我觉得每个人都挺不容易的!我们都希望明天会更好,因为有一个梦想,一抹乡愁,一些牵挂,所以我们不停地努力奋斗。呵呵,又要离题了,话说回来,作为程序员,我们的目标是什么?技术专 ...
  • 13:09
  • 浏览 (36)
  • 评论 (0)
 既然,现在不能得到war包中的Log4J的配置文件,那么可以通过读入InputStream,构造一个Properties,通过configure(Properties properties)方法同样可以完成配置。示例代码如下: 如果你安装了Jike,使用Jike编译器,则需要修改:runAntWithJikes处的运行命令,同上。 结论:Java虚拟机默认分配64M内存,如果你的应用比较大,超出64M内存,Java虚拟机就会抛出OutOfMemoryError,并停止运行。不管是什么应用(Web应用、Application等),只需要修改你的机器上的运行Java命令,在java x ...
  • 16:32
  • 浏览 (31)
  • 评论 (0)
创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 2、BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦, ...
  • 15:24
  • 浏览 (36)
  • 评论 (0)
虽然Spring提供很多内置拦截器,但是我将向您展示如何创建自己的拦截器并把它应用于一个Struts动作。为了使用拦截器,您需要做三件事:1、创建拦截器;2、注册拦截器;3、声明在何处拦截代码。这看起来非常简单的几句话却非常强大。例如,在清单7中,我为Struts动作创建了一个日志记录拦截器。这个拦截器在每个方法调用之前打印一句话:清单 7.一个简单的日志记录拦截器 package ca.nexcel.books.interceptors; import org.springframework.aop.MethodBefor ...
  • 14:09
  • 浏览 (128)
  • 评论 (0)
         Struts 1.2 其实已经大不同,只要大家有简约的态度,即使我们日常的Struts,同样可以写得非常精简,不一定要如传统观念认为的那么繁重,从而节约每天编码的时间。    Struts与Spring结合的基本知识请阅读Struts使用要点。1.DispatchAction     以一个Controller响应一组动作绝对是Controller界的真理,Struts的DispatchAction同样可以做到这点。& ...
  • 21:39
  • 浏览 (99)
  • 评论 (0)
         面向对象之代码复用规则http://www.csai.cn  作者:李炜  来源:《IBM DeveloperWorks》  2006年10月10日  代码复用是绝大多数程序员所期望的,也是OO的目标之一。总结我多年的编码经验,为了使代码能够最大程度上复用,应该特别注意以下几个方面。1、 对接口编程   "对接口编程"是面向对象设计(OOD)的第一个基本原则。它的含义是:使用接口和同类型的组件通讯,即,对于所有完成相同功能的组件,应该抽象出一个接口,它们都实现该接口。 ...
  • 21:14
  • 浏览 (22)
  • 评论 (0)
 还是让自己想点高兴的事吧,儿子吃饭跟小猪一样,能一次吃俩个汉堡,呵呵,下次回家一定带儿子去吃他爱吃的东西,也不枉对儿子许诺的爸爸在外挣钱回家给儿子买好吃的,看着儿子吃饭时满足的表情,我心里的感觉好极了!昨天给领导发了封邮件,列举了自己的工作成绩,陈述了自己的委屈,如果领导还能有点心的话,那优秀员工就是我的了,呵呵,就是为的这个目的,其实也不是非得争,但该争取的为什么不去争取呢,因为我作的确实不错!就拿昨晚的事情来说,我本可以不管,回去睡觉,但我还是留了下来,我知道自己留下会多少起点作用的,我努力的寻找解决办法,找各种资源来解决问题,给客户打电话解释和沟通,尽管事情还没有彻底解决,但 ...
  • 13:06
  • 浏览 (40)
  • 评论 (0)