java中的代码块理解
代码块:就是用{}括起来到部分。根据应用的不同分为4类:普通代码块、构造块、静态代码块、同步代码块。
1.普通代码块:定义在方法中的代码块。
如:
public class Ex22 {
public static void main(String[] args){
// 普通代码块
{
int i = 3;
System.out.println("局部变量为 " + i);
}
int i = 5;
System.out.println("相对上面的 i 来说是全局的变量 " + i);
}
}
//局部变量为 3
//相对上面的 i 来说是全局的变量 5
2.构造块:直接在类中编写的代码块。
class Demo5{
{
System.out.println("构造块");
}
public Demo5(){
System.out.println("构造方法");
}
{
System.out.println("构造方法后的构造块");
}
}
public class Ex22 {
public static void main(String[] args){
new Demo5();
new Demo5();
}
}
//构造块
//构造方法后的构造块
//构造方法
//构造块
//构造方法后的构造块
//构造方法
对象被实例化一次构造块就执行一次;
构造块优先执行比构造方法.
3.静态代码块:static 关键字声明的代码块.
class Demo5{
{
System.out.println("1构造块");
}
public Demo5(){
System.out.println("2构造方法");
}
{
System.out.println("3构造方法后的构造块");
}
static {
System.out.println("4静态代码块");
}
}
public class Ex22 {
static {
System.out.println("在主方法类中定义的代码块");
}
public static void main(String[] args){
new Demo5();
new Demo5();
}
}
//在主方法类中定义的代码块
//4静态代码块
//1构造块
//3构造方法后的构造块
//2构造方法
//1构造块
//3构造方法后的构造块
//2构造方法
主方法静态代码块优先于主方法,
在普通类中静态块优先于构造块,
在普通类中构造块优先于构造方法,
静态块只实例化一次。
相关文档:
一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。
我们知道,Java的数据类型分为三大类,即布尔型、字符型和数值型,而其中数值型又分为整型和浮点型;相对 ......
Java语言反射提供一种动态链接程序组件的多功能方法。它允许程序创建和控制任何类的对象(根据安全性限制),无需提前硬编码目标类。这些特性使得反射特别适用于创建以非常普通的方式与对象协作的库。例如,反射经常在持续存储对象为数据库、XML或其它外部格式的框架中使用。Java reflection 非常 ......
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
线程(Thread)方面:
1、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
答:有两种实现方法,分别是继承Thread类与实现Runnable接口
用synchronized关键字修饰同步方法
反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定, ......