java的值传递机制
一、练习:编写Java程序,将二维数组中的行列互调显示出来。
代码1为自己编写:
- package com.xxgpra.CH6;
- public class Hangliehudiao_pra4 {
- public static void main(String[] args) {
- int[][] arr1 = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
- Hangliehudiao_pra4 hang = new Hangliehudiao_pra4();
- System.out.println("数组原有内容: ");
- hang.showArray(arr1);
- for(int i = 0;i< arr1.length;i++){
- for(int j = 0;j<3;j++){
- int temp = 0;
- temp = arr1[i][j];
- arr1[i][j] =arr1[j][i];
- arr1[j][i] = temp;
- }
- }
- System.out.println("数组现有内容: ");
- hang.showArray(arr1); //变化后的数组指向同一地址,所以打印出来的结果一样
- }
- private void showArray(int[][] arr1) {
- for(int i = 0;i<arr1.length;i++){
- for(int j = 0;j<arr1.length;j++){
- System.out.println(arr1[i][j]);
- }
- System.out.println();
- }
- }
- }
代码2为参考答案:
- public class Eval { // 创建类
- public static void main(String[] args) {
- int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}};
- System.out.println("数组原有内容:");
- for(int i = 0;i<arr.length;i++){
- for(int j=0;j<arr.length;j++){
- System.out.print(arr[i][j]);
- }
- System.out.println();
- }
- System.out.println("行列互换后数组内容:");
- for(int i = 0;i<arr.length;i++){
- for(int j=0;j<arr.length;j++){
- System.out.print(arr[j][i]);
- }
- System.out.println();
- }
- }
- }
代码1打印的结果,都为行列互调后的数组。它们指向了同一地址。
二、知识点:java的值传递机制
1.概念
形参:方法在声明时的参数
实参:方法在调用时,实际传递给参数的变量、值
2.java参数传递机制:值传递
规则:如果传递的是基本数据类型的变量,那么将基本数据类型的变量的值传递过去。
如果传递的是引用数据类型的变量,那么将引用数据类型的变量的地址值传递过去。
3.典型例题与内存解析:
java的值传递机制的更多相关文章
- java 面向对象(六):类结构 方法(三) java的值传递机制
java的值传递机制 1.针对于方法内变量的赋值举例: System.out.println("***********基本数据类型:****************"); int ...
- java參数传递机制浅析
欢迎转载,转载请声明出处! ----------------------------------------- 前言: java语言中,參数的传递仅仅有一种机制.那就是值传递. 举例: 以下将通过几个 ...
- Java 为值传递而不是引用传递
——reference Java is Pass by Value and Not Pass by Reference 其实这个问题是一个非常初级的问题,相关的概念初学者早已掌握,但是时间长了还是容易 ...
- java的值传递笔记
1. 背景:开发小伙伴突然问我java是值传递还是引用传递,我说当然是值传递,只不过有时候传递一个对象时实际传递的是对象的地址值,所以让人容易产生一种引用传递的假象,貌似在李刚的疯狂java讲义有提到 ...
- java是值传递还是引用传递
首先写一个简便的Employee,以便测试使用. class Employee { private String name; public Employee(String name) { this.n ...
- Does Java pass by reference or pass by value?(Java是值传递还是引用传递) - 总结
这个话题一直是Java程序员的一个热议话题,争论不断,但是不论是你百度搜也好还是去看官方的文档中所标明的也好,得到的都只有一个结论:Java只有值传递. 在这里就不贴代码细致解释了,让我们来看看一些论 ...
- java面试3-对于java中值传递的理解(Hollis)
这是根据Hollis的直面java内容习得(有兴趣的可以加他微信公众号) 对于初学者来说,要理解java中的值传递很难理解,为什么说java只有值传递?那引用传递呢? java中的错误理解: 错误理解 ...
- Java是值传递还是引用传递?
Java的值传递和引用传递在面试中一般都会都被涉及到,今天我们就来聊聊这个问题.这个问题一般是相对函数而言的,也就是Java中所说的方法参数,那么我们先来回顾一下在程序设计语言中有关参数传递给方法的两 ...
- 堆栈详解 + 彻底理解Java的值传递和引用传递
本文旨在用最通俗的语言讲述最枯燥的基本知识 学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨 ...
随机推荐
- css display属性详解
css display属性在对css做layout设计时非常重要,它的值有以下几种: Value Description Play it inline Default value. Displays ...
- POI读取xls和xlsx
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...
- C#连接SQL Server测试
string con, sql; con = "Server=192.168.31.26;Database=TestDB;user=kala;pwd=Password"; sql ...
- lua学习笔记之userdata
这一段时间看了<programming in lua>中的第28章,看一遍并不是很难,但是只是朦胧的感觉,雾里看花,水中望月.最终还是决定敲出来自己看看,练练手,结果受益不少,也遇到了一些 ...
- windows时间同步脚本
#!/usr/bin/env python# -*- coding:UTF-8 -*-# 脚本用于windows时间同步,设置window计划任务每五分钟执行一次 import timeimport ...
- Jenkins安装 CentOS 7上安装Jenkins
CentOS 7上安装Jenkins Jenkins 安装 只安装不介绍 步骤1:更新CentOS 7 Linux系统管理员的最佳做法之一是使系统保持最新.安装最新的稳定包,然后重新启动. 1 2 ...
- Hibernate关于父类子类的映射
怕忘记,把栗子贴上来 以Person类和Student类为例 public class Person { private Integer id; private String name; privat ...
- select、poll和epoll比较
select select能监控的描述符个数由内核中的FD_SETSIZE限制,仅为1024,这也是select最大的缺点,因为现在的服务器并发量远远不止1024.即使能重新编译内核改变FD_SETS ...
- PHP------文件------文件整体操作
文件整体操作 [1]创建文件 touch("路径"); touch("./test.docx");//当前路径创建文件,创建的文档 显示的结果: touch ...
- Vue中引入jquery方法 vue-cli webpack 引入jquery
在vue-cli 生成的工程中引入了jquery(模板用的webpack) 首先在package.json里的dependencies加入"jquery" : "^2.2 ...