Java基础:数据类型

1.  分类


基本数据类型

4 类 8 种 --> 

逻辑型 boolean  文本型 char  整数型 byte short int long  浮点型 float double

 

引用数据类型

3类      --> 

类 class    接口 interface     数组

 

2. 基本数据类型


 <1> 数据提升:运算之前,先转换为高一级的数据类型再运算,规则如下:

   byte  short  char ---> int ---> long ---> float ---> double
    1       2        2             4           8             4              8  -->octets

   byte short char 之间不会相互提升,boolean不会转化为其他数据类型.

   byte 范围:-128 ~ 127

   byte short char 在参加运算时,会自动转化为 int,再运算。


   如:byte b1 = 1;
         byte b2 = 2;
         byte b3 = b1 + b2 ;报错
         //byte b3 = (byte)b1+b2;  联想到 short char 也是如此


 <2> 数据声明

  整型量会默认为 int 类型,所以 long 类型后面要加 l 或者 L

  long a = 20L;                 long a = 20l; 

  再如:long l = 2000000000;//不加L或者l就会报错(过大的整数)

 

  因为编译器看到整型数就视为int但是int只有四个字节装不下2000000000就报错!
  
  浮点数会默认为 double 类型,所以float类型后面要加 f 或者 F

  float f = 2.3F;               float f = 2.3f;
  
  建议:声明 long 或者 float 数据类型时写上F 或者 L,不要使用小写的 f 或者 l。


猜猜下面程序打印结果?

public class OnLongDemo {
	// 年的微秒数
	private static final long MICROS_PER_YEAR = 365 * 24 * 60 * 60 * 1000 * 1000;
	// 年的毫秒数
	private static final long MILLIS_PER_YEAR = 365 * 24 * 60 * 60 * 1000;

	public static void main(String[] args) {
		System.out.println(MICROS_PER_YEAR/MILLIS_PER_YEAR);
	}
}



那么,修改一下代码

public class OnLongDemo {
	// 年的微秒数
	private static final long MICROS_PER_YEAR = 365L * 24 * 60 * 60 * 1000 * 1000;
	// 年的毫秒数
	private static final long MILLIS_PER_YEAR = 365L * 24 * 60 * 60 * 1000;

	public static void main(String[] args) {
		System.out.println(MICROS_PER_YEAR/MILLIS_PER_YEAR);
	}
}



再看一个小程序,就可以知道为什么要写大写字母 L, 而不写小写字母l

public class OnLongDemo {
	public static void main(String[] args) {
		long x = 1234;
		long y = 432l;
		System.out.println("x+y= " + (x+y));
	}
}

很多人,一看打印结果是 x+y= 5555,但是你错了!!




long y = 432l 后面不是数字 1,而是小写字母 l









©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页