今天看了大神们的博客感觉自己和别人写的不是一种语言,我实在是太垃圾了
但是又有什么办法呢,只能一步一步走把浪费过的时间追回来。。。
代码块
1. 局部代码块
定义在方法或语句中
特点:以{}划定的代码区域
2.构造代码块
定义在成员位置中的代码块
特点:优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作,没创建一个对象均需要执行一次构造代码块
3.静态代码块
定义在成员位置,用static修饰的代码块
特点:优先于主方法执行,优先于构造代码块执行,当以任意形式第一次使用到该类时执行。该类不管创建多少对象,静态代码块只执行一次。可以给静态变量进行初始化,也可以给类进行初始化
class Person{
//这是一个构造代码块
{
System.out.println("构造代码块");
}
//静态代码块
static{
System.out.println("静态代码块");
}
Person(){
System.out.println("构造函数");
}
void show(){
System.out.println("函数代码块");
}
}
class DemoBlack{
public static void main(String[] args)
{
Person p=new Person();
p.show();
}
}
输出结果可以看出执行顺序
//当我们多次输出时可以发现静态代码块只执行了一次
class Person{
//这是一个构造代码块
{
System.out.println("2.构造代码块");
}
//静态代码块
static{
System.out.println("1.静态代码块");
}
Person(){
System.out.println("3.构造函数");
}
void show(){
System.out.println("4.函数代码块");
}
}
class DemoBlack{
public static void main(String[] args)
{
Person p=new Person();
p.show();
Person p2=new Person();
p2.show();
Person p3=new Person();
p3.show();
}
}
以上总结完。
下面说个Java的报错
解决 java:错误:编码GBK的不可映射字符
通过DOS编译时报错:
解决办法:
使用javac -encoding UTF-8 加文件名.java