Java教程

关于编程的那些事-2

本文主要是介绍关于编程的那些事-2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一.对象与对象引用的区别

      java中对象 和 对象引用 的 区别 ! 如下表达式: A a1 = new A (); 它代表A是类,a1是 引用 ,a1不是 对象 ,new A ()才是 对象 ,a1 引用 指向new A ()这个 对象 。 在 JAVA 里,“=”不能被看成是一个赋值语句,它不是在把一个 对象 赋给另外一个 对象 ,它的执行过程实质上是将右边 对象 的地址传给了左边的 引用 ,使得左边的 引用 指向了右边的 对象 。 JAVA 表面上看起来没有指针,但它的 引用 其实质就是一个指针, 引用 里面存放的并不是 对象 ,而是该 对象 的地址,使得该 引用 指向了 对象

二.对象作为参数的特点

        java中对象作为参数是是传递的对象的地址值,也就是说改变形参那么作为实参的对象也会改变。

public class Node {
        int value;
}
public class Run{
        public static void Fun(Node s,int val) {
                s.value=val;
        }
        public static void main(String args[]) {
                Node a=new Node();
               Fun(a,8);
                System.out.println(a.value);
        }
}
.在这段代码里,我们可以看到,在Fun中我们对s所指的value赋值,在mian函数中,我们产生对象a,在Fun中对a引用的对象进行赋值,之后在main函数中显示出来。我们可以清楚的看到,对象的参数传递是传递对象的地址。

三.对象的初始化顺序

        关于java对象的初始化顺序原则:父类优先于子类,静态优先于非静态,只有在第一次创建对象的时候才会初始化静态块。

四.类的static字段与非static字段的区别

        用static修饰符的域变量不属于任意一个类的具体对象,而专属于类。它被保存在类的内存区的公共单元中,一个类的任何对象访问他时,存取到的都是相同的数值。

        当某个属性需要被类的多个对象引用共同访问时,使用static修饰符。

五.java中final修饰符有什么作用

        1.修饰一个类,表明这个类不能被继承,也就是说如果一个类你永远不会让他被继承,就可以用final修饰。

        2.修饰方法

                《Java编程思想》第四版第143页是这样说的:

                    “使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类的 义;           第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法           过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用               final方法进行这些优化了。“

       3.修饰变量,对于一个final修饰的变量,如果这个变量是基本数据类型,则其数值一旦初始化    之后就不能更改,如果是引用类型的变量,则在对其初始化后不能再指向另外一个对象。

六.Java中float[10] arr,正确吗?为什么?

        首先它是不对的, 为什么呢?

        要想建一个10长度的float数组首先数组声明:float[] arr;   然后:arr=new float[10];

        或者直接  float [] arr=new float[10];

        但是不能写成 float[10] arr; 系统无法识别该语句给arr数组分配内存空间。

七.java数组元素类型为基本类型和引用类型是,有什么不同?

        基本数据类型数组储存的是基本数据。

        引用数据类型数组,元素是对象,其中储存的是对象的地址值,引用数据类型数组使用规定长度的方式进行初始化时,默认值为null。

        如:Student[] s=new Student[10];

                s中存有数组对象的地址; 为null;

这篇关于关于编程的那些事-2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!