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();}
}
输入静态代码块
匿名代码块
构造方法
================
匿名代码块
构造方法
静态代码块类加载时执行...
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的....
没有父类的情况1,静态代码块-->静态成员变量-->成员变量(实例属性)-->代码块-->构造函数2, 静态代码块 和 静态成员变量 只会初始化一次有父类的情况1,父类非Object 静态成员变量 -- > 静态代码块 代码块-->成员变量(实例属性)-->构造函数2, 父类是Object (其实相当于没有父类) 成员变量(实例属性)-->代码块-->构造函数 静态代码块 -->静态成员变量基本所有的这一块度可以用上面的总结来判断(个人总结 如果差错 还望...
本文讲述有关一个类的静态代码块,构造代码块,构造方法的执行流程问题。首先来看一个例子/*** Created by lili on 15/10/19.*/class Person{static {System.out.println("执行Person静态代码块");}{System.out.println("执行Person构造代码块");}public Person(){System.out.println("执行Person构造方法");}
}class Student extends Person{static {System.out.println("执行Student静态代码块");}{System.out.println("执行Studen...
Java虚拟机的内存分区:Java栈、堆、方法区、本地方法栈、PC寄存器。还有一个常量池的概念,虚拟机会为每种类型分配一个常量池,而不是实例。例如有一个类有很多子类,那么在父类定义的final变量,在子类是不能被改变的。可以说明是在类型上分配的。被static修饰的变量或者方法是属于类本身,而不属于类的实例。在类被加载进虚拟机的时候就已经初始化了,他存在与方法区,方法区和堆区的时候是共享的,因此他被设计为线程安全的。假...