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. 「2018-12-02模拟赛」T1 最短路 解题报告

    1.最短路(short.pas/cpp/in/out) 问题描述: 小 C 终于被小 X 感动了,于是决定与他看电影,然而小 X 距离电影院非常远,现在假设 每条道路需要花费小 X 的时间为 1,由于 ...

  2. shell正则表达式和cut命令

    正则表达式 符号 描述 $ 匹配输入字符串的结尾位置 () 标记一个子表达式的开始和结束位置 * 匹配前面的子表达式零次或多次 + 匹配前面的子表达式一次或多次 . 匹配除换行符(\n)之外的任何单字 ...

  3. 利用Tampermonkey(油猴)+ IDM 实现百度云盘大文件下载(IDM安装教程)

    关注微信公众号:“指尖创意” 在菜单干货专区软件目录里领取链接: tampermonkey插件是一个免费的浏览器扩展和最为流行的用户脚本管理器,拥有适用于 Chrome, Microsoft Edge ...

  4. SqlBulkCopy批量插入和索引的关系

    .net中批量插入基本都用SqlBulkCopy,速度很快,但是这几天发现个问题,2000数据居然15s,百思不得其解.经过大量测试,发现过多的索引和索引碎片会严重影响插入速度,表的数据量大小反而不会 ...

  5. java动态代理、Proxy与InvocationHandler

    看了好多关于代理的文章,理解和整理一下. 1.代理的基本构成 抽象角色:声明真实对象和代理对象的共同接口,这样可在任何使用真实对象的地方都可以使用代理对象. 代理角色:代理对象内部含有真实对象的引用, ...

  6. 一个C#开发者重温Java的心路历程

    前言 我们都知道软件开发是工科,不是理科:本质上和电工.钳工是一样的. 也就是说,软件技术成长也与电工.钳工的技术成长是一样的,靠的是练,而不是学. 所以,很多时候,我们称应届大学生是一张白纸,啥也不 ...

  7. PQSQL 按照时间进行分组

    按照时间分组时一般是按照年.月.日进行分组,不会把时分秒也算进去,所以需要把时间戳提取出所需要的时间段,本质上是把时间戳格式化成对应形式的字符串,这个过程需要用to_char(timestamp, t ...

  8. 3maven常用命令和配置依赖

    依赖: 例:spring-context.jar 依赖 spring-aop.jar... A中的某些类 需要使用B中的某些类,则称为A依赖于B 在maven项目中,如果要使用 一个当时存在的Jar或 ...

  9. SpringCloud之Feign(五)

    Feign简介 Feign 是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Fei ...

  10. 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第一节:整体思路

    在构建本章节内容的时候,笔者也在想一个问题,究竟什么样的采集器框架,才能算得上是一个“全能”的呢?就我自己以往项目经历而言,可以归纳以下几个大的分类: 根据通讯协议:HTTP的.HTTPS的.TCP的 ...