一,笔记
1.循环:
1.常规的死循环:
while (true) 和 for (;;)
2.循环嵌套(三种循环都可以进行相互的嵌套)
执行的规律 : 外层循环循环一次 内存循环循环一遍。(记住,掌握)
2.数组
1.定义:
用多个变量来记录同一种类型的数据,即:就是一个容器 也就是一个特殊的变量
2.特点:
1.数组是引用数据类型
2.可以存多个同类型的数据
3.数组的长度在运行期间不能够变改变
3.初始化数组:
动态初始化方式:
语法: 数据类型[] 数组的名称 = new 数据类型[数据的长度];
如:int[] arr = new int[6];
注意点:
1.前后的数据类型必须一致
2. 动态初始化必须给其长度
3. 数组的类型既可以是引用数据类型也就是基础数据类型
4. .数组只初始化都会有默认的值
静态初始化:
语法:int[] moneys= new int[]{1,2}; 或 int[] moneys ={1,2};
注意点:
1.静态初始化时根据具体的值来推算出其长度
2.静态初始化不需要给其长度
数组取值:
如果直接输出是数组的名称,获取的数组的内存地址的哈希值.(16进制)
获取数组长度:数组名称.length
3.java划分了五块内存
a.栈(都是局部变量):
局部变量包含两部分
1. 方法里的参数
2.方法类的变量
3. 只要离开作用域,值在栈里就不存在
4. 所有的方法的执行都是在栈里执行
5.所有方法里的变量都是随着方法的开始而开始,方法的结束而结束(除了静态变量)
b.堆
只要是new 出来的东西都是在堆里, 所有存在堆里的数据都有一个内存地址,这个地址都是十六进制的。
所有存在堆里的基础数据类型,或者是引用数据类型都有默认值 。
c. 方法区, class字节码的信息 方法里的基本信息(比如方法叫什么名字)
d.本地方法栈,系统有关
e.寄存器: cpu有关
内存分析:
1.数组创建的时候, 都会在栈与堆里面有同样一个地址,所有的赋值取值操作都是通过栈里面的地址。
2. 去找堆里的地址 进行赋值与取值.
赋值的方式 : 1直接赋值 2通过循环来赋值
数组常见错误:
1. ArrayIndexOutOfBoundsException 数组下标越界
2. java.lang.NullPointerException 空指针异常
二,总结
第四天的学习,感觉开始慢慢开始抽象起来,有点难理解了,每个课上的知识点需要比前一天多花时间去理解,才能真正的运用起来,该记的需要记忆。需记忆深刻的:money[i]=input.nextInt(); 。
定义中间变量:
int temp=price[0];
for (int i=0;i<price.length;i++){
if (price[i]<temp){
temp=price[i];
}
if (word[j]>word[j+1]){
char temp=word[j];
word[j]=word[j+1];
word[j+1]=temp;
}
今天在写的是时候出错地方:
插入一个数字时,找到了位置,忘记中断了。
//找插入位置
for (int i=0;i<num.length;i++){
if (num[i]>a){
index=i;
break; //记的要中断;
}
}