0803总结

0803

常规的死循环

while(true){
    System.out.println("xxx");
}

for(; ;){
    System.out.println("xxx");
}

循环的嵌套

1、三种循环都可以相互嵌套
2、执行规律:外层循环一次,内层循环一轮
3、语法:一个完整的循环结构嵌套着另外一个完整的循环结构

数组

解决多个变量来记录同一种类型的数据麻烦的情况
数组就是一个容器,也就是一个特殊的变量
特点
数组是引用数据类型
数组可以存多个同类型的数据
数组长度在运行期间不可改变

初始化数组

动态初始化:
数据类型 [] 数组名称 =new 数据类型 [数据长度];

数据类型:表示数组存的是同一种数据类型
[]:表示其是数组
new:表示开辟空间
数据类型:与前面的数据类型一定要一致
数据长度:表示数组的容量
注意点:
动态初始化必须给其长度
数组的类型可以是引用数据类型,也可以是基础数据类型
数组只初始化都会有默认的值
三要素
数组的:数据类型、名称、长度

静态初始化:
1、 int [] money=new int [] {88,128,268,228};
2、 int [] money={88,128,268,228}; 

注意点
静态初始化不需要给其长度
静态初始化时根据具体的值来推算其长度
大括号里以逗号来分割

数组里的值

1、通过数组下标(索引)来取其值
2、索引是从0开始的
3、索引永远比其长度小1
4、如果直接输出的是数组的名称,获取数组的内存地址的哈希值(16进制)
5、获取数组里的具体值

数组的名称 [下标]

6、获取数组的长度

名称.length

java的分块

都是局部变量
局部变量包含两部分:方法里的参数;方法里的变量
只要离开作用域,栈里就没有值
所有的方法的执行都是在栈内
所有方法里的变量都是随着方法的开始而开始,方法的结束而结束(除了静态变量)

只要是new出来的东西都是在堆里
所有堆里的数据都有一个内存,这个地址是十六进制的
所有存在堆里的基础数据类型或者引用数据类型都有默认值

int     0
double  0.0
String  null
char    \u0000 (类似于 "")
方法区

class 字节码的信息
方法里的基本信息(比如方法名)

本地方法栈

系统

寄存器

cpu

数组的内存分析:
数组创建的时候,都会在栈与堆里面有同样一个地址,所有的赋值取值操作都是通过栈里面的地址,去找堆里的地址进行赋值或取值。

赋值的方法:

1、直接赋值
2、通过循环来赋值

数组常见的错误:
1. ArrayIndexOutOfBoundsException : 数组下标越界     
2. java.lang.NullPointerException : 空指针异常

作业

数组的定义:
若是引用型String,在赋值时每个值都要加""
若是字符型char,在赋值时每个字符要加’'

冒泡排序:
在if的执行操作里面,数组arr[]下标不能是 i,必须更换为 j 。

for (int i=0;i<arr.length-1;i++){
    for (int j=0;j<arr.length-1-i;j++){
        if (arr[j]>arr[j+1]){
            temp=arr[j];
            arr[j]=arr[j+1];
            arr[j+1]=temp;
        }
    }
}

插入一个字母时,找到其位置后,先将后面位置的元素向后移位,在移位的循环外再把新字母插进去。不可把插入新字母的代码放入移位的循环里面!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值