1、在声明中赋值

/**
* Created by N3verL4nd on 2016/11/19.
*/ class Test{
private String str = "Hello World";
public void show(){
System.out.println(str);
}
} public class HelloWorld {
public static void main(String[] args) {
Test t = new Test();
t.show();
}
}

2、在构造器中设置值

/**
* Created by N3verL4nd on 2016/11/19.
*/ class Test{
private String str;
Test(){
str = new String("Hello World");
}
public void show(){
System.out.println(str);
}
} public class HelloWorld {
public static void main(String[] args) {
Test t = new Test();
t.show();
}
}

3、使用初始化块

/**
* Created by N3verL4nd on 2016/11/19.
*/ class Test{
private String str;
{
str = new String("Hello World");
}
public void show(){
System.out.println(str);
}
} public class HelloWorld {
public static void main(String[] args) {
Test t = new Test();
t.show();
}
}

只要构造类的对象,初始化块就会被执行。

/**
* Created by N3verL4nd on 2016/11/19.
*/ class Test{
{
str = new String("111");
}
private String str = "222";
Test(){
str = new String("333");
}
public void show(){
System.out.println(str);
}
} public class HelloWorld {
public static void main(String[] args) {
Test t = new Test();
t.show();
}
}

以上代码,调整初始化顺序,单步调试发现,构造函数最后被执行。

在声明中赋值与在初始化块中设置值则按照顺序执行。

/**
* Created by N3verL4nd on 2016/11/19.
*/ class Test{
Test(){
str = new String("333");
} {
str = new String("111");
}
private String str = "222"; static {
System.out.println(555);
} public void show(){
System.out.println(str);
}
} public class HelloWorld {
public static void main(String[] args) {
Test t = new Test();
t.show();
}
}

static块在类加载的时候被执行,也就是优先于main函数执行。顺序:进入main函数-->static块-->返回main函数。

无main函数的Hello World

public class HelloWorld {
static {
System.out.println("Hello World");
System.exit(0);
}
/*public static void main(String[] args) {
Test t = new Test();
t.show();
}*/
}

java数据域初始化的更多相关文章

  1. Java初始化数据域的途径

    Java调用构造器的具体处理步骤: 1.所有数据域被初始化为默认值(0,false或null); 2.按照在类声明中出现的次序,依次执行所有域的初始化语句和初始化块: 3.如果构造器第一行调用了第二个 ...

  2. Java中静态数据的初始化顺序

    Java的类中的数据成员中包含有静态成员(static)时,静态数据成员的初始化顺序是怎样的呢? [程序实例1] import java.util.*; import java.lang.*; imp ...

  3. Java编程思想——初始化与清理

    PS:最近一直忙于项目开发..所以一直没有写博客..趁着空闲期间来一发.. 学习内容: 1.初始化 2.清理 1.初始化   虽然自己的Java基础还是比较良好的..但是在解读编程思想的时候还是发现了 ...

  4. java四大域总结

    最近学完了web部分,发现有些地方总是单个容易理解,可是把所有的放在一起来大杂烩,总是有那么几个知识点容易混淆.其实网上的资料已经够多了,虽然也不乏辛劳的搬运工.可是最终的目的不就是要我们自身理解吗? ...

  5. Java中域 实例域 静态域

    1.java中的域 所谓的域,翻译成英文就是field, 也就是我们常说的字段,或者说是属性. 比如类的字段(属性),局部的,全局的.所谓域,其实是“field”的翻译 然后实例域,就是 实例(&qu ...

  6. 利用反射修改final数据域

    当final修饰一个数据域时,意义是声明该数据域是最终的,不可修改的.常见的使用场景就是eclipse自动生成的serialVersionUID一般都是final的. 另外还可以构造线程安全(thre ...

  7. Java面向对象之初始化块

    目录 Java面向对象之初始化块 普通初始化块 静态初始化块 初始化块与构造器 Java面向对象之初始化块 在程序设计中,让数据域正确地执行初始化一直是一个亘古不变的真理. 那么,有哪些手段可以初始化 ...

  8. Java类的初始化过程及清理

    一.类的数据成员初始化 Java中类的数据成员初试化可能有两种形式. 在定义类成员变量的地方直接提供初始化值(这是C++中不允许的) 在构造器中初试化.(Java中不存在类似C++中的初始化列表) 两 ...

  9. Java 类加载与初始化

    Java系列笔记(1) - Java 类加载与初始化 目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理 ...

随机推荐

  1. BuilderPattern(建造者模式)-----Java/.Net

    建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式

  2. SpringBootTest 测试工具

    以下内容,翻译自官方文档,并结合了学习过程的demo. Spring Boot提供了许多实用程序和注解,帮助测试应用程序.测试支持由两个模块提供:spring-boot-test 包含核心项,spri ...

  3. K8S集群搭建

    K8S集群搭建 摘要 是借鉴网上的几篇文章加上自己的理解整理得到的结果,去掉了一些文章中比较冗余的组件和操作,力争做到部署简单化. K8S组件说明 Kubernetes包含两种节点角色:master节 ...

  4. 删除centos自带的openjdk

    [wj@master hadoop]$ rpm -qa | grep javajava-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64python-javapa ...

  5. TensorFlow——tf.contrib.layers库中的相关API

    在TensorFlow中封装好了一个高级库,tf.contrib.layers库封装了很多的函数,使用这个高级库来开发将会提高效率,卷积函数使用tf.contrib.layers.conv2d,池化函 ...

  6. 双重 hash

    #include<stdio.h> #include<map> #include<queue> #include<algorithm> using na ...

  7. OffSet和Utc

    DateTime dtt = System.DateTime.Now ;//utcnow是格林威治的时间,与北京时间-8 strin(dtt); public static string strin( ...

  8. FileUpload的控件上传excel

    在一个使用FileUpload的控件上传excel,读取excel的数据 因为上传的路径一直被限定在C:\Program\IIS\Express 一直限制这个文件下, 想要解决这个问题. 在谷歌浏览器 ...

  9. 曹工说Spring Boot源码(12)-- Spring解析xml文件,到底从中得到了什么(context:component-scan完整解析)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  10. PythonI/O进阶学习笔记_11.python的多进程

    content: 1. 为什么要多进程编程?和多线程有什么区别? 2. python 多进程编程 3. 进程间通信 =======================================   ...