java中的代码块理解
代码块:就是用{}括起来到部分。根据应用的不同分为4类:普通代码块、构造块、静态代码块、同步代码块。
1.普通代码块:定义在方法中的代码块。
如:
public class Ex22 {
public static void main(String[] args){
// 普通代码块
{
int i = 3;
System.out.println("局部变量为 " + i);
}
int i = 5;
System.out.println("相对上面的 i 来说是全局的变量 " + i);
}
}
//局部变量为 3
//相对上面的 i 来说是全局的变量 5
2.构造块:直接在类中编写的代码块。
class Demo5{
{
System.out.println("构造块");
}
public Demo5(){
System.out.println("构造方法");
}
{
System.out.println("构造方法后的构造块");
}
}
public class Ex22 {
public static void main(String[] args){
new Demo5();
new Demo5();
}
}
//构造块
//构造方法后的构造块
//构造方法
//构造块
//构造方法后的构造块
//构造方法
对象被实例化一次构造块就执行一次;
构造块优先执行比构造方法.
3.静态代码块:static 关键字声明的代码块.
class Demo5{
{
System.out.println("1构造块");
}
public Demo5(){
System.out.println("2构造方法");
}
{
System.out.println("3构造方法后的构造块");
}
static {
System.out.println("4静态代码块");
}
}
public class Ex22 {
static {
System.out.println("在主方法类中定义的代码块");
}
public static void main(String[] args){
new Demo5();
new Demo5();
}
}
//在主方法类中定义的代码块
//4静态代码块
//1构造块
//3构造方法后的构造块
//2构造方法
//1构造块
//3构造方法后的构造块
//2构造方法
主方法静态代码块优先于主方法,
在普通类中静态块优先于构造块,
在普通类中构造块优先于构造方法,
静态块只实例化一次。
相关文档:
真正发现人生需要知识的时候,我的青春已经浪费了一半。
于是鼓起勇气来到北大青鸟学习IT,鉴于多方考虑,还是选择了软件测试。
如今课业的一大半也已结束,从刚开始的一无所知,渐渐成长为一个菜鸟……
在课程的学习过程中,才渐渐发现自己对于这个行业的兴趣,尤其是软件开发这一块。
甚至对自己选择做测 ......
一、.net Server端
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Web.Services.Description;
namespace WebApplica ......
Java语言反射提供一种动态链接程序组件的多功能方法。它允许程序创建和控制任何类的对象(根据安全性限制),无需提前硬编码目标类。这些特性使得反射特别适用于创建以非常普通的方式与对象协作的库。例如,反射经常在持续存储对象为数据库、XML或其它外部格式的框架中使用。Java reflection 非常 ......
近日在编程中用到接口知识,由于课本中对接口描述较少,所以想从网上查找资料,但网上的资料大多也只是冗长的描述,所以在此提供一自己写的实例,供大家参考:
原题是这样的:在java中,定义一个接口,声明计算长方形面积和周长的抽象方法,再用一个类去实现这个接口,再编写一个测试类去使用这个接口。
首先,接口必须单 ......
JAVA annotation入门
最近对spring源码感兴趣,今天看到annotation部分,略记之。
一. 最常见的annotation
@Override:用在方法之上,用来告诉别人这一个方法是改写父类的
@Deprecated:建议别人不要使用旧的API的时候用的,编译的时候会用产生警告信息,可以设定在 ......