java数据类型

基本数据类型

类型大小
byte(字节型)1byte(8bit)-128~127  , 2^7~2^7-1 
short(短整型)2byte(16bit)-2^15~2^15-1
int(整型)常用4byte(32bit)-2^31~2^31-1
long(长整型)8byte(64bit)-2^63~2^63-1
float(单精度的浮点数)4byte-3.4E38~3.4E38
double(双精度浮点数)8byte-1.7E308~1.7E308
char(字符型)2byte表示一个字符,表示整数0~65535
boolean(布尔类型)1bytetrue,false

 注:3.4E38 :3.4*10^38 科学计数法,java中,除了基本数据类型,都是引用类型。String不是基本数据类型,是引用数据类型。

整型

整型分为byte、short、int、long 4类,通常情况下,int是最常用的一种整型数据,也是java中整数常量的默认类型。在表示非常大的数字时,则需要用到更大范围的长整型long,并且需要在长整型数据后面加上L或l表示。

整型数据类型的应用代码如下:

byte b=-128;
short s=30000;
int i=2147483647;//-2147483648~2147483647
//在声明long变量的时候,如果赋的值非常大(超出int范围),要在数值后面加l或者L,建议都加
long l=1000;
long l2=100000000000l;
long l3=2147483648l;
long l4=10000l;

浮点型

java浮点型有float和double两种,java浮点型数据有固定的表示范围和字段长度。float类型的数据需要在数字后面加上F或f。

浮点型数据类型的应用代码如下:

double d=0.123;
double d2=123;
System.out.println("d="+d);
System.out.println("d2="+d2);//123.0

//在声明float类型时,在数值后面加f或者F
float f=0.321f;

//double类型在计算时可能会出现精度丢失问题
//在十进制中,我们无法精确表示1/3,就像无法在二进制中精确的去表示0.9
double num1=3.0;
double num2=2.1;
System.out.println(num1-num2);

字符型

字符型数据用来表示通常意义上的“字符”,字符常量使用单引号括起来的单个字符。

字符型数据类型的应用代码如下:

char c='中';
char c2='A';
char c3='8';
char c4=97;//97--ASC码---a
System.out.println(c);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);

//转义字符
char c5='\n';//换行
System.out.print("abc"+c5);
System.out.println("ABC");
//表示'\'
char c6='\\';//就表示'\'
System.out.println(c6);

//多个字符连在一起,字符串String 不是基本数据类型,是一个类,就叫引用类型
String str="helloWorld";

布尔类型

java中定义了专门的布尔类型,用于表示逻辑上的“真”或“假”。用关键字boolean来定义,取值只能为true或false。

布尔类型的引用代码如下:

boolean type=true;
boolean type2=false;

int age=25;
int age2=20;
boolean result=age>age2;
System.out.println(result);//true

类型转换

一、自动转换

小范围的数据类型的值或者变量可以赋给大范围的数据类型的变量。

 1.赋值时的转换,小范围数据类型可以赋给大范围数据类型。

int i=100;
double d=i;
//i是int类型 d是double类型 i自动转换成了double类型
float f=3.14f;
double d2=f;

2.不同类型的值在计算时,会自动转换成最大范围的数据类型。

int num1=10;
long num2=100l;
float num3=1.0f;
float result=num1+num2+num3;
System.out.println(result);//111.0

3.byte、short、int、char不会相互转换,但是三者在运算时都会转换成int类型来计算。

byte b=100;
short s=200;
char c=65;//数值-->ASC-->字符
char t='a';//字符-->ASC-->int类型数据
int result2=b+s+c;
int result3=b+s+t;
System.out.println(result2);//365
System.out.println(result3);//397

二、强制转换

小范围-->大范围: 小数据类型  变量名=(小数据类型)大类型变量或值

double d=2.0;
int i=(int)d;//把大范围类型赋给小范围类型 要强制转换
long l=(long)3.14f;
        
//精度丢失问题
double d1=3.14;
int i1=(int)d;
System.out.println(i);//3

//内存溢出问题
long l1=1000000000000000l;
int j=(int)l1;
System.out.println(j);//-1530494976

补充:String类型

String str="str2=";
String str2="我是一个字符串"; 
System.out.println(str+str2); //str2=我是一个字符串
int i=100;
int j=200;
//字符串类型+基本数据类型===>字符串类型
System.out.println("123"+i+j);//先和i拼接成 "123100" 再去和j拼接成 "123100200"
//先计算再拼接
System.out.println(i+j+"123");//先计算了i+j的和 为300 再去和“123”拼接成了 "300123"
String result=i+"";//整型转换为字符串类型: 整型+""
System.out.println(result+j);//100200

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值