欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java如何干掉指针,又如何巧妙的通过引用来操作指针————>说的就是java指针...

程序员文章站 2022-06-07 17:57:23
...

C语言的强大在于可以直接操作指针的地址,通过改变指针的地址指向来达到更改地址的目的,又是由于c语言的指针过于强大,初学者很难掌握, java的出现解决了c,c++中指针的问题 java将指针封装在底层,开发人员是不能够去操作指针的地址,但是可以通过引用来间接的操作:

 

定义一个指针p来指向a的地址(&是地址符号):

            *p->&a 

        *p是指向&a地址的数,*P可以通过改变指针的指向 来改变地址的值,这就是c指针的强大之处 java中怎么来解决值的传递和对地址的操作呢:

     java中有两种机制 以值传递和引用传递来代替c的指针, java不准开发人员直接去操作指针的地址的,但可以通过引用做到

   值传递:基本数据类型(boolean bety char int short double float long) 值传递相当于赋值运算:

     值传递是指在程序中通过赋值来改变参数的一种思想

   例如:

public class Demo {
// 值传递
	public static void main(String args[]) {
		//定义a为100
		int a = 100;
              //将a的赋给b
		int b = a;
              //将200赋值给b
		b = 200;

		System.out.println(a);
              //输出a的值为100,
//在程序中只是将a的值赋值给了b,没有将a的地址赋给b

}}

 二:

 

public class studyDemo {
	

	
	public static void main(String[] args) {

		//将类实例化
		studyDemo stu = new studyDemo();
	
		int a = 100;
		//调用change方法();
		stu.change(a);
		//输出a的值
		System.out.println("第一次的"+a);
                //a还是为100


	public void change(int s){
		//将200赋值给a
		s = 200;
		//输出赋值后的s
		System.out.println("s = "+ s);	
	}

}}

 

 

 

引用传递:指引用对象来操作地址,相当于java中的指针

 

public class studyDemo {
 
 
private String name;
public static void main(String[] args) {
 
studyDemo stu1 = new studyDemo();
stu1.name = "java";
//将stu1对象赋给stu2,stu1的地址也赋值给了stu2,stu2对象可以操作stu1的地址
studyDemo stu2 = stu1;
stu2.name = "android";
System.out.println("stu1   :" + stu1.name +"   "+ "stu2    :" + stu2.name);
  //结果都是android
}}