java基础day4

Day4

一、常规的死循环
  • while(true){ System.out.println(“好好学习!天天向上!”) }
  • for(;;){ System.out.println(“好好学习!天天向上!”) }
二、循环嵌套
  • 三种循环都可以进行相互的嵌套
  • 嵌套循环执行的规律:外层循环循环一次,内层循环循环一遍
  • 嵌套循环的语法:一个完整的循环结构嵌套另外一个完整的循环结构
三、数组 (就是一个容器,也是一个特殊的变量)
  • 产生的原因:用多个变量来纪录同一种类型的数据,比较麻烦
  • 特点:
    1.数组是引用数据类型
    2.可以存多个同类型的数据
    3.数组的长度在运行期间不能够改变
  • 初始化一个数组:

<一>.动态初始化方式

语法:数据类型[]  数组的名称 = new    数据类型[数据的长度]  
  • 注意点:
  1. 动态初始化必须给出其长度
  2. 决定数组的三要素:数组的数据类型、数组的名称、数组的长度

<二>.静态初始化:对其数据进行赋值

 语法格式:  
  1. 数据类型[] 数组名 = new 数组类型[] { 数据…… }
  2. 数据类型[] 数组名 = { 数据…… }

<三>.数组里的取值:

  1. 通过数组的下标(索引)来取值
  2. 索引是从0开始的且永远比其长度小
1. 如果直接输出数组的名称,获取的是数组的内存地址的hashcode(十六进制)  
2. 数组常见的错误:(1)ArrayIndexOutOfBoundsException 数组下标越界;(2)java.lang.NullPointerException 空指针异常
四、java的的虚拟模块(内存)

<一>.栈(存储的都是局部变量)

  • 方法里的参数
  • 方法类的变量
  • 只要离开作用域,值在栈里就不存在
  • 所有的方法的执行都是在栈里执行的
  • 所有方法里的变量都是随着方法的开始而开始,方法的结束而结束(静态变量除外)

<二>.堆

  • 只要new的对象都是在堆里,所有存在堆里的数据都有一个内存地址(十六进制)
  • 所有堆里的基础数据类型或引用数据类型都有默认值
整型(byte、short、int、long):0  
浮点型(float、double):0.0  
字符型(char):一个空字符,即‘\u0000’  
布尔型(boolean):false  
引用数据类型:null,表示变量不可引用任何对象  

<三>.方法区:class字节码信息、方法里的基本信息

<四>.本地方法栈:系统

<五>.寄存器:CPU

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

你可能感兴趣的:(java基础day4)