变量,强制转换,字符串相加--学习笔记--04

1.变量的使用

1.变量定义格式:
数据类型 变量名=初始化值;
如:byte b=10;
基本数据类型:4类8种

类型字节
byte1
short2
int4
long8
float4
double8
char2

整数默认int类型,浮点数默认double类型;
long长整型后缀用L标记,以免引起精度损失问题报错;
2.使用变量注意事项:
(1)作用域:变量定义在哪个大括号内他就在这个大括号内有效,并且在同一个大括号内不能同时定义同名变量;
(2) 没有初始化值的变量不能直接使用
如:int y;
System.out.println(y);
(3) 在一行建议定义一个变量;
(4) +是一个运算符,参与运算的数据类型必须一致;
(5)布尔类型不能转换为其他数据类型;
(6)默认转换:(从小到大)
Byte,short,char—int-long—float—double
Byte,short,char相互之间不转换,它们参与运算首先转换为int类型

2.类型强制转换

从大的数据类型到小的数据类型
格式:目标数据类型 变量=(目标数据类型)(被转换的数据)

byte b=3;
  int c=4;
  //强制类型
  byte d=(byte)(b+c);
  System.out.println(d);

//强制类型
  //不要随意用强制转换,因为它隐藏了精度损失问题
  double d=12.234;
  float f=(float)d;
  System.out.println(d);

重视精度损失问题:

//long长整型后缀用L或l表示,建议使用L;
long j =10000000000000000L;
System.out.println(j);
//定义浮点数数据变量
//单精度用F或f表示,建议使用F
float f=2.23F;
System.out.println(f);
double d=12.345;
System.out.println(d);
//定义字符类型
char ch='a';
System.out.println(ch);
//定义布尔变量
boolean flag=true;
System.out.println(flag);
	}

运行结果如图
运行结果

  • 这里有个相关面试题:
    byte b1=3,b2=4,b;
    b=b1+b2;
    b=3+4
    哪句编译失败了,为什么?
    回答:首先定义了三个byte变量,
    byte b1=3, b2=4, b;
    b=b1+b2;//变量相加会首先看类型问题,最终把结果赋值的时候也会考虑类型问题。两个byte类型做加法,先转换为int类型,而b是byte类型类型提升,所以有问题
    b=3+4;//常量,先做加法,计算结果,看是否在byte范围内,如果在就不报错

  • 比如这段代码:为什么结果是-126?

public static void main(String[] args) {
		byte b=(byte)130;
  System.out.println(b);

在这里插入图片描述
解答:
byte的范围是:-128到127,而130不在范围内,可以使用强制转换
计算机中的数据都是补码进行,整数默认int类型,占四个字节
获取130二进制:00000000 00000000 00000000 10000010
130的原码,补码,反码相同,做截取操作,截成byte类型,10000010,这个结果是补码,
已知补码求原码,补码:1 0000010
反码:1 0000001
原码:1 1111110

3.字符串相加
常用字符代表:‘0’=48 ,‘A’=65 ,‘a’=97

(1)
System.out.println(‘a’);
System.out.println(‘a’+1);
在这里插入图片描述
(2)
System.out.println(“hello”+‘a’+1);
System.out.println(‘a’+1+“hello”);
在这里插入图片描述
这里说明一下:字符串数据和其他数据做+,结果是字符串类型;
这里的+不是加法,而是字符串连接符。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值