Java基础(二)

 这次学习Java,第一次接触内存中的程序的具体执行过程。感觉理解内存中数据的进出对程序的理解确实很有帮助。

        Java的执行过程在内存中一共占四个区域:

        heap (堆)区:用来存放new出来的东西,是一个对象的真正存放位置。堆用于动态分配和释放程序所使用的对象。

        stack (栈)区:用来存放局部变量,一般是对象的引用。

        data segmeng 区:用来存放静态变量和字符串常量(只是常量,new出来的String对象还是在heap中)。

        code segment 区:存放要执行的代码(函数,语句)。

      执行步骤:程序开始执行使,首先将要执行的代码从硬盘Load到内存中的code segment区中,然后找到main方法开始执行,执行过程根据语句中的变量的类型分配不同的内存空间。

举例:

程序代码:

  1. public class Cat{  
  2.     private static int sid=0;  
  3.     private String name;  
  4.     int id;  
  5.     Cat(String name){  
  6.          this.name=name;  
  7.          id=sid++;  
  8.     }  
  9.     public static void main(String[] args){  
  10.       Cat.sid=100;  
  11.       Cat mimi=new Cat("mimi");  
  12.       }  
  13. }  

执行过程,1 将代码加载到code segment区,

                    2 开始执行main方法,在data segment中创建静态变量sid,值为100,

                       在栈中创建局部变量"mimi”,其指向堆的的真正new的对象。在data segment中创建字符常量"mimi"。

                    3 开始执行构造函数,Cat有一个参数,是局部变量,所以在栈中创建局部变量"name",其指向data segment中的"mimi",在堆中创建mimi的真正内容,包括name,也指向data segment中的"mimi",   还有id,值为100,然后data segment中的sid+1=1=101。构造函数执行结束,释放栈中的局部变量name。

                       内存如图:

                      

                    4 然后回到main函数,main函数结束。释放所有内存。

            

                   

Java也是三大控制结构:顺序,选择,循环

分支语句

(1)if条件语句

if(){..}

if (){...}  else{...}

if(){...}elseif() {...}

if(){...}elseif(){...}elseif(){...}

if(){...}elseif(){...}elseif(){...}else{...}

当if或else的执行体只有一条语句时,可以省略{}。

 

(2)switch 语句

        switch(index){

                 case int;

                        ...

                       break;

                 case int;

                       ...

                       break;

                  default:

                      ...

         }

        注:JDK7之前,index 只能是byte,short,int,char,enum类型的值。JDK7可以使用String类型。

(3)三目运算符:X ?Y:Z(例如:x==0?0:-1)

 

循环语句:

(1)for语句: for(...;...;){...}

(2)while语句:while(逻辑表达式){...}

(3)do while 语句:do{...}while(逻辑表达式);

Java的条件和循环语句与c语言和c#的书写方式基本相同。另外循环中的break和continue也没有特殊用法,不再赘述。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值