Java知识点

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.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值