java少用_JAVA 用得比较少的关键字以及语法

1.Instanceof:

instanceof是Java的一个二元操作符,Java的保留关键字。用来判断左边的对象是否是它右边的类的实例,返回boolean类型。

2.? super T :

? super T语法将泛型类限制为所有T的超类(包括T自身),能用于参数中,返回值不可以限定。

3.native:

Native 就是java调用非java代码的接口。该方法的实现由非java语言(例如C)实现.

例如

public class HaveNatives

{

native public void Nativea( String x )

}

非JAVA代码的实现以C为例:

进入cmd

1.编译java HaveNatives.java 类,获得CLASS

2.运行javah HaveNatives,获得HaveNatives类C的实现

3.用VC6创建HaveNativesWin32动态链接库工程。将上述生成的头文件HaveNatives.h拷贝到

C:/Program Files/Microsoft Visual Studio/MyProjects/HaveNativesWin32目录下面。

将C:/JDK1.5/include目录下的jni.h和C:/JDK1.5/include/win32/jni_md.h两个头文件拷贝到VC安装目录下的C:/Program Files/Microsoft Visual Studio/VC98/Include目录下面。在VC IDE中新建HelloWorld.cpp文件,实现头文件中声明的方法并编译生成DLL。

4. 将生成的DLL拷贝到工程的bin下面,然后设置DLL搜索路径(环境变量PATH)为C:/workspace/jnitest/bin(JNI并没有规定必须将dll放在与class文件相同的目录,只要确保JVM能搜索到DLL即可)③。重新启动Elipse后,运行测试程序,将看到控制台输出“Hello World!”

注意,③必须设置好DLL搜索路径,或者将dll拷贝到C:/WINDOWS/system32下面。

java的serialization提供了一个非常棒的存储对象状态的机制,说白了serialization就是把对象的状态存储到硬盘上去,等需要的时候就可以再把它读出来使用。但是在存储对象状态时,我们有时候会需要特定的对象数据在serialization时不进行存储。这时候 transient关键字就派上用场了。要关掉类的特定的数据域,可以使用transient关键字进行定义,这对于底层的java虚拟机来说,这个 transient类型的变量不是一个类的永久性的状态。

2、比如说在一个实体Bean中,transient和   static字段是非持久性字段,不能保存在数据库中。

另外,如果你的对象需要序列化到数据库、JDNI或通过Object流传递给其他对象的话,对象中的非持久性字段应该加transient关键字。

3、  你如果写了一个程序并需要序列化到本地或者数据库中(不只是你一个人需要用),并且因为测试的缘故,你认为加上了自己的一些信息,例如用户名,密码(例如数据库的身份),这样方便测试.但是,这些信息是肯定不应该被别人知道或者了解的,同时呢,又不想每次自己都去写都去改,这样,你可以用 transient定义这样的变量存储它们.

4、   下面是java规范中对transient关键字的解释:

The   transient   marker   is   not   fully   specified   by   The   Java   Language     Specification   but   is   used   in   object   serialization   to   mark   member   variables   that   should   not   be   serialized.

5、java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身。这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有的东西都能存储(因为那样,别人可以通过序列化知道类里面的内容),那么我们就可以用上transient这个关键字,它的意思是临时的,即不会随类一起序列化到本地,所以当还原后,这个关键字定义的变量也就不再存在。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值