您的位置:首页 > 编程语言 > Java开发

Java中零碎的知识

2016-08-17 18:03 155 查看
一、Java中length,length(),size()区别

1、 Java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性;

2、Java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法;

3、Java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看。

二、C语言中的内存泄露问题

若在C语言中,有多个指针变量指向一块动态内存



内存使用完要用free(P)释放,如果不释放则内存越用越少,导致内存泄露;

如果free多次,则会使程序崩溃。

在Java中,程序员只分配内存,不需要释放,Java虚拟机会自动的在某一个不确定的时间释放。
三、静态变量、成员变量和局部变量

类变量(也叫静态变量):是类中独立于方法之外的变量,用static 修饰。(static表示“全局的”、“静态的”,用来修饰成员变量和成员方法,或静态代码块(静态代码块独立于类成员,jvm加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行))。
成员变量(也叫“实例变量”、“域”):也是类中独立于方法之外的变量,不过没有static修饰。
局部变量:是类的方法中的变量。

成员变量会被系统默认初始化,而局部变量不会,所以必须自己初始化。 

还要注意静态成员变量也没系统默认初始化,必须在初始化块或者定义时或者构造函数里进行手动初始化。

四、@Override的作用

 @Override是Java5的元数据,自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记。

@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:

1、可以当注释用,方便阅读 

2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错 

比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法) 

使用该标记是为了增强程序在编译时候的检查,如果该方法并不是一个覆盖父类的方法,在编译时编译器就会报告错误。

五、exit

System.exit(-1);


终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: