java的4种代码块】的更多相关文章

一.普通代码块 直接在一个方法中出现的{}就称为普通代码块,例子程序如下: 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关键字的代码…
原贴地址:http://www.cnblogs.com/end/archive/2012/12/21/2827554.html 一.普通代码块 直接在一个方法中出现的{}就称为普通代码块,例子程序如下: public class CodeDemo01{ public static void main(String[] args){ //普通代码块 { int x = 10; System.out.println("x=" + x); } int x = 100; System.out.…
用{}括起来的称为代码块: 普通代码块:类中方法的方法体 构造代码块:类中{}直接括起来的语句,每次创建对象都会被调用,先于构造函数执行 静态代码块:类中static{}括起来的语句,只执行一次,先于构造代码块块执行 同步代码块:类中synchronized(){}括起来的语句,多线程环境下互斥执行  …
运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System.out.println("I’m B class"); } static { System.out.println("static B"); } public static void main(String[] args) { new HelloB(); } } cla…
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux.网络.多线程,偶尔讲点Docker.ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!(关注公众号后回复"资料"即可领取 3T 免费技术学习资源以及我我原创的程序员校招指南.Java学习指南等资源) ** 本文主要介绍了三种代码块的特性和使用方法. 具体代码在我的GitHub…
Java之static静态代码块 构造代码块 使用{}包裹的代码区域,这里的代码区域特指位于class{}下面的而不是存在于其他type method(){}这类函数下面的代码区域 public class HelloA { /** ... */ { System.out.println("I'm A construct code block"); } } 构造函数代码块 构造函数代码块指的是构造函数中所包含的代码,类似className(){}中的代码块 public class H…
JAVA中的静态代码块 构造代码块 构造方法执行顺序: 静态代码块(类加载时执行)>>构造代码块>>构造方法 下面展示一个简单的例子,推荐大家动手运行一遍: public class Main { public static void main(String[] args) { son s = new son(); } } /*父类*/ public class father { private static String faterstaticArea = "fathe…
1.java和c#静态成员调用的不同之处 static 表示静态的,也就是共享资源,它是在类加载的时候就创建了 java中   可以通过实例来调用,也可以通过类名.成员名来调用,但是一般最好使用类名.成员这个方式,因为静态成员是属于类的,并不是属于具体的对象 c#中     只能通过类名.成员调用,并不能 用实例来进行调用 2.c#的静态构造函数和java中的构造代码块.静态代码块 c# 静态构造函数的特点:        1)静态构造函数不需要手动调用,系统自动调用        2)静态构造…
代码块含义:使用{ }括起来的代码 代码块类型: 1.局部代码块:定义在方法体中. 2.构造代码块:也叫初始化代码块,定义在类中方法体之外. 3.静态代码块:定义在类中方法体之外,被static修饰符所修饰, 随着类加载而执行. 4.同步代码块:在Java的多线程中,为解决并发操作可能造成的异常, 而引入同步监视器,使用同步监视器的通用方法就是同步代码块. 构造代码块VS构造方法: 在Java程序中构造代码块先执行,然后才是构造方法. 静态代码块:用static修饰的代码块 1.可以有输出语句.…
一.普通代码块 直接在一个方法中出现的{}就称为普通代码块,例子程序如下: 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 CodeDemo01{ public static void main(String[] args){ //普通代码块 { int x = 10; System.out.println("x=" + x); } int x = 100; System.out.println("x=" + x); } } 二.构造代码块 直接在类中定义的没有加static关键字的代码…
简单了解一下java虚拟机--jvm几个内存区域: 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息.常量.静态变量以及方法代码的内存区域, 常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息. 堆区:用于存放类的对象实例. 栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量.方法出口等信息. 当调用一个方法时,虚拟机栈中就会创建一个栈帧存放这些数据,当方法调用完成时,栈帧消失,如果方法中调用了其他方法,则…
构造函数.构造代码块和静态代码块容易混淆,它们的执行条件和执行顺序也常常容易犯迷.这里就针对这些问题说一下我个人的一些理解,顺便对这部分内容做个小结. 一.构造函数 格式:类名(参数1,参数2,-){构造函数执行语句}: 关于构造函数,以下几点要注意: 在Java中,任何变量在被使用前都必须先设置初值. Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor) 构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面: 1.构造方法的名字必须与定义他的类名完全相同,没有…
面线对象: /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 D:初始化值不同 成员变量:有默认初始化值 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用.   注意事项: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,…
许多小伙伴对于java中的三种初始化块的执行顺序一直感到头疼,接下来我们就来分析一下这三种初始化块到底是怎么运行的.有些公司也会将这个问题作为笔试题目. 下面通过一段代码来看看创建对象时这么初始化块是如何运行的 package com.hxy; public class CodeBlock{ public static void main(String[] args) { new HelloB(); // new HelloB(); } } class HelloA{ //无参构造器 publi…
java中有几种常见的代码块,那怎样区别他们呢? 这里就这些问题,浅谈下我个人的理解. 1.局部代码块 局部代码块,又叫普通代码块.它是作用在方法中的代码块.例如: public void show(){ {  System.out.println("局部代码块运行!"); } } 作用:是控制变量的生命周期. 在程序中当我们定义完成一个局部变量x之后,并且在接下来的代码中,不想再用到它时,那么就没必要让x在内存中继续占用空间.因此就有了局部代码块. 2.构造代码块 在类中: 格式:{…
静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public HelloA(){//构造函数 } 关于构造函数,以下几点要注意:1.对象一建立,就会调用与之相应的构造函数,也就是说,不建立对象,构造函数时不会运行的.2.构造函数的作用是用于给对象进行初始化.3.一个对象建立,构造函数只运行一次,而一般方法可以被该对象调用多次. 构造代码块 {//构造代码块 }…
代码块 ----a静态代码块 ----b构造代码块 ----c普通代码块 执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. a.静态代码块: 静态代码块在加载该类的时候执行,且只执行一次! class Test{ public static void main(String args[]) { Demo d1=new Demo();Demo d2=new Demo(); } } class Demo{ static{ System.out.println(&…
/* 多线程的安全问题: while(true) { if(tick>0) { //线程0,1,2,3在余票为1时,都停滞在这里,之后分别获得CPU执行权,打印出0,-1,-2等错票 System.out.println(Thread.currentThread().getName()+"....sale : "+ tick--); } } 问题的原因: 当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行一部分,还没有执行完,停滞 另一个线程参与进来执行,导致共享数据…
今天我总结了一下java中静态代码块 构造代码块 构造方法的执行顺序及其注意问题 首先要知道静态代码块是随着类的加载而加载,而构造代码块和构造方法都是随着对象的创建而加载 当时做了这么一个小案例(想必这个大多数学java的都做过,不知道是否都理解了) class Fu{ static { System.out.println("Fu static code"); } { System.out.println("Fu code"); } public Fu(){ Sy…
在网上看了一个这样的题目 public class StaticTest { public static void main(String[] args) { staticFunction(); } static StaticTest st = new StaticTest(); static { System.out.println("1"); } { System.out.println("2"); } StaticTest() { System.out.pri…
一.代码块: 构造代码块------类中方法的外面:每次调用构造方法都执行: 静态代码块------类中方法的外面,括号前加上static:只执行一次,随着类的加载而执行: static代码块.构造代码块,自己写的做实验的小例子: public class TestStatic{ public static void main(String args[]){ TestBlock t1 = new TestBlock(); System.out.println(t1); System.out.pr…
一.可以使用static关键字来定义“静态代码块” 1.语法规则 static { java语句: } 2.静态代码块在类加载时执行,并且只执行一次 3.静态代码块在一个类中可以编写多个,并且遵循自上而下的顺序依次执行. 4.静态代码块的作用是什么?怎么使用?用在哪里?什么时候用? 这当然和具体的需求有关,例如:项目中要求在类加载的时候执行代码完成日志的记录,那么这段记录日志的代码就可以编写在到静态代码块之中,完成日志记录. 静态代码块是java准备的一个特殊时刻,这个特殊时刻被称为类加载时刻,…
一.非静态代码块 1.声明格式 [修饰符] class 类名 { { 非静态代码块 } } 2.非静态代码块中的代码执行时机 (1)在"每次"创建对象的时候执行 (2)比构造方法早 Demo: class MyClass{ private String str; public MyClass(){ System.out.println("无参构造2"); } public MyClass(String str){ this.str = str; System.out…
/* 演示构造代码块的应用 */ class Person { String name; int age; //构造代码块 { cry(); } Person(String name, int age) { this.name = name; this.age = age; System.out.println("name:"+name+"---"+"age:"+age); } public void cry() { System.out.pri…
局部代码块: 作用:控制变量的生命周期: 在程序中,当我们已经使用完 x 后,并且在接下来的代码中,不会再用到x,那么就没必要让x 在内存中占用空间了,这用情况下,可以使用 局部代码块,将x及其所设计到的区域封装为局部代码块,他们在程序执行中顺序不变,只是在执行完成后消失. 表现形式,以代码体现如下: class TestDemo { public static void main(String[] args) { { int x = 9; System.out.println(x); } Sy…
class A { public A(){ System.out.println("测试!!!!!!!!!!!"); } } class Demo19 extends A { { x=7;//代码块初始化 System.out.println("hello world!测试代码块的执行顺序!AAAAAAAAAAA"); } public int x=1;//这里不会初始化变量值 只会声明变量 public int y=2;//这里不会初始化变量值 只会声明变量 pu…
http://www.cnblogs.com/naruto469/p/3608459.html public class Print { 2 3 public Print(String s){ 4 System.out.print(s + " "); 5 } 6 } 1 public class Test1 { 2 3 public static Print obj1 = new Print("1"); 4 5 public Print obj2 = new Pri…
原因在最后,这是其中的一个小例子. 如: SessionFactory负责保存和使用所有配置信息,消耗内存资源非常大 所以一个web项目要保证只创建一个SessionFactory 那么在使用hibernate创建一个工具类(HibernateUtils),用于获取Session对象时需要将其放在static代码块中, 又因下边的每个方法需要使用SessionFactory对象sf,所以将其单独拆出放在方法外. static代码块只执行一次原因: static代码块只在类加载时执行,类是用类加载…
static关键字 代码块 方法重写 1. 方法重写的特点: 2. 注意事项: static关键字 为什么需要学习static关键字? 针对某一个变量属于类而不属于某一个具体的对象的时候,我们可以考虑使用static关键字 static概述: 多个对象共享同一份数据 static的特点: static修饰变量又称为共享变量,类变量,静态变量 静态成员属于某一类的,而不属于某一个具体的对象 3.访问静态成员的方式: a.通过对象访问 不建议 b.通过类名访问 c.通过读写方法访问 4.静态stat…