java中的关键字(static和final)
这篇文章不是对private,public,protected进行说明,只要学过面向对象的程序设计,对以上三个关键再熟悉不过了。这里要说的是另外两个关键字---static和final。
1. static关键字
在我们创建一个类的实例时(对象),通常使用new方法,这样这个类的数据空间才会被创建,其方法才能被调用。
但是,有时候我们希望一个类虽然可以被创建n个对象(显然这n个对象的数据空间是不相同的),但这n个对象的某些数据是相同的,即不管这个类有多少的实例,这些数据对这些实例而言之有一份内存拷贝。还有这种情况,即有时希望某个方法不与包含它的类的任何实例(对象)联系在一起。即使没有创建对象,也能调用这个方法。
通过static就能实现这样两个目的,static关键字可以用于属性和方法。
下面是Thinking in java中对static的一段精辟阐述。
当声明一个事物是static时,就意味着这个数据或方法不会与包含它的那个类的任何对象实例关联在一起。所以,即使从未创建某个类的任何对象,也可以调用其static方法或访问其static数据。
例:对于静态属性
class StaticTest{
public static int i = 0;
}
对于上面这个类,即使我们不创建他的实例,也可以引用其i属性,引用方法很简单在另外一个地方使用StaticTest.i即可得到这个属性的值。
对于静态方法
class StaticFunc{
public static int incr(int i){
i++;
return i;
}
}
在外部,可以直接使用StaitcFunc.incr(8)的方式调用这个方法。需要说明的是在static方法中药使用外部变量时,这个外部变量也要为static类型(这点不难理解)。
2. final关键字
故名思义,final即最后的,最终的,不可改变的。实际上,在java中,final的作用也基本上是这样的,其原因可能是出于效率或设计。final关键字可以应用于属性,方法和类。当然在这三个方面的应用是有细微差别的。
(1)final数据
使用final数据,目的是想告诉编译器这个数据一经初始化就不会再改变。
对于基本类型,final使数值恒定不变,一个既是static又是final的字段
相关文档:
我们在jsp页面上的js脚本中可以调研java代码,比如,我们需要再js中用alert函数显示服务器端发送过来的某个字符串那么我们可以这样做
tomcat下:
在服务器端我们有request.setAttribute("name","abc");
那么我要在页面上用alert显示的话,有两种方式:
1、使用EL表达式
在El表达式的外面用引号即可:
<scri ......
package debug;import java.io.*;import java.lang.Thread;class MyThread extends Thread{ public int x = 0; public void run(){ System.out.println(++x); }}class R implements Runnable{ private int x = 0; public void run(){ System.out.printl ......
将以下内容复制Eclipse中运行,随意输入一个用户名,程序会自动计算出注册码,绝对能用!!!
package sun;
import java.io.*;
public class MyEclipseGen {
private static f ......
JNI是Java Native Interface的缩写。从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。
使用java ......
java的范型机制看起来有点像C++的模版,但相比较C++的模版类,java中的范型没有关键字template,并且有着不同的实现机制(本质区别)。
范型类
先看一个范型类的例子:
public class Demo1<T> {
private T value;
public Demo1(T value) {
&n ......