/*
多个线层同时操作一个数据
会导制数据超出
同步代码块
synchronized(对像)
{
需要同步的代码
}
*/class Do7
{publicstaticvoid main(String[] args) {Piao p1=new Piao();Thread t1=new Thread(p1);Thread t2=new Thread(p1);Thread t3=new Thread(p1);Thread t4=new Thread(p1);t1.start();t2.start();t3.start();t4.start();}
}class Piao implements Runnable
{privatestaticint num=100;Object obj=new Object();//随便创建...
class Student {static {System.out.println("Student 静态代码块");}{System.out.println("Student 构造代码块");}public Student() {System.out.println("Student 构造方法");}}class Demo2_Student {static {System.out.println("Demo2_Student静态代码块");}public static void main(String[] args) {System.out.println("我是main方法");Student s1 = new Student();Student s2 = new Student();}}
原文:http://blog.51cto.c...
一、普通代码块直接在一个方法中出现的{}就称为普通代码块,例子程序如下: public class CodeDemo01{public static void main(String[] args){//普通代码块{int x = 10;System.out.println("x=" + x);}int x = 100;System.out.println("x=" + x);}}二、构造代码块直接在类中定义的没有加static关键字的代码块{}称为构造代码块,例子程序如下:public class CodeDemo02{public CodeDemo02(){System.out.println("========这是构造...
1/** 2 * 代码块执行顺序的测试3 * 执行顺序 静态代码块>main代码块>构造代码块>构造函数>普通代码块4 * @author Administrator5 * 6*/ 7publicclass ClassDemo01 {8static {9 System.out.println("这是一个静态代码块");
10 }
11 {
12 System.out.println("这是一个构造代码块");
13 }
1415public ClassDemo01() {
16 System.out.println("这是一个构造函数");
17 }
1819publicvoid print() ...
1class CodeDemo012{3 CodeDemo01()4 {5 System.out.println("CodeDemo01构造方法");6 }7 8 {9 System.out.println("CodeDemo01代码块");// 在new CodeDemo01 时 才执行这句,而且是在main后10 }
1112publicstaticvoid main(String[] args)
13 {
14 System.out.println("CodeDemo01的main方法");
15// 普通代码块16 {
17 System.out.println("CodeDemo01的main方法里...
什么是代码块 在Java中,用{}括起来的代码称之为代码块。 代码块分类局部代码块:在局部变量位置且用{}括起来的代码,用于限制局部变量的生命周期。构造代码块:在类中的成员变量位置并用{}括起来的代码,和构造方法处于同一个层级,且每次调用构造方法前会调用一次,故称之为构造代码块。静态代码块:在类中的成员变量位置并用{}括起来的代码,但是{}前需要加一个static关键字有何区别局部代码块用在局部位置,用于限...
this:可以使用this表示类中的属性------this.name=name可以使用this强调调用的是本类的方法可以使用this调用本类的构造方法------this();调用本类中无参构造方法可以使用this表示当前对象(调用方法的对象)----最重要的用途static:声明属性---------属性则为全局变量声明方法---------Person.setName("Tom");使用类名称调用static方法普通代码块:直接在方法或是语句中定义的代码块public class CodeDemo01{public static void main(...
Java中普通代码块,构造代码块,静态代码块区别及代码示例 对静态代码块以及构造函数的执行先后顺序,一直很迷惑,看了孙伟琴老师的《java面向对象编程》又结合毕老师的java基础视频中的讲解,现用下面的这段小程序来简明扼要的叙述一下,以加深理解,与君共勉.... public class Fu { static { Sys...
我们看一个例子:class Demo { public synchronized void test() { System.out.println("test方法开始执行,当前线程为:"+Thread.currentThread().getName()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("test方法执行完毕,当前线程为:"+Thread.c...
构造块:直接写在类中的代码块静态代码垮:使用static关键字声明的代码块静态代码块先于构造块,构造方法执行,而且只在类加载时候执行一次,后面在类实例化的时候会先执行构造块,而且每执行实例化一个对象,就会执行一次构造块,执行完构造块会执行构造方法。public class ConstructorCodeTest
{public static void main(String[] args) {Demo d1=new Demo();Demo d2=new Demo();Demo d3=new Demo();}
}class Demo
{{System.out...
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的....
静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。执行顺序优先级:静态块,main(),构造块,构造方法。 构造函数public HelloA(){//构造函数}关于构造函数,以下几点要注意:1.对象一建立,就会调用与之相应的构造函数,也就是说,不建立对象,构造函数时不会运行的。2.构造函数的作用是用于给对象进行初始化。3.一个对象建立,构造函数只运行一次,而一般方法可以被该对...
最近一在回顾Java中的一些知识,这里跟大家一起学习一下静态代码块,和构造代码块。首先,代码就是巴拉巴拉一些定义呀,赋值啊,运算的一些java代码,用两个大括号括起来,就变成了神奇的代码块{a=3;
}static{b=4;
}
就像上面那个样子。括号加了static修饰就变成了静态代码块,大家记住哦,只要加了static这个东西只后,后面那个东东就是静态的,而且只能操作静态的东东。比如静态方法,静态变量,静态指针,当然java里没有指针。...
package com.LearnJava.Thread;
/*同步代码块synchronized(同步监视器){//需要同步的代码}同步监视器:俗称 锁,可以是任何实例化的类.但是需要共用同一个实例.*/class WindowSell implements Runnable{Object obj = new Object();privateint ticket = 100;@Overridepublicvoid run() {while (true) {synchronized(obj){if (ticket > 0) {System.out.println(Thread.currentThread().getName() + "sell " + ticket--);}else{break;}}...
java 代码块加载顺序静态代码块匿名代码块public class BlockTest {{System.out.println("匿名代码块");}static {System.out.println("静态代码块");}public BlockTest() {System.out.println("构造方法");}public static void main(String[] args) {new BlockTest();System.out.println("================");new BlockTest();}
}
输入静态代码块
匿名代码块
构造方法
================
匿名代码块
构造方法
静态代码块类加载时执行...