JAVA实例变量的初始化过程
假设有这样一段代码:
public class Cat {
private String name;
private int age;
public String toString() {
return "Cat [name=" + name + ", age=" + age + ", weight=" + weight
+ "]";
}
public Cat(String name, int age) {
System.out.println("Cat构造函数开始执行");
this.name = name;
this.age = age;
}
{
System.out.println("非静态代码块开始执行");
weight=2.0;
}
private double weight = 2.8;
}
public class Tets02 {
/**
* @param args
*/
public static void main(String[] args) {
Cat cat= new Cat("波斯猫",2);
System.out.println(cat.toString());
}
}
得出来weight的值是2.8;
执行的过程是:
double weight;
weight=2.0//非静态代码块执行
weight=2.8
此时weight=2.8是发生在构造函数中的。
但是如果是:
public class Cat {
private String name;
private int age;
private double weight = 2.8;
public String toString() {
return "Cat [name=" + name + ", age=" + age + ", weight=" + weight
+ "]";
}
public Cat(String name, int age) {
System.out.println("Cat构造函数开始执行");
this.name = name;
this.age = age;
}
{
System.out.println("非静态代码块开始执行");
weight=2.0;
}
}
得到的结果是weight=2.0
说明初始化代码块与构造函数的地位平等,完全是按照代码先后来执行的
JAVA实例变量的初始化过程的更多相关文章
- java 实例变量的初始化
1.对于实例变量,该类没创建一次实例,就需要为实例变量分配一块内存空间:2.程序通过Person对象来访问eyeNum类变量时,底层依然会转换为通过Person访问eyeNum类变量:3.当Perso ...
- Java实例变量初始化
由一道面试题所想到的--Java实例变量初始化 时间:2015-10-07 16:08:38 阅读:23 评论:0 收藏:0 [点我收藏+] 标签:java ...
- Java静态变量的初始化(static块的本质)
Java静态变量的初始化(static块的本质) 标签: javaclassstring编译器jdk工作 2010-02-06 07:23 33336人阅读 评论(16) 收藏 举报 分类: Jav ...
- Java类变量、实例变量的初始化顺序
题目: public class InitTest{ public static int k = 0; public static InitTest t1 = new InitTest("t ...
- Java中类变量和实例变量的初始化
1. 类变量和实例变量 类变量即类成员变量中的静态变量,它们可以通过类名来直接访问. 实例变量是类成员变量中的非静态变量,只有在实例化对象之后通过对象来访问. 2. 空间分配的时间不同 类变量是在类加 ...
- [转]在static代码块或static变量的初始化过程中使用ServiceManager提供的api的陷阱
一. 案例 1.源码: /** @hide */ private TelephonyManager(int slotId) { mContext = null; mSlotId = slotId; i ...
- 面试题:java实例变量,局部变量,类变量 背1
一.实例变量 也叫对象变量.类成员变量:从属于类由类生成对象时,才分配存储空间,各对象间的实例变量互不干扰,能通过对象的引用来访问实例变量.但在Java多线程中,实例变量是多个线程共享资源,要注意同步 ...
- java中对象产生初始化过程
以前面试的时候,很多公司的笔试题中有关new一个对象有关一系列初始化的过程的选择题目.请看下面的题目. class Parent { static { System.out.println(" ...
- java 实例变量和类变量的区别
Example4_10.java public class Example4_10 { public static void main(String args[]) { Lader.下底=100; / ...
随机推荐
- Android 调用系统通讯录
这个过程有三步:1)许可向你的应用程序的manifest中添加读取通讯录数据的许可 <uses-permission android:name="android.permission ...
- Python进阶之面向对象编程概述
Python面向对象编程(一) .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB& ...
- javascript 常用函数
//获取元素的样式值. function getStyle(elem,name){ if(elem.style[name]){ return elem.style[name]; }else if(el ...
- 【Chromium中文文档】Chromium如何展示网页
Chromium如何展示网页 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//Start_Here_Backgrou ...
- 获取EIP(汇编语言直接给Delphi变量赋值)
var EIP: Cardinal; procedure GetEIP(); stdcall; asm pop eax; mov EIP,eax; push eax; end; procedure T ...
- spark install
https://chongyaorobin.wordpress.com/2015/07/01/step-by-step-of-installing-apache-spark-on-apache-had ...
- JDBC增强
JDBC增强 批处理:批量处理sql语句,比如批量添加用户信息. addBatch() //pstmt.addBatch() 就是替换一条一条执行的execute****** executeBat ...
- hdu1114Piggy-Bank(DP完全背包)
题意:在ACM可以做任何事情,必须准备和预算获得必要的财政支持.这次行动的主要收入来自不可逆绑定金钱(IBM).背后的想法很简单.每当一些ACM成员有任何小的钱,他把所有的硬币和成小猪银行抛出.你知道 ...
- Extjs 4 生成饼状图的例子
前台: //远程抄表设备下落图表数据 var Store1 = new Ext.data.Store({ <span style="white-space:pre"> ...
- [LeetCode] Search a 2D Matrix [25]
题目 Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the fo ...