Java八种基本类型(byte、short、int、long、浮点数、char、boolean、基本类型转换)

来源:互联网 发布:ed2k for mac下载工具 编辑:程序博客网 时间:2024/06/08 03:25

(1)常用基本类型汇总

八种基本类型汇总

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

类型名称

字节空间

应用场景

byte

1Byte

字节数据

short

2Byte

短整数

int

4Byte

普通整数

long

8Byte

长整数

float

4Byte

浮点数

double

8Byte

双精度浮点数

char

2Byte

一个字符

boolean

1Byte

逻辑变量(true,flase)

(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’;

特殊的字符:转义字符

字符

代表的含义

\n

换行 (0x0a)

\r

 (0x0d)

\f

换页符(0x0c)

\b

退格 (0x08)

\s

空格 (0x20)

\t

制表符

\"

双引号

\'

单引

\\

反斜杠

\ddd

制字符 (ddd)

\uxxxx

16进制Unicode字符 (xxxx)

(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;

int b = 10;

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);

          

      int two=529;    //10进制

      int three=0x347a;    //16进制

      int four=030;   //8进制

      System.out.println(two);

      System.out.println(three);

      System.out.println(four);

          

       int data1 = 49;

       int data2 = 79;

      int dataT = data1/data2;

      System.out.println(dataT);

          

      int number=2147483647;

      int score=-2147483648;

      numbernumber+1;//结果为-2147483648

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

      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;

       int b = 10;

       Boolean isBig = b>a;

       System.out.println(isBig);

 

       int onef=654;

       int twof=957;

      long threefonef + twof//自动将int转换为long

       long numberf=9967L;

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

       long scoref = 5147483647L;

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

      System.out.println(scoref);

          

       double ttf=7.55684954444444444;

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

       System.out.println(rrf);

     }

}


以上代码的GitHup地址:https://github.com/gongyunit/j2eecode

阅读全文
0 0
原创粉丝点击