Java——变量

一、变量


数据类型是用来定义不同种类变量的。

变量的语法格式:数据类型 变量名 = 初始值

//定义变量的格式
int a = 1;
long b = 10L; //为了区分int和long类型,一般在后面加上L
short c = 10;
float d = 3.14F;//为了和double类型区分
double pi = 3.1415;
char e = 'E';
boolean f = true;
byte z = 22;
//注:长整型后的L可以是大写可以是小写,但一般加大写L,因为小写l与数字1不好区分
//可以输出int类型变量所表示的范围
System.Out.println(Integer.MIN_VALUE);
System.Out.println(Integer.MAX_VALUE);
//可以输出short类型变量所表示的范围
System.Out.println(Short.MIN_VALUE);
System.Out.println(Short.MAX_VALUE);
//其他类型同理

二、类型转换


Java是一个强类型的编程语言,不同类型变量进行赋值操作时会有严格的检查。
Java的类型转换主要分为两类:
- 自动类型转换(隐式)
- 强制类型转换(显式)

1、自动类型转换

代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。这是编译器根据代码的上下文环境自行判断的结果,有时候并不是很
”智能“。
特点: 小数据范围的类型——>大数据范围的类型。

int a = 1;
long b  = 10L;
b = a;//b范围比a大,所以编译器自动将a转换为long类型完成赋值
a = b;//会编译报错,因为long比int数据范围大,所以可能造成数据丢失,不安全。

float c = 3.14F;
double d = 3.1415;
d = c;//同上
c = d;

byte e = 110;//通过编译
byte f = 257;//失败,257超过了byte的数据范围有数据丢失

2、 强制类型转换

不能依靠自动类型转换完成操作时,使用强制类型转换强制完成。
特点: 大数据范围类型——>小数据范围类型

int a = 1;
long b = 10L;
b = a; 
a = (int)b;//强转,否则b无法赋值给a。

float c = 3.14F;
double d = 3.1415;
d = c; 
c = (float)d;//同上

a = d;//报错,类型不兼容
a = (int)d; // 强转过后,小数点后丢弃。
//注:使用强制类型转换会导致精度丢失,谨慎使用。强制类型转换不一定成功,有些类型不能强制转换。

整型 ——> 字符串类型:

int a = 1000;
String str1 = ""+ a;//”“中间为空字符串
String str2 = String.valueOf(a);//使用方法进行转换
System.out.println(str1);
System.out.println(str2);

字符串类型 ——> 整型

String str = "1234";
int b = Integer.parseInt(str3);

三、类型提升


byte a = 10;
byte b = 20;
int tmp1 = a + b;
byte tmp2 = a + b;//此处会报错
byte tmp3 = 10 + 20;//此处正常通过编译
System.out.println(tmp1);
System.out.println(tmp2);
System.out.println(tmp3);

报错提示原因: 是a和b做加法操作时,a和b被提升为了int类型,所以在对byte类型的tmp2赋值时出现错误。
更改: byte tmp2 = (byte)(a + b);

byte tmp2 = a + b;//此处会报错,此处经过类型提升,a和b都为int类型
byte tmp3 = 10 + 20;//此处正常通过编译

注: a、b、10、20虽然都为整型。但编译器会将10+20优化为30再赋值给tmp3;a+b的值是否超过byte的范围,编译器无法得知。

本文只对变量进行了简要介绍,还有许多东西未出现在本文中。如字符串类型、实例变量、类变量等。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值