Java变量的默认值和初始化
Java变量的默认值和初始化
学习自
- 《Thinking In Java》
- 技术小黑屋-为什么局部变量需要显式设置初始化值
变量的默认值
注意只有成员变量才有默认值,而局部变量必须要赋初值。为什么会这么设计,下面会讨论。
关于各种基础类型的默认值,大家肯定都耳熟能详了,这里就不在叨叨,详见下表:
| 类型 | 值 |
|---|---|
| Int | 0 |
| Long | 0 |
| Boolean | false |
| float | 0.0 |
| double | 0.0 |
| char | /u0000(NULL) |
| String | NULl |
| Object(代表所有的类) | NULL |
| 数组(未初始化) | NULL |
| 数组(已初始化) | 数组各个元素的值为,其类型的默认值 |
关于上表可以使用一下程序检测
public class Measurement {
int i;
long l;
boolean b;
float f;
double d;
char c;
String s;
Object o;
int[] ints;
public void printAll() {
System.out.println("Java各数据类型的初始值如下\n" +
"Int:" + i + "\n" +
"Long:" + l + "\n" +
"Boolean:" + b + "\n" +
"Float:" + f + "\n" +
"Double:" + d + "\n" +
"Char:" + c + "\n" +
"String:" + s + "\n" +
"Object:" + o + "\n" +
"Array:" + ints + "\n"
);
}
}
为什么有默认值
这个问题很好回答, 因为有些成员变量在初始的时候不知道赋什么初始的值
Java变量的默认值和初始化的更多相关文章
- Java中boolean型变量的默认值问题
1.首先分析Java中的三种不同变量的区别,如下表所示 概念 默认值 其他 类变量 也叫静态变量,是类中独立于方法之外的变量 用static 修饰 有默认初始值,系统自动初始化. 如boolean ...
- Logback.xml 给变量指定默认值
随着通用日志组件转入 Slf4j,logback 也变成了默认的日志实现,像 log4j 一样,logback.xml 中也可以使用系统属性或环境变量,如 ${catalina.home}.在 log ...
- java函数参数默认值
java函数参数默认值 今天,需要设定java函数参数的默认值,发现按照其它语言中的方法行不通 java中似乎只能通过函数的重载来实现 函数参数默认代码
- Java 基础类型 默认值
(1)数据库里的列,如果有默认值,不能赋值有业务含义的值. (2)int 默认值 java会分配默认值的额.
- Android——问题解决之adb not responding;adb不是内部或外部命令;path变量的默认值为多少
adb not responding 恩,这是出现的问题.我们开始来解决它吧! 出现这种问题大多是因为adb端口被占用导致这个问题,所以只要找到占用端口号程序,结束即可!就是这么简单(adb运行端口号 ...
- -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
- Java类成员变量的默认值
1.布尔型(boolean)变量默认值为false,byte.short.int.long为0,字符型为'\u0000'(空字符),浮点型(float double)为0.0,引用类型(String) ...
- SASS 中变量的默认值
SASS 中定义的变量,后设置的值会覆盖旧的值. $color: red; $color: blue; .btn { color: $color; } 编译后为: .btn { color: blue ...
- python函数默认值只初始化一次
当在函数中定义默认值时,值初始化只会进行一次,就是执行到def methodname时执行.看下面代码: from datetime import datetime def test(t=dateti ...
随机推荐
- Kafka+Zookeeper+Filebeat+ELK 搭建日志收集系统
ELK ELK目前主流的一种日志系统,过多的就不多介绍了 Filebeat收集日志,将收集的日志输出到kafka,避免网络问题丢失信息 kafka接收到日志消息后直接消费到Logstash Logst ...
- CString的头文件
CString的头文件:#include <atlstr.h>
- css3 :nth-child()选择器的使用
一.nth-child() 1. nth-child(n):父元素下的第n个子元素,n>0,索引从1开始.不区分子元素类型. 2. nth-child(odd):父元素下的奇数子元素,等同于:n ...
- Spark记录-Scala类和对象
本章将介绍如何在Scala编程中使用类和对象.类是对象的蓝图(或叫模板).定义一个类后,可以使用关键字new来创建一个类的对象. 通过对象可以使用定义的类的所有功能. 下面的图通过一个包含成员变量(n ...
- [整理]JS中的状态机
/*StateMachine*/ var StateMachine = (function(){ function StateMachine(opts){ this.current = opts.in ...
- [转载]微软VS2015支持Android和iOS编程
Visual Studio 2015 Preview http://www.zhihu.com/question/26594936/answer/33397319 http://www.visuals ...
- C. Ayoub and Lost Array(DP)
(又是被队友带着上分的一场--) 题目链接:http://codeforces.com/contest/1105/problem/C 题目大意:给你n,l,r.每一个数都是在l,r范围之内,然后问你这 ...
- Python输出9*9 乘法表
for i in range(1,10): for j in range(1,i+1): print(str(j) + str("*") + str(i)+"=" ...
- mysql5.7主从复制--在线变更复制类型【转】
这里说一下关于如何在线变更复制类型(日志复制到全局事物复制),参考课程:mysql5.7复制实战 先决条件 (1)集群中所有的服务器版本均高于5.7.6(2)集群中所有的服务器gtid_mod ...
- java 代理 agency
java并没有对其提供直接的支持,这是继承和组合的中庸之道,因为我们将一个成员对象置于所要构造的类中(组合),但与此同时我们在新类中暴露了该成员的所有方法(就像继承),使用代理时可以拥有更多的控制力, ...