`
百合不是茶
  • 浏览: 349032 次
社区版块
存档分类
最新评论

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

阅读更多

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
}}

 

 

分享到:
评论

相关推荐

    java 语言做的时针时钟

    开发者巧妙地结合了Java的图形库、定时器和变换机制,创造了一个既实用又有趣的时钟应用。对于学习Java GUI编程的人来说,这是一个很好的示例,可以从中学习到如何构建动态的、交互式的桌面应用。

    C语言也能面向对象(一)——一个简单的类

    在C++或Java中,我们可以直接定义类来创建对象,但在C语言中,我们需要通过结构体来模拟类,并通过函数指针来模拟方法。 首先,我们可以通过创建一个结构体来表示类的实例,这个结构体包含了类的属性,即数据成员。...

    [剑指-Offer] 52. 两个链表的第一个公共节点(思维、快慢指针、巧妙解法)

    题目解析方法一:遍历+快慢指针+常规解法方法二:思维+快慢指针+巧妙解法 1. 题目来源 链接:数组中的逆序对 来源:LeetCode——《剑指-Offer》专项 2. 题目说明 输入两个链表,找出它们的第一个公共节点。 如下面...

    安卓Android源码——三原色圆形时间锁屏.zip

    本项目“安卓Android源码——三原色圆形时间锁屏”就是一个很好的实例,它展示了如何通过源码实现一个独特的锁屏界面,将时间显示与用户交互巧妙结合,为用户提供个性化的体验。 首先,我们要理解“三原色圆形时间...

    java-leetcode题解之第622题设计循环队列.zip

    循环队列是一种数据结构,它在数组或链表的基础上实现了队列的特点,同时通过巧妙的设计使得“出队”和“入队”的操作更为高效,尤其在处理满队列时避免了数组或链表的重新分配。以下是对这个主题的详细解释: 1. *...

    02丨数据结构原理:Hash表的时间复杂度为什么是O(1)?.pdf

    总结来说,哈希表的时间复杂度为O(1)是基于它能够快速通过哈希函数计算出数组下标并直接访问数据的假设。虽然实际操作中可能会遇到冲突,但通过有效的冲突解决策略,哈希表依然能提供高效的性能,成为解决大量查找...

    leetcodes2013

    《LeetCode源码解析——Java实现》 LeetCode是一个在线平台,它提供了各种算法和编程题目,旨在提升程序员的技能并帮助他们准备技术面试。"leetcodes2013"是一个存储库,包含了2013年部分LeetCode问题的Java源代码...

    Bluetooth MeyMouse Accelerometer camera:J2me加速度计摄像头灯基于移动设备上的蓝牙-开源

    今天我们将深入探讨一个有趣的项目——"Bluetooth MeyMouse Accelerometer camera",它巧妙地利用了J2ME(Java Micro Edition)平台,将老旧的J2ME手机转化为一个创新的蓝牙加速度计摄像头鼠标。 这个开源项目的...

    disruptorqueue:基于干扰器 RingBuffer 的阻塞队列实现

    总结来说,基于Disruptor的RingBuffer阻塞队列是一种高效、低延迟的并发解决方案。它通过消除锁竞争、实现无锁顺序化处理,以及引入智能的中断器机制,极大地提升了并发环境下的数据处理能力。对于需要处理大量并发...

    CS262F-TheFantasticFive:攀登日志Android应用

    总的来说,"CS262F-TheFantasticFive"项目展示了Android开发的全面技术栈,包括Java编程、UI设计、数据库操作、地理位置服务、权限管理和用户体验优化。对于学习Android开发的初学者和专业人士来说,这是一个极好的...

    将军

    总结来说,"将军"可能暗指Kotlin编程中的智慧和策略,而"Checkmate-main"可能是一个使用Kotlin开发的项目,可能涉及了游戏逻辑、函数式编程、空安全特性和并发处理等多个知识点。通过深入研究这些内容,我们可以更好...

    代码之美(中文完整版).pdf

    17.1. 从直接代码操作到通过函数指针操作 17.2. 从函数参数到参数指针 17.3. 从文件系统到文件系统层 17.4. 从代码到DSL(Domain-Specific Language) 17.5. 复用与分离 17.6.分层是永恒之道? 第18章 Python的字典类...

    【标题】: "Kotlin在码头工人建设中的应用——深入解析dojob项目" 【正文】: Kotlin,一种由JetBrains公司开发的静态类型的编程语言,近年来在Android开发领域获得了广泛的认可,同时也被广泛应用于服务器端开发、...

    Scripts-2.0

    总的来说,"Scripts-2.0"项目展示了C#在脚本环境中的强大潜力,不仅体现了其语言的强大功能,也反映了开发者的创新思维和技术实力。通过学习和研究这个项目,开发者不仅可以提升C#的编程技能,还能了解到如何构建一...

    Rez.App

    总的来说,Rez.App的成功在于其巧妙地利用了Kotlin语言的优势,如空安全、函数式编程、扩展功能和协程等,从而实现了高效、稳定且易于维护的代码。这不仅体现在应用本身的功能实现上,也体现在开发流程的优化和团队...

    leetcode凑硬币-leetcode-solutions:我的LeetCode解决方案

    总的来说,LeetCode作为编程挑战的宝库,提供了丰富的实践机会,帮助开发者锻炼思维,提高技能。无论是动态规划的巧妙应用,还是链表和树的灵活操作,甚至是分布式系统的深入理解,都是编程者不断进阶的宝贵资源。...

    kwaymergesort:TCSS 343 作业 3

    【标题】"kwaymergesort:TCSS 343 作业 3"涉及到的是一种特殊的排序算法——夸梅合并排序(K-way Merge Sort),这是计算机科学领域中数据结构与算法课程的一部分,通常在教授高级排序算法时会提到。在Java编程语言...

Global site tag (gtag.js) - Google Analytics