美文网首页
Java值传递、数据加密

Java值传递、数据加密

作者: 十一_2bef | 来源:发表于2018-06-08 17:30 被阅读0次

值传递

/*
    思考题1:看程序写结果,然后分析为什么是这个样子的。并画图讲解。最后总结Java中参数传递规律。
    
    Java中的参数传递问题:
        基本类型:形式参数的改变对实际参数没有影响。基本类型传递的是数据值
        引用类型:形式参数的改变直接影响实际参数。引用类型传递的是地址值
*/
class ArgsDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println("a:"+a+",b:"+b); //a:10,b:20
        change(a,b);
        System.out.println("a:"+a+",b:"+b); //???    a:10,b:20

        int[] arr = {1,2,3,4,5}; 
        change(arr);
        System.out.println(arr[1]); //???    4
    }

    public static void change(int a,int b) { //a=10,b=20
        System.out.println("a:"+a+",b:"+b); //a:10,b:20
        a = b;    //a=20
        b = a + b; //b=40
        System.out.println("a:"+a+",b:"+b); //a:20,b:40
    }

    public static void change(int[] arr) { //arr={1,2,3,4,5};
        for(int x=0; x<arr.length; x++) {
            if(arr[x]%2==0) {
                arr[x]*=2;
            }
        }
        //arr={1,4,3,8,5};
    }
}

Java 基本类型值传递,引用类型值传递 内存图解:


image.png

/*
某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,
在传递过程中需要加密,加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,
然后,把加密后的结果在控制台打印出来。

题目要求:
    A:数据是小于8位的整数
        定义一个int类型的数据
        int number = 123456;
    B:加密规则
        a:首先将数据倒序
            结果 654321
        b:然后将每位数字都加上5,再用和除以10的余数代替该数字
            结果 109876
        c:最后将第一位和最后一位数字交换
            结果 609871
    C:把加密后的结果输出在控制台
    
    通过简单的分析,我们知道如果我们有办法把这个数据变成数组就好了。
    不是直接写成这个样子的:
        int[] arr = {1,2,3,4,5,6};
        
    如何把数据转成数组呢?
        A:定义一个数据
            int number = 123456;
        B:定义一个数组,这个时候问题就来了,数组的长度是多少呢?
            int[] arr = new int[8]; //不可能超过8
            在赋值的时候,我用一个变量记录索引的变化。
            定义一个索引值是0
            int index = 0;
        C:获取每一个数据
            int ge = number%10
            int shi = number/10%10
            int bai = number/10/10%10
            
            arr[index] = ge;
            index++;
            arr[index] = shi;
            index++;
            arr[index] = bai;
            ...

/
/

知识点:
变量
数据类型
运算符
键盘录入
语句
方法
数组
*/
import java.util.Scanner;

class JiaMiDemo2 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);

    //请输入一个数据
    System.out.println("请输入一个数据(小于8位):");
    int number = sc.nextInt();
    
    //写功能实现把number进行加密
    //调用
    String result = jiaMi(number);
    System.out.println("加密后的结果是:"+result);
}

/*
    需求:写一个功能,把数据number实现加密。
    两个明确:
        返回值类型:String 做一个字符串的拼接。
        参数列表:int number
*/
public static String jiaMi(int number) {
    //定义数组
    int[] arr = new int[8];
    
    //定义索引
    int index = 0;
    
    //把number中的数据想办法放到数组中
    while(number > 0) {
        arr[index] = number%10;
        index++;
        number /= 10;
    }
    
    //把每个数据加5,然后对10取得余数
    for(int x=0; x<index; x++) {
        arr[x] += 5;
        arr[x] %= 10;
    }
    
    //把第一位和最后一位交换
    int temp = arr[0];
    arr[0] = arr[index-1];
    arr[index-1] = temp;
    
    //把数组的元素拼接成一个字符串返回
    //定义一个空内容字符串
    String s = "";
    
    for(int x=0; x<index; x++) {
        s += arr[x];
    }
    
    return s;
}

}

相关文章

  • Java值传递、数据加密

    值传递 8种基本类型值传递传基本类型,外面的值无影响 基本类型传递的是数据值 引用传递 引用传递传除基本类型之外的...

  • Java值传递、数据加密

    值传递 Java 基本类型值传递,引用类型值传递 内存图解: /*某个公司采用公用电话传递数据信息,数据是小于8位...

  • Java值传递、数据加密

    值传递 Java 基本类型值传递,引用类型值传递 内存图解:

  • 2019-03-29 URLEncoder.encode与URL

    java中使用 url 的 queryString 传递参数时,因为参数的值,被DES加密了,而加密得到的是 Ba...

  • Java调用方法时值传递的理解

    Java中方法调用时,没有按引用传递这个说法,只有按值传递。基本类型数据的传递和引用类型数据的传递,根本上都是按值...

  • Java常用技巧

    1. 泛型数组合并 2. 值传递 & 引用传递 2.1 Java数据类型   Java数据类型分为基本数据类型和引...

  • 【面试】Java面试-基础核心一

    一、java中方法间的值传递相关 1、常量值传递 结果 2、数据传递 结果 3、对象传递,并修改对象属性值 结果 ...

  • Java 值传递和引用传递

    Java方法中的参数传递都是值传递,唯一区分的是基本数据类型值传递和引用类型的传递。 Java把内存分成两种,一种...

  • 自整理3 值传递和引用传递

    java的值传递和引用传递 首先,由于java没有指针机制,所有java归根究底只有值传递,没有引用传递。java...

  • 聊聊Java内部类

    一.磨叽磨叽Java值传递与引用传递 “在Java里面参数传递都是按值传递”即:按值传递是传递的值的拷贝,按引用传...

网友评论

      本文标题:Java值传递、数据加密

      本文链接:https://www.haomeiwen.com/subject/pkwasftx.html