-
Java变量初始化
2017-08-23 18:56:38Java变量初始化刚才项目中打断点找问题时,突然发现了Java变量初始化自己还是并没有完全弄懂,干脆系统的看下
写一个子类
public class SonClass { private String sonTag="SonClass"; public static String sTest="a"; public SonClass(){ sonTag="SonClass 购置"; } }
分别打上断点会先走
然后早构造函数
接下来在让子类继承父类
public class SonClass extends FatherClass{ private String sonTag="SonClass"; public static String sTest="a"; public SonClass(){ sonTag="SonClass 购置"; } }
public class FatherClass { protected String fatherTag="FatherClass"; private String name="name"; private String age="34"; public FatherClass(){ fatherTag ="FatherClass 构造"; } }
在打上端点运行发现子类还没有初始化,父类相关变量已经初始化,然后就是走父类的构造函数,下一步,子类的相关变量初始化,子类的构造函数
分割线
当在子类里面添加一个静态变量时,会发现静态变量虽然已经初始化,但不属于子类,这也就是handler内存泄露,解决方法添加静态的原因
-
Java 变量初始化
2014-02-11 17:01:43Java 变量初始化 对于类的成员变量(全局变量),不管程序有没有显式的进行初始化,JVM 都会先自动给它初始化为默认值,其值如下: boolean false char '\u0000' byte 0 short 0 int 0 long 0 floaJava 变量初始化
1.对于类的成员变量(全局变量),不管程序有没有显式的进行初始化,
JVM 都会先自动给它初始化为默认值,其值如下:
boolean false
char '\u0000'(不可见字符)
byte 0
short 0
int 0
long 0
float 0.0
double 0.0
String null
Object null
2.对于局部变量,JVM 不会自动给它初始化为默认值,
因此局部变量的使用必须先经过显式的初始化。
自己写个程序试试:
public class Test { // 类的成员变量,JVM 会自动给其初始化为默认值 private static char c; private static byte b; private static short s; private static int i; private static long l; private static float f; private static double d; private static boolean bool; static String str; static Student student; public static void main(String[] args) { System.out.println(c); // 不可见字符 '\u0000' System.out.println(b); // 0 System.out.println(s); // 0 System.out.println(i); // 0 System.out.println(l); // 0 System.out.println(f); // 0.0 System.out.println(d); // 0.0 System.out.println(bool); // false System.out.println(str); // null System.out.println(student); // null // 局部变量,JVM 不会自动给它初始化为默认值,因此局部变量的使用必须先经过显式的初始化。 int a; // 下面语句企图直接使用 a,编译时报错:The local variable a may not have been initialized //System.out.println(a); } class Student {} }
-
java 变量初始化
2017-11-29 16:34:23java 程序的初始化一般遵循以下三个原则: 1、静态对象先于非静态对象初始化,...java程序初始化工作可以在许多不同的代码块中完成,它们的顺序如下:父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父java 程序的初始化一般遵循以下三个原则:
1、静态对象先于非静态对象初始化,静态对象只初始化一次,而非静态对象会初始化多次;
2、父类优先于子类进行初始化;
3、按照成员变量定义顺序进行初始化,即使变量定义布于方法定义中,它们依然在任何方法被调用之前优化;
java程序初始化工作可以在许多不同的代码块中完成,它们的顺序如下:父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造方法、子类非静态变量、子类非静态代码块、子类构造方法。
例:
public class HelloB extends HelloA
{
public HelloB()
{
System.out.printIn("HelloB"); //子类构造函数
}
{
System.out.printIn(''I'm B class''); //子类非静态代码块
}
static //子类静态代码块
{
System.out.printIn("static B");
}
public static void main(String [] args)
{
new HelloB();
}
}
class HelloA
{
public HelloA()
{
System.out.printIn("HelloA"); //父类构造函数
}
{
Sytem.out.printIn("I'm A class"); //父类非静态代码块
}
static //父类静态代码块
{
System.out.printIn("static A");
}
}
输出顺序:static A
static B
I'm A class
HelloA
I'm B class
HelloB
-
java变量初始化
2016-05-12 16:38:56局部变量使用前必须显式初始化,未经初始化直接使用会导致编译错误(The local variable may not have been initialized)。 成员变量在声明时被赋为默认值:(基本数据类型为0,对象类型为null)局部变量使用前必须显式初始化,未经初始化直接使用会导致编译错误(The local variable may not have been initialized)。
成员变量在声明时被赋为默认值:(基本数据类型为0,对象类型为null)
转自http://bookshadow.com/weblog/2016/02/28/java-variable-initialization-problem/
-
Java变量初始化的时机
2017-07-03 11:27:00对于JAVA中变量的初始化是一个很基础的问题,其中的一些问题也是易被...以下是对java变量初始化的时机的分析。 【java变量执行初始化的步骤】 java是一门强类型语言,因此java语言规定每个变量必须先声明,然... -
java变量初始化顺序
2016-12-01 21:52:45父类静态变量->父类静态初始化块->子类静态变量->子类静态变量初始化块->父类变量初始化->父类变量初始化块->父类构造方法->子类变量初始化->子类变量初始化块->子类构造方法 --------------------------------... -
Java 变量初始化时机
2016-03-31 15:07:12一、实例变量初始化时机 定义实例变量时指定初始值 非静态初始化块中对实例变量指定初始值 构造器中对实例变量指定初始值 代码验证:package com.tide.controller;/** * Created by wengliemiao on 16/3/26. */ ... -
java 初始化 零值_Java变量初始化之后的默认值问题(转)
2021-02-26 20:55:451) 局部变量初始化(局部变量:函数、语句中的变量,只在所属区域内有效)局部变量声明后,Java虚拟机不会自动给它初始化为默认值。因此对于局部变量,必须经过显示的初始化,才能使用它。如果使用一个没有被初始化的... -
Java变量初始化的四种方式
2019-11-03 22:53:35//Java 尽量保证所有变量在使用前都能得到恰当的初始化,否则会报异常 //Java中提供了四种初始化方法:默认初始化、显式赋值初始化、调用...## 成员变量初始化方式之一————默认初始化: public class InitialV... -
Java变量初始化顺序
2014-09-16 23:57:08对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是 (静态变量、静态初始化块)>(变量、初始化块)>构造器 证明代码: public class InitialOrderTest{ // 静态变量 public ... -
Java变量初始化之后的默认值问题
2018-05-28 21:47:001) 局部变量初始化(局部变量:函数、语句中的变量,只在所属区域内有效)局部变量声明后,Java虚拟机不会自动给它初始化为默认值。因此对于局部变量,必须经过显示的初始化,才能使用它。如果使用一个没有被初始化... -
JAVA变量初始化赋值问题
2019-11-02 20:22:08在Java中,null值表示引用不指向任何对象。运行过程中系统发现使用了...1.如果是对象的field的话那么系统在初始化对象的时候会把那些对象的值赋值为null,基本数据类型也有它们的初始值 2.如果是在方法内,那么程序... -
JAVA变量初始化的默认值
2017-11-11 00:12:43不管程序有没有显示的初始化,Java 虚拟机都会先自动给它初始化为默认值。 1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。 2、单精度浮点型(float)的基本类型变量的默认值为0.0f。 3... -
Java 变量初始化总结
2016-09-25 12:35:24Java中的变量分为两类:基本数据类型变量和对象变量。 基本数据类型变量有8种,对象变量则不计其数,以及可以自己定义。 当变量作为类的字段时,基本数据类型会被编译器自动赋初值,对象变量会被赋值为null。 当... -
JAVA变量初始化顺序
2014-05-29 11:30:29变量概要 在Java程序中,变量可分为成员变量和局部变量。成员变量是指定义在类体内的变量,它们存储在类的栈中。如果定义该成员变量时没有使用...>方法内的局部变量:必须在方法内对其进行显示初始化,从初始化完成后 -
java变量初始化的默认值
2017-06-19 14:19:35不管程序有没有显示的初始化,Java 虚拟机都会先自动给它初始化为默认值。 1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。 2、单精度浮点型(float)的基本类型变量的默认值为0.0f... -
JAVA变量初始化赋值null
2018-01-15 19:06:351.如果是对象的field的话那么系统在初始化对象的时候会把那些对象的值赋值为null,基本数据类型也有它们的初始值 2.如果是在方法内,那么程序员需要自己给这些变量赋值。 class T{ Object obj = null; ... -
java变量初始化0.00
2018-06-04 15:09:00转自:http://www.jb51.net/article/46010.htm -
JAVA变量初始化问题
2014-04-29 15:38:12一个变量作为类成员使用的时候,如果没有被初始化,java会为其分配默认值: Boolean false Char '\u0000'(null) byte (byte)0 short (short)0 int 0 long 0L float 0.0f double 0.0d 如果在一个方法中定义一个变量...
-
小红书图片去水印(免费版).rar
-
智慧路灯杆云盒网关的功能和应用
-
MySQL 性能优化(思路拓展及实操)
-
Django TypeError: argument of type ‘PosixPath‘ is not iterable
-
ACID (数据库事务正确执行的四个基本要素的缩写)
-
linux中type 、file、stat三者的区别
-
Windows系统管理
-
LVS + Keepalived 实现 MySQL 负载均衡与高可用
-
第一章 工作原理、语言标准和规范(1.4~1.6)
-
泰坦尼克号建模分析-你能活下来吗?
-
Codeforces Global Round 13 ABC题解
-
Http通信协议
-
DVD数码相册大师.rar
-
C#--PictureBox绘制自动换行的文字
-
中文分词数据集.zip
-
PPT大神之路高清教程
-
从Docker到Kubernetes之技术实战.pdf
-
大数据开发之Hadoop学习7--HDFS客户端操作
-
初探并发编程:秒杀系统
-
入门算法:小和问题 之归并排序思想 java语言