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

(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位),最大表示范围为:-231~231-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位),最大表示范围为:-263~263-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);

  }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值