Java语言基础(下)

基本数据类型转换

数据间需要传递,那么可能会出现类型不一致,所以不同类型间需要相互转换。8中基本数据类型之间除了布尔型不能与其他7种之间转换,其他的byte,short,int,long,float,double,char之间都可以相互转换。

字符型

char表示单个字符

计算机之所以能显示各种字符和符号,是因为底层有编码表,每个字符在码表中都有相对应的十进制编号

但ASCII码无法表示中文字符等,所以Java默认使用Unicode,集成ASCII码值,支持各国语言符号。

char a='中';

打印所得20013,“中”看似是字符,本质上是一个整数,对应Unicode中的编号。

char类型可运算,先将“a”转化为Unicode中的编号,再进行运算(字符-->int-->运算)

转换规则:强制转换,默认转换

默认转换:byte,short,char-->int-->long-->float-->double(小容量可直接转换为大容量)

注意:运算时会默认转换为int型,float和long由于小数在底层存储结构不同,导致大小也不同。

强制转换:

可能会出现数据溢出,小容量容不下大容量,精度降低

int a=258;
byte b=(byte) a;
//此时b=2
float c=10.55f;
long d=(long) c;
//此时d=10

混合运算时会默认将小类型转换为大类型

运算符

算术运算符:

+,-,*,/,%,++,--;

其中,+可进行字符串的连接和数值运算,其余的均只能进行数值运算(char也可参与算术运算)

注意:s=s+2和s+=2是不同的

s+=2;
short s=(short) s+2;
//过程中进行了隐式的强制数据类型转换

逻辑运算:

&,|,!,^,&&,||(运算符两边均是运算值,&,|,!,^还可以参与位运算)

注意:!(实际为真,结果相反)^(相同的为false,不同的为true)

&与&&的区别:&&遇到false就会停止,不再执行,而&还会继续运行

|与||的区别:与上类似,|前有一个true就返回true,但仍会继续执行,而||遇到true就停止。

条件运算符(三元运算符):

(条件表达式)?表达式1:表达式2

条件为true,表达式1;条件为false,表达式2;

int max=(a>b)?a:b;
//true则max=a,反之;

最终返回一个与前面声明类型一致

位运算符:

<<(左移),>>(右移),>>>(无符号右移),~(非)

“位”指的是二进制的bit位运算,是更底层的运算。

int a=4;
a<<1;
//此时a=8;

有符号右移,负数,移动后符号不变

无符号右移,不管前面符号位是什么,移动后统一补0

控制台输入

需要在无操作界面(UI)的情况下让用户和程序实现交互式数据输入,此时Java在前期提供一个类(Scanner类),通过此类可以让用户在控制台输入数据,并将数据录入数据中。

Scanner s=new Scanner(System.in);
//创建一个Scanner类的对象
int a=s.nextInt();
//Scanner对象去执行数据的读取,程序运行到此行时会阻塞,当用户输入完成时,按下回车,结束输入,读入程序
import java.util.Scanner;
//导入Java.util包下的Scanner类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值