一些关于Java的琐碎知识点

发表于:2011-10-28 09:14

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:angus_17    来源:51Testing软件测试网采编

  1、对于类中的final类型属性,一般在声明的时候直接写final int a =1;

  但也可以在构造函数中进行赋值,如:

final int a;
A{}( a =1;)

  但要注意:需要每一个构造函数都赋值,且不能嵌套。

  而如果想写static final int a;则必须在声明时进行初始化,static final int a = 1;因为静态的也是不属于类。

  2、继承中要注意的问题:子类对父类中构造方法的问题。

  父类的中构造方法不能被继承,故

class A{}
class B extends A{ A();} //是错的,只能用super关键字

  如果子类中没有显示的调用super,则系统会加上,super();注意即是找父类中无参数的构造方法,所以,如果父类自己写了构造方法而导致无参数的已经不存在了,则会出错.

  3、静态方法:只属于类本身,而不是某个对象。它是在类加载的时候,就已经为之分配好内存了。这时,并没有产生这个的对象。而对象只有在new时候才会出现。所以只能把这个变量加个static.这也叫做类变量,与之对应的叫做实例变量。

  4、main是静态的,因为它不是属于某个类的,而是全局的。因此在执行时直接找到main,而不是针对某个类的对象。如果不是static,则会先产生类的对象。

  public:由于其是虚拟机调用,因此必须是public的。

  static:由于其不必产生对象,因此是static的。

  5、对于主类的修饰符是default时:表示在同一个包中可以被访问。

  6、final类不能被继承。

  7、private的方法,只要出了类就不能被访问,不管是在同一个包中,还是继承关系。默认的访问权限都是在这个包中,被继承也不能被访问。

  protected方法对以上均适用,但和public方法也有区别

  在于:对于不同包中,没有继承关系的两个类而言,在一个类中使用了另一个类的对象,则只有public方法可以被访问,而protected方法不能被访问。

  8、抽象方法的声明:abstract void proMethod(); //不要加大括号

  看一个类是否被实现,不是看{}里面有没有代码,而是看有没有{}

  9、JNI(Java Native Interface),它允许Java虚拟机(JVM)内部运行的Java代码能够与用其它编程语言(如c、c++、汇编语言)编写的应用程序和库进行互操作。

  JNI可以理解为Java和本地应用程序之间的中介。

  它最大的好处是没有对底层Java虚拟机的实现施加任何限制。

  写一个native的方法:

  1)写java代码段,如HelloWorld.java。

  2)用javac来编译之,得到.class文件。

  3)用javah -jni 来生成HelloWorld头文件,得到HelloWorld.h

  4)用HelloWorld.h来生成本地方法,得到HelloWorldImp.c

  5)编译本地代码,加载共享库,生成Hello.so(so文件是linux,或unix下动态连接库的文件,相当于windows下的.dll)

  10、对于接口中的方法,默认情况下就是public abstract的,因此不用再写,也因此,实现接口时必须用public来修饰。

  接口中的数据成员默认都是public static final.

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号