- 浏览: 25360 次
- 性别:
- 来自: 广州
文章列表
[置顶] classloader
- 博客分类:
- java-jvm
定义
java把类的数据从class文件加载到内存,并对数据进行校验、转换解析、初始化,形成最终可以被jvm使用的java类型,这个就是jvm的类加载机制。
生命周期:
一个类的生命周期为:加载、验证、准备、解析、初始化、使用、卸载。其中,验证、准备、解析三个部分统称为连接(Linking)。
类别:
java中执行类加载工作的就是classloader,java中类似中classloader,分别为引导类加载器,扩展类加载器,系统类加载器,自定义类加载器。jvm一启动,会形成三个类加载器,引导类加载器,扩展类加载器,系统类加载器,引导类加载器是 ...
1.注解定义
注解也称作元数据,它为我们在源码中添加信息提供了一种形式化的方法,供我们在需要的时候读取有用的信息
2.元注解
元注解就是JDK已经定义好的注解的注解, Jdk定义的4
1.一个jvm的天职就是运行一个java程序,当这个java程序关闭退出,这个jvm也随之消亡。一个jvm从一个java的main方法开始,其内部分两种线程,守护线程和非守护线程,守护线程一般来讲是jvm的后台线程,比如gc线程就是一个守护线 ...
jvm是基于堆栈的虚拟机,堆和栈都是java中用来存储数据的地方.(1)堆的特点:
每个java应用进程(一个main线程以及它的子线程)对应一个堆,堆的大小可以通过参数-xms,-xmx来设置。 java中所有通过new出来的对象和数组都存在堆中,可以为各线程共享,堆中的内存空间通过垃圾回收器进行回收。(2)栈的特点:
栈是线程私有的,栈的生命周期就是线程的生命周期,可以通过-Xss来分配每个线程的栈空间,如果某个线程的栈空间不足,系统会抛StackOverFlowError异常。栈中是以栈帧为单位进行维护的,java中没调用以方法就会创建一个栈帧, ...
java多线程
- 博客分类:
- java-concurrent
java多线程
java线程对应操作系统的一个原生线程,可以设置优先级,但是并不可靠,有可能和操作系统的线程优先级对不上。
java线程有以下几个状态:
1.new,线程新建但是尚未启动;
2.runable,线程处于可运行状态,等待操作系统调度;
3.等待,调用了object.await()或者sleep()方法,sleep()方法,join()方法;
4.阻塞,等待获取一个排他锁;
5.结束
tomcat下的http协议实现
- 博客分类:
- 开源项目
HttpServlet:
HttpServlet是整个j2ee的核心,全部来自客户端的请求都应该这里来处理或者转发。他由servlet容器(比如tomcat)根据web.xml中的servlet配置标记进行装载和管理。
生命周期:
1. 初始,调用init(),整个生命周期执行一次
2. 处理客户端请求,调用service(HttpServletRequest req, HttpServletResponse resp)
质量就是测量并保证产品与需求是否一致。
质量详解:
1:客户满意度,指产品付款人对他们最终得到的产品标识满意;
2:适用性,确保你的产品适合顾客需求的最佳设计
3:需求抑制性
质量管理的原则:防患胜于检查。
三个质量管理过程:
1:计划质量(计划过程组)
计划质量过程是在项目一开始得到项目信息,确定如何测量质量和预防缺陷。
输入:组织过程资产、企业环境要素、成本基线、进度基线、范围基线、干系人登记表、风险登记表
工具:
成本效益分析;
基准法,使用其它项 ...
产品范围表示你和你的团队正在创建的产品的特性和功能。
项目范围是指所创建的产品所需完成的全部工作。
范围蔓延是指导致团队做而外的工作的失控变更。
范围管理计划描述了你如何写出范围,确保范围是正确的,并保 ...
时间管理过程的主要输出:
1.定义活动
定义活动过程将我们所了解的全部项目信息将工作划分为可分解的活动。
使用工具和技术:
(1)工作包分解
(2)模板
(3)专家判断
(4)滚动 ...
索引是数据库中重要的数据结构,它的根本目的就是优化查询性能。
索引的使用一般有以下原则:
1.经常进行连接的列上建立索引
2.在order by或者group by的列上建立索引
3.在条件表达式中用到的存在较多不同值的列上建索引,如果只有少量不同的值,比如性别列,查找索引再定位的性能还未必比得上全表扫描
4.因为索引的建立和维护需要性能,所以在更新较频繁的表上尽量少或者不建索引。
XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring集成。
最近一项目,需要用到webservice,刚开始,使用xfire,甚是方便,特别是客户端代码,干净整洁,但是xfire用了jdom1.0.jar,而我们项目是基于原有的一个平台上面开发的子系统,用的是jdom.jar,较低版本,可恶,无奈之下,由于项目交期问题,只好换rmi。
rmi很简单,
rmi服务器:
publicclass BI RmiServiceContextLi ...
最近在维护一个老(很老)系统,本想重构,但是目前没这个时间,基于struts1+dao,有些还是jsp+dao的方式,用户需要在敏感的操作上加比较详细的日志,日志的功能在dao根据需求手动写入,主要的问题是原有的接口没有传入request的相关信息,比如用户信息,我想到了ThreadLocal,因为每个servlet是基于多线程,但是每个request的执行是再一个独立的线程中完成,ThreadLocal正适合了我这种需求,可以用来完成我对这个系统的业务扩展。
在比如struts2的ServletActionContext中对request的获取,还有hibernate中对ses ...
今天为了方便用户自行维护一个任务的调度,自己用timer实现了一个任务调度功能,顺便学习了java的timer使用方法,总结了下,主要有以下关键点:
(1)Timer有两个构造方法,分别是Timer()和Timer(boolean isDemen),后者可以指定Timer所创建的线程是否为守护线程,如果创建为守护线程,在当前jvm的所有非守护线程都退出,不管timer的线程是否停止,程序都退出。
(2)Timer主要的调度方法是schedule,根据参数不同可以有多种方式进行调度,其中关键的一个参数是TimerTask,就是调度的任务,该类实现了Runnable,这和我们实现线程的方式有点相似了 ...