java非静态变量初始化
java费静态变量的初始化分为两种情况,一种是局部变量,一种是类的域。
对于类的域,java在类初始化时,会为变量赋一个初始值。对于基本数据类型,java会将初始值设置为二进制0,具体为将boolean设置为false,将byte设置为0,将char设置为0(即空格),short设置为0,int设置为0,long设置为0,float设置为0.0f,都变了设置为0.0。对于引用类型也会将其初始值设置为二进制0,即null。
而对于局部变量加入你在申明变量的时候没有为其设置初始值,java将认为你这是个粗心导致的错误,所以java会给你一个编译异常。
Talk is weak, show me your code.
package InitializationAndCleanup; public class VariableInit {
private boolean mBoolean;
private byte mByte;
private short mShort;
private char mChar;
private int mInt;
private long mLong;
private float mFloat;
private double mDouble; private VariableInit mInit; public void function() {
int i;
//i ++; // compile error
} public void printInitValue() {
System.out.println("boolean : " + mBoolean);
System.out.println("byte : " + mByte);
System.out.println("short : " + mShort);
System.out.println("char : [" + mChar + "]");
System.out.println("int : " + mInt);
System.out.println("long : " + mLong);
System.out.println("float : " + mFloat);
System.out.println("double : " + mDouble);
System.out.println("reference variable : " + mInit);
} public static void main(String[] args) {
new VariableInit().printInitValue();
} }
输出:
boolean : false
byte : 0
short : 0
char : [ ]
int : 0
long : 0
float : 0.0
double : 0.0
reference variable : null
java非静态变量初始化的更多相关文章
- Java静态方法,静态变量,初始化顺序
1. 静态方法: 成员变量分为实例变量和静态变量.其中实例变量属于某一个具体的实例,必须在类实例化后才真正存在,不同的对象拥有不同的实例变量.而静态变量被该类所有的对象公有(相当于全局变量),不需要实 ...
- Java的静态变量初始化的坑
在网上看到一个很有意思的题目,题目如下 class SingleTon { private static SingleTon singleTon = new SingleTon(); public s ...
- Java中类成员变量初始化顺序
一. 定义处默认初始化vs构造函数中初始化 java中类成员变量支持在声明处初始化,也可以在构造函数中初始化,那么这两者有什么区别呢?看下面例子 public class FieldsInit { p ...
- Java中静态变量与非静态变量的区别
感谢大佬:https://www.cnblogs.com/liuhuijie/p/9175167.html ①java类的成员变量有俩种: 一种是被static关键字修饰的变量,叫类变量或者静态变量 ...
- 内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例
内部类访问外部类的变量必须是final吗? 如下: package com.java.concurrent; class A { int i = 3; public void shout() { cl ...
- Java的外部类和内部类+静态变量和非静态变量的组合关系
看的李刚<疯狂java讲义>,里面讲内部类的地方感觉有点散而且不全,看完之后还是不十分清楚到底怎么用,于是自己写了个程序测试了一下.看如下代码,即可知道外部类和内部类+静态成员和非静态成员 ...
- Java代码执行顺序(静态变量,非静态变量,静态代码块,代码块,构造函数)加载顺序
//据说这是一道阿里巴巴面试题,先以这道题为例分析下 public class Text { public static int k = 0; public static Text t1 = new ...
- 类加载, 静态变量初始化, String不可变, 泛型使用, 内部类
1.java变量类型 java变量类型分:基本数据类型变量和Object数据类型变量,变量也是占用者内存的 例如: int i = 3; i这个变量保存的就是整形3, 占32位 Object a = ...
- ERROR无法从静态上下文中引用非静态变量
ERROR无法从静态上下文中引用非静态变量 2012-06-16 20:58:52 分类: Java 什么是“static”? 学习过java.C++或C的人都应该认识这个关键字.用这个关键字修饰的变 ...
随机推荐
- UIStoryboard
UIStoryboard 目录 概述 Storyboard的创建 Storyboard中的页面跳转 文件内跳转 文件外跳转 Segues 不同类型的视图控制器在UIStoryboard上的实现 概述 ...
- LINUX HOOK
http://blog.csdn.net/yyttiao/article/details/7346287
- java字符串分解 StringTokenizer用法(比split()方法效率高)
Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串.如果要讲一个字符串分解为一个一个的单词或者标记,StringTokenizer可以帮你. int countTokens ...
- 如何在Linux下拷贝一个目录呢
cp -af newadmin/movie/. uploadfile/mallvideo/ 如何在Linux下拷贝一个目录呢?这好像是再简单不过的问题了. 比如要把/home/usera拷贝到/m ...
- laravel 5.0 artisan 命令列表(中文简体)
#php artisan list Laravel Framework version Usage: [options] command [arguments] Options(选项): --help ...
- 解决faststone capture在台式机上录制屏幕视频没有声音的问题
点击屏幕录像机: 在弹出的屏幕录像机窗口中选择录制音频,然后点击选项按钮: 在弹出的选项按钮中选择视频选项,将所有的多选框都选中,注:最后一个选项录制windows XP的工具提示最好也选上,我发现如 ...
- MR 的 mapper 数量问题
看到群里面一篇文章涨了贱识 http://www.cnblogs.com/xuxm2007/archive/2011/09/01/2162011.html 之前关注过 reduceer 的数量问题,还 ...
- onkeyup,onkeydown和onkeypress
如下一段代码: <html> <script> function checkForm(){ if(event.keyCode ==13){ event.keyCo ...
- memcachedb-持久化存储的缓存系统
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度.Memcached ...
- NLP自然语言处理学习笔记二(初试)
前言: 用Python对自然语言处理有很好的库.它叫NLTK.下面就是对NLTK的第一尝试. 安装: 1.安装Pip 比较简单,得益于CentOS7自带的easy_install.执行一行命令就可以搞 ...