Java入门第二篇

本文介绍了Java编程的基础知识,包括数组的定义、初始化及其分类,详细讲解了动态初始化和静态初始化两种方式。接着,文章探讨了方法的概念和定义,强调了方法的重用性和可读性。然后,作者引入了类和对象的概念,解释了类的属性和行为,并展示了如何创建和调用对象。最后,文章提到了面向对象编程的基本思想和封装的重要性。
摘要由CSDN通过智能技术生成

十一、数组

1.数组是什么?为什么使用数组?
比如我要统计每位员工的工资,我得定义多个变量去分开存储,因为一个变量只能保存一个数据,如果过多的员工,
太麻烦了,那么我怎么用一个变量去存储多个员工工资呢?
可以使用数组,数组就是一个大的容器,他可以存放多个值
2.什么是数组?
数组和变量差不多,都是存放数据的,不同的是变量只能保存一条数据,而数组可以保存多条数据,前天这个多条数据
必须是同一类型的
数组是引用数据类型

3.如何定义数组?
数组类型[] 数组名;
如果定义好数组以后,必须要给数组进行初始化。
数组是一个引用数据类型
数组的初始化分为两种情况:
(1).动态初始化:指定数组的长度,一旦长度指定,就是数组中只能存放多少数组
两种格式:
第一种:
数组类型[] 数组名=new 数组类型[数组长度];
第二种方式:
数组类型[] 数组名;
数组名=new 数组类型[数组长度];
(2)静态初始化:不是指定数组长度,而是直接在初始化数组的同时给数组赋值
两种:
第一种:
数组类型[] 数组名=new 数组类型[]{数据1,数据2…};
第二种:
数组类型[] 数组名;
数组名=new 数组类型[]{数据1,数据2.。。。};
还有一种最简单的方式:
数组类型[] 数组名={数据1,数据2…};

	//统计每位员工的工资 5位

// int money=5000;//第一位
// int money1=8000;//第二位
// int money2=8000;//第二位

	//1.定义了一个数组,并进行动态初始化
	/**
	 * int:数组类型是int类型的,也就代表我这个数组只能存放整数,而且只能存放9个整数
	 * array:数组名
	 */
	int[] array=new int[9];
	//2.动态初始化的第二种
	double[] array1;
	array1=new double[10];
    //创建好了数组,怎么给数组进行赋值。通过数组的下标,数组的下标从0开始
	array[0]=10;//给数组的第一个元素赋值
	array[1]=11;

// array[8]=“aaa”; 错误的
// array[9]=20; 数组下标越界
System.out.println(array[0]);

	//3.静态初始化第一种:
	int[] array2=new int[]{8,9,45,20,19};
	System.out.println(array2[3]);//20
	
	//4.静态初始化的第二种:
	int[] array3;
	array3=new int[]{67,89,90,1,34};
	System.out.println(array3[1]);//89
	
	//5,最简洁的方式创建数组
	int[] array4={12,3,4,6,2};
	System.out.println(array4[4]);//2
	
	//6.我想获取数组的长度    数组名.length,数组的长度一旦定义,不可改变
	System.out.println("array3数组的长度:"+array3.length);

// System.out.println(array3[5]=10);

	//7.数组中常见的几种异常
	//数组越界异常:ArrayIndexOutOfBoundsException
	int[] a=new int[2];
	//System.out.println(a[2]=10);//错误的
	
	//NullPointerException:空指针
	int[] b=null;
	System.out.println(b[0]);

int[] array=new int[]{12,4,6,34,90,89,12};
//我想获取数组的每一个元素值
System.out.println(array[0]);
System.out.println(array[1]);
//…
//for使用循环 i代表的是数组的下标
System.out.println(“使用for循环遍历数组”);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}

	//foreach(for循环的增强版)
	System.out.println("foreach遍历数组");
	/**
	 * for(定义变量接受数组的每一个元素值:要遍历的数组名)
	 * 数组遍历只有两种
	 */
	for(int a:array){
		System.out.println(a);
	}

