Java的八种基本类型、隐式转换、强制转换以及特殊转换

转载至互联网IT信息的博客http://dy.163.com/v2/article/detail/CVR84HUC0511N7OA.html

  (1)常用基本类型汇总

  八种基本类型汇总

  

  八种基本类型的字节空间和应用场景

  

  (2)byte类型

  基本介绍:

  byte数据类型是8位、有符号的,以二进制补码表示的整数;

  最小值是-128(-2^7);

  最大值是127(2^7-1);

  默认值是0;

  例如:byte bt = 120;

  (3)short类型

  基本介绍:

  short数据类型是16位、有符号的以二进制补码表示的整数

  最小值是-32768(-2^15);

  最大值是32767(2^15 - 1);

  默认值是0;

  例如: short st = 32700;

  (4)Int类型

  基本介绍:

  Int是最常用的整数类型。一个int类型的变量占用4个字节(32位),最大表示范围为:-2^31~2^31-1,即-2147483648~2147483647。

  默认值是0;

  整型变量的注意事项:

  整数的直接量的类型默认为int类型,如果直接写出的整数超过了int的表达范围,编译报错;

  int one = 80000000000000000000000;//超出范围,编译错误

  除了通常的十进制书写形式,整数的直接量也经常写16进制的相识(0X或0x开头)或者8进制形式(O开头);

  int two=529; //10进制

  int three=0x347a; //16进制

  int four=030; //8进制

  两个整数相除,会舍弃小数的部分(不是四舍五入),结果也是整数;

  int data1 = 49;

  int data2 = 79;

  int dataT = data1/data2;//dataT结果为0,因为49除以79的整数部分为0

  整数运算的溢出:两个整数进行运算时,其结果可能会超过整数的范围而溢出。正数过大而产生的溢出,结果为负值;负整数过大而产生的溢出,结果为正数

  int number=2147483647;

  int score=-2147483648;

  number= number+1;//结果为-2147483648

  score = score -1; //结果为2147483647

  (5)Long类型

  基本介绍:

  一般如果int类型的范围不够,可以使用long类型,一个long类型的变量占用8个字节(64位),最大表示范围为:-2^63~2^63-1,即-9223372036854775808~223372036854775807

  默认值是0L;

  注意:如果用long类型,则需要以L或l结尾

  long gg = 44;//错误

  long gg = 44L;//正确

  long类型变量的典型应用场景:

  超过int类型范围的数据,可以用long类型;

  比如:long yy = 3147483647L;

  (6)浮点数类型

  基本介绍:

  浮点数,就是小数,包括float和double;

  float默认值是0.0f;

  double默认值是0.0d;

  double类型的精度值是float类型的两倍,一般场合使用double类型。

  例如:double tt = 4.7;

  浮点数的写法:

  通常写法,如:3.68、.3

  科学计数法,如:2.17E2

  默认的浮点为double类型,如果需要表示float类型的直接量,需要加”f”或”F”后缀。例如:

  float ff=6.29; //编译错误,应该写成6.29f

  (7)char类型

  基本介绍:

  char类型事实上是一个16位无符号整数,这个值是对应字符的编码;

  Java字符串类型采用Unicode字符集编码。Unicode是世界通用的长度字符集,所有的字符串都是16位;

  Char类型变量赋值,可以采用如下三种形式:

  字符:形如’A’,变量中实际存储的是该字符的Unicode编码(无符号整数值),一个char型变量只能存储一个字符。

  整型数据:范围在0~65535之间的整数,变量中实际存储的即该整数值,但表示的是该整数值所对应的Unicode字符。

  Unicode形式:形如’\u0041’,Unicode字符的16进制形式。

  例如:char cr1= 705;

  char cr2=’N’;

  char cr3=’\u0031’;

  特殊的字符:转义字符

  

  (8)boolean类型

  基本介绍:

  boolean类型适用于逻辑运算,表示某个条件是否成立。一般用于程序的流程控制;

  boolean类型只允许取值true或false,true表示条件成立而false表示条件不成立。

  boolean默认值是false;

  例如:int a = 9;

  int b = 10;

  Boolean isBig = b>a;//输出为true

  (9)类型之间的转换

  基本介绍:

  不同的基本类型直接可以相互转换

  自动类型转换(隐式类型转换):从小类型到大类型可以自动完成。类型的大小关系如下:

  

  强制转换:从大类型到小类型需要强制转换符,但这样转换有可能会造成精度损失或溢出。

  int onef=654;

  int twof=957;

  long threef= onef + twof; //自动将int转换为long

  long numberf=9967L;

  int af=(int) numberf; //需要强制转换符,由于9967在int范围内,没有产生溢出

  long scoref=5147483647L;

  int bf=(int) scoref; //会产生溢出,结果为0

  double ttf=7.55684954444444444;

  float rrf=(float) ttf;//会造成精度的损失,结果为7.5568495

  几种特殊转换:

  多种基本类型参与的表达式运算中,运算结果会自动的向较大的类型进行转换;比如:

  int a = 4;

  double c = a/b;//结果为0.4,自动转换为double类型

  byte、char、short三种类型实际存储的数据都是整数,在实际使用中遵循如下规则:

  Int直接量可以直接赋值给byte、char和short,只要不超过其表示范围。

  byte、char、short三种类型参与运算时,先一律转换成int类型再进行运算。

  (10)代码实例

  package com.example.var;

  public class DataType {

  public static void main(String[] args) {

  byte bt = 120;

  System.out.println(bt);

  short st = 32700;

  System.out.println(st);

  System.out.println(two);

  System.out.println(three);

  System.out.println(four);

  int dataT = data1/data2;

  System.out.println(dataT);

  System.out.println(number);

  System.out.println(score);

  long gg= 44L;//正确

  long yy = 3147483647L;

  System.out.println(yy);

  double tt = 4.7;

  System.out.println(tt);

  char cr1= 705;

  char cr2='N';

  char cr3='\u0031';

  System.out.println(cr3);

  int a = 9;

  Boolean isBig = b>a;

  System.out.println(isBig);

  long scoref = 5147483647L;

  System.out.println(scoref);

  float rrf=(float) ttf; //会造成精度的损失,结果为7.5568495

  System.out.println(rrf);

  }

  }

猜你喜欢

转载自blog.csdn.net/weixin_42359392/article/details/85029065