java中声明变量和初始化变量的相关感想

1、定义基本类型变量时
(1)定义局部基本类型变量

定义局部变量时,在使用该变量之前必须对其进行赋值初始化,否则编译器会报错,建议声明变量和赋值同时进行。

(2)定义类全局基本类型变量
无论是静态全局变量还是动态全局变量,在创建对象new object()之时,系统会自动对全局基本类型变量进行初始化,除了定义全局变量之时就对其初始化之外。

2、定义非基本类型变量时,如String List 或其他自定义类
(1)局部变量时

同基本类型变量一样,使用前必须对其进行初始化,否则编译器会报错。

(2)全局变量
若只是声明变量,如String s, List l, object o,创建对象时,会将其赋值为null
若声明变量的同时并进行初始化,String s=new String();List l=new List();object o=new object();此时会指向一片对象内存区域,不再为null, 如String为空串,List为空list,object为系统初始化内容。

总结:局部变量使用前,必须进行初始化,否则编译器会报错。全局变量使用前若没有手动初始化,系统会自动对其进行初始化。 对于基本类型,系统会为其赋值(int型=0,short型=(short)0,byte=(byte)0,boolean型=false,long型=0L,char型=‘\u0000’或null,float型=0.0f,double型=0.0), 对于非基本数据类型会赋值为null(初始化了除外)

String s=new String();String类型初始化值为""空串
List l=new List();List类型初始化值为[]空list但不是nul。

其他自定义object o=new object();初始化值指向创建改对象的内存区域。


import java.util.ArrayList;
import java.util.List;
public class test
{
	public static void main(String[] args)
	{
		MyTest mt=new MyTest();
		System.out.println(mt);
	}
}
class MyTest
{	
	int a;
	long b;
	String c=new String();
	char d;
	List list=new ArrayList();
	MyTest1 mt1=new MyTest1();
	public String toString()
	{
		return "MyTest[a="+a+",b="+b+",c="+c+",d="+d+",list="+list+",mt1="+mt1+",MyTest2.f="+MyTest2.f+"]";
	}
}

class MyTest1
{
	int e;
	public String toString()
	{
		return "MyTest1[e="+e+"]";
	}
}

class MyTest2
{
	static int f;
}
输出结果为:MyTest[a=0,b=0,c=,d= ,list=[],mt1=MyTest1[e=0,],MyTest2.f=0]


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值