数组分类
1.基本数据类型的数组
2.动态初始化数组以后,数组的元素都会赋予一个默认值
byte short int long double float char boolean
0 0 0 0 0.0 0.0 空格 false
2.引用数据类型的数组
String 接口 自己定义类…
引用数据类型的默认值为null

	//int 类型的数组
	int[] num=new int[5];
	num[0]=10;
	num[3]=12;
	for(int n:num){
		System.out.println(n);
	}
   //double类型
	double[] d=new double[2];
	System.out.println(d[0]);//0.0
	System.out.println("=======================");
	//char类型
	char[] c=new char[3];

// System.out.println(c[0]);//空格
for(int i=0;i<c.length;i++){
System.out.println("-"+c[i]+"-");
}
//boolean
boolean[] b=new boolean[5];
System.out.println(b[2]);//false

	//String
	String[] str=new String[4];
	str[0]="张三";
	for(String s:str){
		System.out.println(s);
	}
	
	//数组类型是Student类型
	Student[] stu=new Student[1];
	stu[0]=new Student("张三",18);//创建了一个对象,并且给这个对象的属性赋值
	for(int i=0;i<stu.length;i++){
		System.out.println("姓名:"+stu[i].getName()+"年龄:"+stu[i].getAge());
	}

java中的内存是怎么进行分配的?
内存的申请和释放都是jvm进行管理的,java程序要运行,jvm会自动的向电脑申请一块内存,
把这块内存分为5部分:
1.栈(Stack):主要存放局部变量(重点)
2.堆(Heap):凡是new出来的东西都在堆里面,堆当中的数据都有默认原则:(重点)
整数 0 小数 0.0 布尔:false char:空格 引用数据类型:null
3.方法区(Method Area):存放的是与.class相关的信息
4.本地方法区(Native Method Area):与操作系统有关
5.寄存器(Register):与cup有关


1.求出学生成绩的总分、平均分、最高分、最低分
int[] score=new int[]{90,89,56,87,98};
//总分
int sum=0;
for(int i=0;i<score.length;i++){
sum+=score[i];
}
System.out.println(“总分:”+sum);
//平均分
int avg=sum/score.length;
System.out.println(“平均分:”+avg);

	//最高分
	int max=score[0];
	for(int i=0;i<score.length;i++){
		if(max<score[i]){
			max=score[i];
		}
	}
	System.out.println("最高分:"+max);
	
	//最低分
	int min=score[0];
	for(int i=0;i<score.length;i++){
		if(min>score[i]){
			min=score[i];
		}
	}
	System.out.println("最低分:"+min);

//
2. {“C语言“,”C++“,”C#“,”Java“,”Python“,“js”}; 逆序输出。
String[] str=new String[]{“C语言”,“C++”,“C#”,“Java”,“Python”};
for(int i=0;i<str.length/2;i++){
String temp=str[i];
str[i]=str[str.length-1-i];
str[str.length-1-i]=temp;
}
for(String s:str){
System.out.println(s);
}


冒泡排序(重点)
口诀(升序)
n个数字来排队
两两相比小靠前
外层循环n-1
内层循环n-1-i
//从大到小
int[] array={76,3,234,90,6,78,1,-1};

	//外层循环控制趟数
	for(int i=0;i<array.length-1;i++){
		//内层控制次数
		for(int j=0;j<array.length-i-1;j++){
			//比较  从大到小用<  小到大>
			if(array[j]<array[j+1]){
				int temp=array[j];
				array[j]=array[j+1];
				array[j+1]=temp;
			}
			
		}
	}
	for(int num:array){
		System.out.println(num);
	}

选择排序(了解):效率较低
int[] num={25,4,56,122,2};
//使用选择排序实现小到大排列
for(int i=0;i<num.length-1;i++){
for(int j=i;j<num.length;j++){
if(num[i]>num[j]){
int temp=num[i];
num[i]=num[j];
num[j]=temp;
}
}
}
for(int n:num){
System.out.println(n);
}


二维数组:数组中的数组

  • 1.声明二维数组:

  • 数据类型[][] 数据名;

  • 第一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值