JAVA中的代码块
2016-01-26 00:49
225 查看
JAVA中使用“{}”括起来的代码称为代码块,根据代码块定义的位置和关键字不同,代码块可以分为四类:
普通代码块;
构造块;
静态块;
同步代码块。
1、普通代码块
直接在一个方法中出现的“{}”括起来的代码段称之为普通代码块。如下:
class Person{
public static void main(String args[]){
{//普通代码块
int x=10;
}
int x=1000;
}
}
如果不在普通代码块中,而是直接给x赋值为10的话,会和下面的给x赋值1000冲突,编译出错。
2、构造块
直接出现在类里的{}称为构造块,如下代码所示
class Person{
{//构造块
System.out.println("****构造块******");
}
public Person(){
System.out.println("****构造方法*****");
}
}
public class{
public static void main(String args[]){
new Person();
new Person();
new Person();
}
}
输出结果是:
****构造块******
****构造方法*****
****构造块******
****构造方法*****
****构造块******
****构造方法*****
所以,构造块先于构造方法执行,并且每实例化一个对象都会调用一次。
3、静态块,在“{}”前加static关键字的代码块称为静态块。静态块的作用是给静态属性赋初始值,所以静态块会先于主方法,先于构造方法,先于构造块等优先执行。
4、如果在代码块前加上 synchronized关键字,则此代码块就成为同步代码块。同步代码块的格式:
synchronized(同步对象){
需要同步的代码;
}
同步代码块是十分重要的一块,在介绍了线程后会有新的更新。
本文内容基本来自魔乐科技关于java的教程
普通代码块;
构造块;
静态块;
同步代码块。
1、普通代码块
直接在一个方法中出现的“{}”括起来的代码段称之为普通代码块。如下:
class Person{
public static void main(String args[]){
{//普通代码块
int x=10;
}
int x=1000;
}
}
如果不在普通代码块中,而是直接给x赋值为10的话,会和下面的给x赋值1000冲突,编译出错。
2、构造块
直接出现在类里的{}称为构造块,如下代码所示
class Person{
{//构造块
System.out.println("****构造块******");
}
public Person(){
System.out.println("****构造方法*****");
}
}
public class{
public static void main(String args[]){
new Person();
new Person();
new Person();
}
}
输出结果是:
****构造块******
****构造方法*****
****构造块******
****构造方法*****
****构造块******
****构造方法*****
所以,构造块先于构造方法执行,并且每实例化一个对象都会调用一次。
3、静态块,在“{}”前加static关键字的代码块称为静态块。静态块的作用是给静态属性赋初始值,所以静态块会先于主方法,先于构造方法,先于构造块等优先执行。
4、如果在代码块前加上 synchronized关键字,则此代码块就成为同步代码块。同步代码块的格式:
synchronized(同步对象){
需要同步的代码;
}
同步代码块是十分重要的一块,在介绍了线程后会有新的更新。
本文内容基本来自魔乐科技关于java的教程
相关文章推荐
- 传智播客168期JavaEE就业班(第一天 html)
- 正式发表--java学习第二天,变量等信息。
- Java设计模式-策略模式(Strategy Pattern)
- Kmeans算法(Jfreechart展示+Spring注入)
- eclipse的jvm性能优化
- 运用类反射机制简化Struts应用程序的开发 转
- KJAVA
- 【转】Spring 4.x实现Restful web service
- Java代码优化
- Ubuntu 安装eclipse
- 关于MyEclipse的数据库Derby的问题
- java中context上下探微
- 在Spring3中使用注解(@Scheduled)创建计划任务
- XMLGregorianCalendar和java.util.Date的相互转化
- Spring整合ActiveMQ的Demo
- ubuntu下eclipse导入tornado项目
- JAVA生成pdf
- 蜂窝教育Java培训:只要努力,没有办不到的事
- JAVA中的构造方法
- java导出数据到word(二)