java基础05

1:数组(掌握)
(1)数组是存储同一种类型的多个元素的容器。
(2)特点:数组中的每一个元素都有编号,从0开始,方便我们获取数据。
专业叫索引。
(3)一维数组的格式:
A:int[] arr = new int[3];
B:int[] arr = new int[]{1,2,3};
C:int[] arr = {1,2,3};
(4)二维数组的格式:
A:int[][] arr = new int[2][3];
B:int[][] arr = new int[2][];
C:int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
(5)Java的内存分配(理解)
栈:存储的是局部变量。
必须先赋值,才能使用。
用完就消失。
堆:存储的是new出来的东西。
有默认值。
整数:0
浮点:0.0
字符:'\u0000'
布尔:false
引用类型:null
在jvm空闲的时候,或者内存不够的时候,才启动垃圾回收机制回收垃圾。


方法区:
本地方法区:
寄存器:


对我今天画的内存图要能看懂。
(5)操作:
//数组遍历
public static void printArray(int[] arr){
        for(int i=0;i<arr.length;i++){
                System.out.println(arr[i]);
        }
}

//获取最值
public static int getMax(int[] arr){
        int max=arr[0];
        for(int i=1;i<arr.length;i++){
                if(max<arr[i]){
                        max=arr[i];
                }
        }
        return max;
}
//获取数组中指定元素第一次出现的索引
public  static int getIndex(int[] arr,int value){
        int index=-1;
        for(int i=0;i<arr.length;i++){
              if(arr[i]==value){
                      index=i;
                      break;
              }
        }
        return index;
}

(6)案例:

java中的参数传递问题。

/*
请写出下列程序的结果,并总结基本类型和引用类型的不同。

	基本数据类型:形式参数的改变不影响实际参数

	引用数据类型:形式参数的改变直接影响实际参数
*/
class ThinkTest 
{
	public static void main(String[] args) 
	{
		int a=10;
		int b=20;
		System.out.println("a="+a+",b="+b);
		change(a,b);
		System.out.println("a="+a+",b="+b);

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


	}
	public static void change(int a,int b){
		System.out.println("a="+a+",b="+b);
		a=b;
		b=a+b;
		System.out.println("a="+a+",b="+b);
	}
	public static void change(int[] arr){
		for(int i=0;i<arr.length;i++){
			if(arr[i]%2==0){
				arr[i]*=2;
			}
		}
	}
}

数据加密问题。

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

举例:比如说我有一个数据123456。
		把数据倒序:654321
		加5对10取余:109876
		交换位置:609871

		怎么把数据存储到数组中?
		int[] arr = {1,2,3,4,5,6};


		验证我们的代码有没有问题:
			12345

			54321
			09876
			69870

*/
class JiaMiDemo {
	public static void main(String[] args) {
		//定义一个整数
		//int number = 123456;
		int number = 12345;

		//定义一个数组
		int[] arr = new int[7];

		//定义一个索引
		int index = 0;

		//我们有没有办法能够获取到一个数据的每一个位上的数据
		/*
		arr[0] = number%10;
		arr[1] = number/10%10;
		arr[2] = number/100%10;
		arr[3] = number/1000%10;
		arr[4] = number/10000%10;
		arr[5] = number/100000%10;
		*/

		//这个循环实现了把数据存储到数组中,并且还倒序了。
		while(number > 0) {
			arr[index] = number%10; //arr[0]=6,arr[1]=5,arr[2]=4,arr[3]=3,arr[4]=2,arr[5]=1
			index++; //index=1,2,3,4,5,6
			number/=10; //number=12345,1234,123,12,1,0
		}

		//把每一个数据加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;

		//遍历数组
		for(int x=0; x<index; x++) {
			System.out.print(arr[x]);
		}
		System.out.println();
	}
}
 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值