JAVA数据类型

java数据类型分为‘基本数据类型’和‘引用数据类型’。


基本数据类型

  • 有8种基本数据类型
  • byte
  • short
  • int
  • long
  • float
  • double
  • boolean
  • char

ps:其中byte、short、int、long是整形;float、double是浮点型;boolean是布尔型,返回值为true和false;char是字符型。

  • 基本数据类型取值范围

数据类型

位数

取值范围

说明

byte

1

-128~127

数据存储在内存中的最原始形态

short

8

-32768~32767

int

16

-2e31~2e31-1

long

32

-2e63~2e63-1

float

64


double

32


boolean

64

true/false

用于存储真值/假值

char

16

0-65535 ‘\u0000’~‘\uFFFF’

用于存储单个字符,以Unicode编码方式

  • 类型转换
    分为‘ 隐式类型转换(自动转换类型) ’和‘显示类型转换(强制类型转换)’。
  • 隐式类型转换
    将一种类型的值赋给另一种类型的值,只要满足一下两个条件,就会发生自动转换:
  • 两种类型之间相互兼容
  • 目标类型取值范围大于源类型

栗子

byte a=1;
short b=a;
char b1='A';
int c=b1;
long d=c;
float e=d;
double f=e;

ps:有类型提升的情况下,编译器将自动进行类型转换,否则就要进行强制类型转换。

  • 强制类型转换
    将一种类型的值赋给另一种类型的值,满足以下条件将会使用到强制类型转换
  • 两种类型之间相互兼容
  • 目标类型取值范围小于源类型

栗子

double a=1.5;
flaot b=(flaot)a;
long c=(long)b;
int d=(int)c;
char d1=(char)d;
short e=(short)d1;
byte f=(byte)e;
  • 数值表达式的转换
  • 有double 则结果为duoble
  • 有float 结果为float
  • 有 long 结果为long

栗子

byte a=1;
short b=a;
char b1='A';
int c=b1;
long d=c;
float e=d;
double f=e;

int s=a+b+b1+c;
long ss=a+b+b1+c+d;
float sss=a+b+b1+c+d+e;
double ssss=a+b+b1+c+d+e+f;

ps:强制转换可能会导致精度丢失,‘char’可以与整形转换

引用数据类型

在Java中,除了上述基本数据类型的变量以外,其余的全都属于引用数据类型,‘String’比较特殊但也是一个引用类型。

> 引用类型使用的场景与基本数据类型一模一样。
>  - 作为属性的数据类型使用
>  - 作为方法的返回值数据类型使用
>  - 作为方法的形式参数数据类型使用
  • 引用数据类型的赋值
    引用类型都是对象,所以赋值都使用new调用构造方法进行赋值;‘String’类可以不使用new,直接赋值。
    栗子
Car car = new Car();
String name="王二小";

总结

比较数据类型和引用类型

比较

基本数据类型

引用数据类型

概念

单纯的值

对象

存储位置

栈中

栈中存引用,堆中存对象本身

赋值方式

直接赋值

使用new关键字,(String和包装器类除外)

计算机常识

计算机使用0和1存储数据
用bit来存储0和1
1 byte = 8 bit
1 k = 1024 byte
1 m = 1024k
1 g = 1024 m
进制之间的转换

取值范围

java 用参数 返回值 java返回数据类型的方法_取值范围

学习感悟

通过对Java数据类型体系的学习,让我又进一步的了解到java的强大。java有两种数据类型:基本数据类型和引用类型,其中基本数据类型又分8种:byte,short,int,long,float,double,boolean,char。每一个基本数据类型都有自己的取值范围,要在合适的场合选择合适的数据类型。数据类型之间也可以互相转换,取值范围小的转换为大的为自动转换,不需要显式说明,取值范围大的转换为小的就需要强制转换了。引用类型就是自己创建的类,其中String比较特殊,可以直接赋值,但是也是属于引用类型。