JAVA-初步认识-第三章-局部代码块

一. 代码块的定义

任何大括号封装的,得到的都是一个区块,可以称为代码块。如果在代码块的前面加上if(), 那么这就叫做if代码块;如果加的是

public static void main(String[] args),那么这就叫做主函数代码块。这些都相当于代码块的名称。如果什么都不加,那么就称为局部代码块。

注意:上面的例子为什么能够输出if语句的A,条件表达式为false,为什么能够成立?

二. 深入解析局部代码块

有名字的都叫什么名字代码块,如i类代码块,主函数代码块,if代码块,如果代码块前面没有语句,那么就叫做局部代码块。

有局部代码块,也有局部变量。

举例来解析局部变量。下面的源代码在运行的时候,DOS会报错,显示System.out.println("over......."+m)语句找不到符号m,

究其原因就在于m是上面局部代码块里的变量,不适合于外面的范围,变量有自己的作用域。这种没有名字的局部代码块的作用就体现在这,虽然运行起来和顺序结构很相似,但还是有区别的。

{}的作用就是能划定作用范围,只在括号内起作用。

探讨一下例子背后的原理:jvm执行到int m=89;时,内存中会开辟一小块区间,命名为m,赋值为89,随着输出语句的结束以及}符号的到来,名为m的小块内存就被会释放,也就是说不存在叫m的内存块。为什么m内存块会被释放,原因在于m能够作用的范围结束了。如果继续保留,就会浪费内存空间。jvm运行到System.out.println("over......."+m)语句时,压根就没有叫做m的内存块变量了。

这里再强调一下局部代码块的作用:如果程序中定义的变量非常多,但是变量的作用范围非常小,在这里作用后,后面就不再起作用,为了节约内存,我们就会将此变量的运算封装在局部代码块里,运算到后面的时候,此变量就会被释放,节省内存。这里还要说一点,虽然计算机内存很大,但是虚拟机可操作的内存并不大,因此,必要的时候,就要优化程序。

局部代码块可以定义局部变量的生命周期。

借由局部代码块的概念,我们来探讨一下局部变量。

注意:只要是主函数里的变量,都被称作局部变量。

时间: 2024-10-10 16:55:45

JAVA-初步认识-第三章-局部代码块的相关文章

静态、构造、局部代码块 构造方法

总结 一.静态代码块(最大优先级) 静态代码块随着[类]的加载而执行,且只执行一次(至于类什么时候加载,这是一个高深的问题) 静态代码块的作用:给[类],而非对象,进行初始化 在Java工程的入口类中,静态代码块优先于 public static void main(String[] args)  函数执行 二.构造代码块与构造函数: 构造代码块是和构造函数同级的用 { } 包起来的一个代码块 构造函数每执行一次(即new一个对象),构造代码块就运行一次 构造代码块总是优先于构造函数而执行,有多

(转)JAVA AJAX教程第三章—AJAX详细讲解

现在开始深入AJAX,这里还是按老思路,理论和实践相结合.这章的内容主要是讲解AJAX步骤详解,下一张将会用一个AJAX技术实现页面提示效果的实例来说明AJAX的实现. 一.AJAX步骤详解 AJAX实质上是遵循Request/Server模式来进行工作的,这个框架基本的流程包括下面几个具体的步骤: (1)       XMLHttpRequest对象初始化 (2)       发送请求 (3)       服务器接收请求并进行处理 (4)       服务器返回响应数据 (5)       客

Java图式(第三章 流程控制、数组)

Java图式(第三章 流程控制.数组) 1.分支语句 1)if-else语句 2)switch语句 2.循环语句 1)while语句 while返回值不是1/0,必须是布尔表达式 2)do-while语句 3)for语句 4)continue/break语句 标号是对语句块/循环命名.eg:A:循环 continue A:直接终止标记的外循环 3.数组(引用类型) 1)声明时不确定大小 2)引用:下标引用,无指针 3)实例化(存储单元分配)语句:new 4)数组初始化:不要求每一维一样大 4.字

Java中的局部代码块、构造代码块、静态代码块

局部代码块: 作用:控制变量的生命周期: 在程序中,当我们已经使用完 x 后,并且在接下来的代码中,不会再用到x,那么就没必要让x 在内存中占用空间了,这用情况下,可以使用 局部代码块,将x及其所设计到的区域封装为局部代码块,他们在程序执行中顺序不变,只是在执行完成后消失. 表现形式,以代码体现如下: class TestDemo { public static void main(String[] args) { { int x = 9; System.out.println(x); } Sy

java中静态代码块(static{...}),局部代码块(方法中{...}),构造代码块(类中{...})区别。

1.局部代码块: 格式:在方法中{局部代码块执行语句} 局部代码块,又叫普通代码块.它是作用在方法中的代码块. 作用:是控制变量的生命周期. 在程序中当我们定义完成一个局部变量x之后,并且在接下来的代码中,不想再用到它时,那么就没必要让x在内存中继续占用空间.因此就有了局部代码块. 2.构造代码块: 格式:在类中{构造代码块执行语句} 作用:就是给所有对象进行初始化. 注意几点: 1)每次创建对象他都会执行. 2)构造代码快是优于构造函数执行. 3)构造代码块与构造函数的区别是:构造代码块是给所

关于构造代码块、局部代码块和静态代码块的作用和区别

构造代码块: 直接在类中定义且没有加static关键字的代码块称为{}构造代码; 作用:给对象统一初始化数据 public class Demo1 { public static void main(String[] args) { Test test = new Test(3); //构造代码块会在构造函数被调用时执行, 且在这个例子中比"this.id=id;"语句先执行,作用是给对象统一初始化数据; System.out.println(test); } } class Test

【code block】局部代码块+构造代码块+静态代码块

1.局部代码块 位置:位于类的方法中 表示方法:{} 作用:控制变量的生命周期,减少内存消耗 demo: public class LocalCode { public static void main(String [] args){ int y = 10; { int x = 20; System.out.println(x); } System.out.println(y);//运行到此时x变量已被垃圾收集 } } 2.构造代码块 位置:位于类中 表示方法:{} 作用:用于给每个对象进行初

java包,访问修饰符和代码块

包声明: package com.xxx.yyy 需要写在第一行 访问类,导包:import 包名.包名.类名 import java.util.Scanner import com.xxx.yyy.A; 访问修饰符:public,protected,default,private private: 只能在本类中使用 private int a=1; default: 在本类中和同包内使用 int b=2; protected: 在本类,本包和相关子类中使用 protected int c=3;

局部代码块和构造代码块

局部代码块 1 package com_package2; 2 3 public class Person3Demo { 4 public static void main(String[]args) 5 { 6 Person3 p = new Person3(); 7 p.speak(); 8 Person3 p1 = new Person3("hejinjin",23); 9 p1.speak(); 10 Person3 p2 = new Person3("hejinji