Java没有明显的指针,相反,它提供了更严格控制的引用类型( reference)。这篇文章将是java零基础初学者介绍java引用类型相关知识,帮助大家更好的入门java。
Java引用类型包括数组和对象,java中间数组必须显式分配,结果是数组具有运行时确定的上限值。下面的代码给出了各种初始化数组的方法,所有的赋值都是一样的。int primes1[]={23,5,7,11}; int primes2[]=new int[5]; int primes3[]=primes2; primes[0] =2; primes[1] =3; primes[2] =5; primes[3] =7; primes[4] =11;
数组primes2和primes3指向相同的动态分配内存,primes1指向另一个具有类似值的内存。一个数组或对象可以同时指向多个引用变量。因此,比较 primes==primes2的结果是假的(引用指向不同的内存),但是 primes2==primes3的结果是真的。通过检查其长度属性,可以确定数组的长度属性: primes2. length为5。
每个引用或不指向任何对象(称为空引用)或指向适当类型对象的实例数组可以是空的,此时,它们不指向任何内存。
指向对象是间接的。因此
String s;
s = new String(“Measure for measure must be answered.”);
System.out.print1n(s.length());
由字符串调用s指向length方法。如果s是空的,则不可能间接导致空指针异常。以下代码产生空指针异常: string s;// a null reference since no string allocated System. out. println(s.length(); // illegal!
尽量避免Java引用指向无效的对象。在传统语言中,动态内存的错误可能会被引入到程序中。Java采用的方法是迫使用户显示和分配每个非简单类型的对象,并使用垃圾收集器(garbage collector)释放分配的内存,但这种释放只有在知道这些内存没有被引用后才能执行。这种方法需要一些成本(垃圾收集器不会得到任何关于在哪里找到可能是垃圾内存的提示),但它确保了一个引用永远不会指向无效的内存。
另外,java的引用类型可分为四种:强引用(Strong Reference);软引用(Soft Reference);弱引用(Weak Reference);虚引用(Phantom Reference)。这四种引用的强度依次减弱。
Java提供两种不同的类型,引用类型和原始类型(或内置类型),因此Java引用类型属于Java的基本知识,我们必须学习,只学习java培训课程,只有打下坚实的基础,我们才能更好地学习编程技术,更快地提高自己java能力。