staticstatic可以修饰属性,方法,代码块,内部类特点随着类的加载而加载优先于对象存在修饰的成员被所有对象所共享访问权限允许时,可以不创建对象,直接被类调用
static修饰的属性,存储在内存中的静态区域,整个程序中只有这一个成员publicclass Test {publicstaticvoidmain(String[] args) {Person p = new Person();Person.setName("ttf");//类可以直接访问静态方法System.out.println(Person.name);//使用类直接访问静态属性...
在 Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity。 所有对象的非同步 方法都能够在任意时刻被任意线程调用,此时不需要考虑加锁的问题。 而对于对象的同步方法来说,在任意时刻有且仅有一个拥有该对象独占锁的线程能够调用它们。例如,一个同步方法是独占的。如果在线程调用某一对象的同步方法时,对象的独占锁被其他线程拥有,那么当前线程将处于阻塞状态...
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的....
1.文字阐述静态代码块的作用。2.构造代码块与构造函数的调用顺序如何?和方法的声明位置是否有关?为什么?构造代码块的作用是什么?3.类加载时,是否一定会执行静态代码块?如何手动控制类加载?4.定义类Person,Man,Woman形成继承关系。5.什么是抽象方法?什么是抽象类?抽象类是否有构造函数,是否可以重载?6.抽象修饰符有哪些非法组合?并给出合理的解释?7.super和this作用以及用法以及注意事项?8.定义接口1.IWhite2.IRich3....
/*
多个线层同时操作一个数据
会导制数据超出
同步代码块
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方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的....