- 浏览: 196923 次
- 性别:
- 来自: 苏州
最新评论
-
chirs:
因为tomcat不能识别注解到jar文件中的类,只能识别cla ...
Servlet3.0新特性---注解 -
RatTail:
paraName的那个@WebInitParam应该写在ini ...
Servlet3.0新特性---注解 -
string2020:
楼主,能否写一个例子说说:AsyncContext 类的 di ...
Servlet3.0新特性---异步支持 -
hellostory:
一会儿D盘 ,一会儿又是E盘,无语....
MyEclipse6.5整合JBPM插件 -
maimode:
很实用,哈哈
查询同一表内多字段同时重复记录的SQL语句
文章列表
Servlet3.0新特性---异步支持
- 博客分类:
- J2EE
1.servlet2.5中,页面发送一次请求,是顺序执行,即使在servlet里的service中开启一个线程,线程处理后的结果是无法返回给页面的,servlet执行完毕后,response就关闭了,无法将后台更新数据即时更新到页面端2.现在后台“推”是怎么实现的 2.1定时发送请求,页面有刷新,不好友 2.2Ajax 轮询,然后通过js更新页面数据 相比前者虽然友好,访问量太大时,服务器会增加压力,小型应用可以考虑用 2.3反向Ajax(Comnet) 利用Http1.1长连接的特性,也是通过轮询,但是每次发送请求不会立即返回,而是等待服务器有数据时才返回或者 ...
Servlet3.0新特性---注解
- 博客分类:
- J2EE
1.servlet3.0作为J2EE 6规范一部分,随j2EE6一起发布,并且tomcat7已经完全支持。
2.tomcat7(tomcat7 需要jdk1.6支持)已经完全支持servlet3.0,
3.web项目中添加对servlet3.0支持,
将E:\apache-tomcat-7.0.26\lib下的jar包加入到web项目
classpath中,可以不不加到web项目中WEB-INF/lib,保证编译时可用就行,部署到tomcat中,tomcat
会使用自己servlet3.0支持的jar.完成后,将eclipse默认生成servlet2.5支持ja ...
ClaasLoader及连接过程
- 博客分类:
- JVM
1. 类的加载的最终产品是位于堆区的Class对象
2. Class对象封装了类在方法区内的数据机构,并且向Java程序员提供了访问方法区内的数据结构的接口
3. 有两种类型的加载器
---Java虚拟机自带的加载器
.根类加载器(Bootstrap),由C++实现,程序员无法查看
.扩展类加载器(Extension),java实现
.系统类加载器(System),又称应用加载器,java实现
---用户自定义的类加载器
.java.lang.ClassLoader的子类
.用户可以定制类的加载方式
4. Ever ...
JVM及ClassLoader
- 博客分类:
- JVM
1. Java虚拟机与程序的生命周期
运行一个java程序,相等于开了一个jvm进程
2. Java虚拟机结束生命周期
-----执行了System.exit()方法
----程序正常执行结束
-----程序执行过程遇到了异常或错误而异常终止
-----由于操作系统出现错误而导致Java虚拟机进程终止
3. 类的加载、连接与初始化
加载:查找并加载类的二进制码,将字节码文件加载到内存中
连接:---验证:确保被加载类的正确性
---准备:为类的静态变量分配内存,并将其初始化为默认值
---解析:把类中的符号引用转 ...
1.源码编译阶段将源码编译为JVM字节码,JVM字节码是一种中间代码的方式,由JVM在运行期对其进行解释并执行。
2.字节码解释执行,JVM有一套自己的指令,对于面向对象的语言而言,最重要的执行指令,JVM采用了invokestatic、invokevirtual、invokeinterface和invokeespecial四个指令来执行不同方法调用
invokestatic对应调用static方法
invokevirtual调用对象实例方法
invokeinterface调用接口方法
invokeespecial调用private方法和编译源码后生成<init>方法 ...
1.JVM负责装载Class文件并执行;将源码编译为class文件取决于各个jvm实现或各种源码编译器;class文件通常由类加载器来完成加载;class执行在sun jdk中有解释执行和编译为机器码执行两种方式,编译为机器码又分为client和server两种模式
06优先考虑静态成员类
- 博客分类:
- Java基础
1.嵌套类有四种:静态成员类、非静态成员类、匿名类和内部类
2.静态成员类可以访问外围类的所有成员,包括那些声明为私有的成员。静态成员类是外围类的一个静态成员,与其他静态成员一样,遵守同样的可访问性规则
3.非静态成员类的每个实例都隐含着与外围类的一个外围实例相关联。在没有外围实例的情况下,要想创建非静态成员类的实例是不可能的。
4.当非静态成员类的实例被创建的时候,它和外围实例之间的关联关系也随之被建立起来,而且,这种关系以后不能被修改。这种关联关系需要消耗非静态成员类实例的空间,并且增加了构造的时间开销。
5.如果声明成员类不要求访问外围实例,就要始终把sta ...
1.类加载机制是指.class文件加载到jvm,并形成class对象机制,之后应用就可以对class对象进行实例化并调用,类加载机制可以在运行时动态加载外部类、远处网络下载过来class文件;除了动态化外,还可以通过jvm类的加载机制来达到隔离的效果,如Application Server来避免两个应用的类互相干扰。
2.jvm将类的加载分为三个步骤:装载、链接和初始化。装
1.基本类型和装箱基本类型之间区别:
a)基本类型只有值,而装箱基本类型则具有与它们的值不同的同一性。两个装箱基本类型可以具有具有相同的值和不同的同 一性
b)装箱基本类型有null
c)基本类型比装箱基本类型更节省时间和空间
所以,基本类型要优先于装箱基本类型,基本类型更加简单也更加快速。
1.字符串连接操作符"+",不适合用在大规模字符串连接场合,由于字符串不可变,2个字符串连接在一起时,它们内容都要被拷贝。
测试代码:
public class _51StringConcatenation {
private static final int NUM_ITEMS = 5000;
private static final String LINE_FOR_ITEM = "DJLKFLDLJKFKJLDKJFKJDKFLKDLKL" +
"LKJFLKDLKFLKJDDDDDDDDDDDDDDDDDDD ...
03 字符串--基础
- 博客分类:
- Java基础
1.String s = new String("abc");//此时内存有两个对象:StringPool里"abc",堆空间:new String("abc")
String s1 = "abc";//因StringPool里已经有“abc”对象,所以不会再产生,此时内存有两个对象
String s2 = new String("abc");//堆空间会新增一个对象,此时内存有3个对象
2.System.out.println(s == s1);//==比较的 ...
REST 并非标准,而是一种开发 Web 应用的架构风格,可以将其理解为一种设计模式。REST 基于 HTTP,URI,以及 XML 这些现有的广泛流行的协议和标准,伴随着 REST,HTTP 协议得到了更加正确的使用。
虽然c有很多经典的开发环境,但是大多数是linux或unix下的,对于windows的忠实用户来讲,可能并不习惯。
windows环境中,有一个dev-c++可以做c代码的调试,但这个软件貌似已经停止更新了,而且个人觉得它也不够时尚,有点过时了。所以windows平台中,我更倾向于推荐eclipse环境
1、下载Eclipse IDE for C/C++ Developers
地址:http://www.eclipse.org/downloads/ 或 http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers ...
对于集合List Set Map当调用其方法contains,是不是包含某元素时,会自动调用对象的equals方法,对于ArrayList只需要覆盖对象的equals即可,但对于Set Map,还需要覆盖对象的hashCode,不然得不到预期的结果
测试代码:
public class Name {
private String firstName;
private String lastName;
public Name(String firstName, String lastName) {
this.firstName = firstName;
...
1.jdk默认对观察者模式提供了支持
被观察着继承Observable
观察者实现Observer接口
被观察者通过调用notifyObservers()方法通知观察者
2.代码实现
/**
* 被观察者
* @author Administrator
*
*/
public class Watched extends Observable {
public void count(int num){
for(;num>=0;num--){
//通知之前一定要设定setChanged
t ...