java代码块
来源:互联网 发布:小强软件测试 编辑:程序博客网 时间:2024/04/26 15:07
代码块是指使用“{}”括起来的一段代码,根据位置不同,代码块可以分为四种:普通代码块、构造块、静态代码块、同步代码块
一.普通代码块
直接定义在方法中的代码块称为普通代码块public class Test1{ public static void main(String args[]){ { // 普通代码块 int x = 30 ; // 就属于一个局部变量 System.out.println("普通代码块 --> x = " + x) ; } int x = 100 ; // 与局部变量名称相同 System.out.println("代码块之外 --> x = " + x) ; }};
运行结果:
普通代码块 --> x = 30
代码块之外 --> x = 100
二. 构造块
构造块将代码块直接定义在类中,如下:class Test2{ { // 直接在类中编写代码块,称为构造块 System.out.println("1、构造块。") ; } public Test2(){ // 定义构造方法 System.out.println("2、构造方法。") ; }};public class Test2Main{ public static void main(String args[]){ new Test2() ; // 实例化对象 new Test2() ; // 实例化对象 }};
运行结果:
1、构造块。
2、构造方法。
1、构造块。
2、构造方法。
构造块优先于构造方法执行,且执行多次,只要一有实例化对象产生,就执行构造块中的内容。
三.静态代码块
直接使用static关键字声明就称为静态代码块.
class Test3{ { // 直接在类中编写代码块,称为构造块 System.out.println("1、构造块。") ; } static{ // 使用static,称为静态代码块 System.out.println("0、静态代码块") ; } public Test3(){ // 定义构造方法 System.out.println("2、构造方法。") ; }};public class Test3Main{ static{ // 在主方法所在的类中定义静态块 System.out.println("在主方法所在类中定义的代码块") ; } public static void main(String args[]){ new Test3() ; // 实例化对象 new Test3() ; // 实例化对象 }};
运行结果:
在主方法所在类中定义的代码块
0、静态代码块
1、构造块。
2、构造方法。
1、构造块。
2、构造方法。
静态块优先于主方法执行,如果在普通类中定义的静态块,优先于构造块执行,不管不多少个实例化对象产生,静态代码块只执行一次,静态代码块的主要功能就是为静态发生初始化。
四.同步代码块
同步代码块用于多线程中,解决线程同步问题
/* JAVA对于多线程的安全问题提供了专业的解决方式 就是同步代码块 synchronized(对象)//这个对象可以为任意对象 { 需要被同步的代码 } 对象如同锁,持有锁的线程可以在同步中执行 没持有锁的线程即使获取CPU的执行权,也进不去 同步的前提: 1,必须要有两个或者两个以上的线程 2,必须是多个线程使用同一个锁 必须保证同步中只能有一个线程在运行 好处:解决了多线程的安全问题 弊端:多个线程需要判断锁,较为消耗资源 */ class Tick implements Runnable { private int tick = 50; Object obj = new Object();//申请一个对象 public void run() { while(true) { synchronized(obj) { if(tick > 0) { //try{Thread.sleep(40);}catch(Exception e){} System.out.println( Thread.currentThread().getName() + " sail --" + tick--); } } } } } class TickDemo { public static void main(String []args) { Tick t = new Tick(); Thread t1 = new Thread(t); Thread t2 = new Thread(t); Thread t3 = new Thread(t); Thread t4 = new Thread(t); t1.start(); t2.start(); t3.start(); t4.start(); } }
0 0
- Java静态代码块,构造代码块,普通代码块
- Java:普通代码块、构造代码块、静态代码块
- Java-普通代码块,构造代码块,静态代码块
- java-代码块、静态代码块、构造代码块
- java 代码块,构造代码块,与静态代码块
- Java - 代码块和静态代码块
- Java中代码块
- java 静态代码块
- java代码块要点
- Java中的代码块
- JAVA中的代码块
- java代码块
- Java中的代码块
- java初始代码块
- JAVA 静态代码块
- Java代码块
- Java静态代码块
- java基础--代码块
- 【备忘】【No5】微信公众平台开发入门到实战开发视频教程(Java+PHP)
- 第25周-Photoshop-脚本编程简介
- Android 上百实例源码分析以及开源分析
- Android为CheckBox(复选框)设置可规定大小的图片
- 在html页面上嵌入JavaScript代码的几种方式
- java代码块
- MongoDB如何确保一致性
- 求二叉树的高度
- MFC中利用ListCtrl的列标题获取列索引的方法
- textarea高度随文字增多变化高度
- 抽象类和接口
- burpsuite 配置代理无效
- 数据库中查找包含换行符的记录
- uva 11129An antiarithmetic permutation