Java的基本数据类型细节Scanner的用法;

自动转换规则, 从 精度小的类型 转换成 精度大的类型 就叫自动化转换。 
规则1:   char -> int ->  long -> float -> double 

规则2:   byte -> short -> int -> long ->float -> double

多种类型混合运算, 系统将类型转换成(多种类型中)最大的类型,在进行运算,运算得到的结果也是多种类型种最大的类型。

将 精度大 的类型赋值给 精度小 的类型,会报错 (可以强制转换,但可能会精度缺失)。
(byte,short)和 char 之间不会自动转换。
byte,short,char 可以参与计算,但是在计算之前会转换成int,计算得到的值也只能int 或者 大于 int 的类型接收。(这三种类中无论是单个类型 或 多个类型 参与计算都会转换成int)

数据类型从 大 ——> 小 需要强制转换。
将 精度大 的类型转换成 精度小 的类型,这样做可能会造成精度缺失

byte和short在运算时候,都会自动转换成 int 在计算, 其结果也是int类型。
char 可以用int的常量值赋值,用变量值则需要强转。

强制类型转换(显示类型转换)boolean也不参与;

当某一个值想要提升数据类型时也可以强制类型转换,特殊类型转换;

String类型不能通过强制类型转换;如果用方法的话String是可以进行转换的整形的但字符串必须是数字的话可以转成整形;纯汉字的话是不可以的;

关于Scanner 键盘录入Scanner对象是用来接收键盘输入的数据的,可以接收字符串,数字,浮点数,大数等多种数据

关于nextInt()、next()和nextLine()的理解
next():

一定要读取到有效字符后才可以结束输入。
对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next()不能得到带有空格的字符串。
nextLine():

以Enter为结束符,nextLine()方法返回的是输入回车之前的所有字符。
可以获得空白。

 Scanner scanner = new Scanner(System.in);
        System.out.println("等待输入数据:");
        if(scanner.hasNext()){//hasNext是以空格为结束标志,所以只能打印一个单词
            String str = scanner.next();
            System.out.println("输入的字符串是:"+str);
        }
        scanner.close();//IO输入必须得关闭

这个只是让你知道不只是有next(),nextLine(),nextDouble,nextInt(),hasNextInt(),等等

记住键盘输入肯定是能输入任何内容的,需要你自己去看看哪些可以用,你需要用到的时候去找找就行了。

自增运算符:++,自减运算符:- -。

前缀自增自减

格式:++操作数或- -操作数
相当于:操作数=操作数+1或操作数=操作数-1
前缀自增自减法中操作数是先进行自增或自减操作,再被使用。

后缀自增自减:

格式:操作数++或操作数- -
相当于:操作数=操作数+1或操作数=操作数-1
前缀自增自减法中操作数是先被使用,再进行自增或自减操作

特殊例子:

int i = 1; i = i++; System.out.println(i);

这里的输出结果不是2,而是1。可能有人会说,哎呀不对啊,按照前面的讲述,这里的i=i++应该相当于i=i;i=i+1;,这样这个结果应该是2才对啊。那么这里就涉及到了JVM内存模型,要从内存出发来理解操作数在内存中的储存过程。
如果觉得理解这个太过麻烦,也可以只记住i=i+1这种特殊形式和结果:

算数运算符:

运 算 符名 称说 明例 子
+求 a 加 b 的和,还可用于 String 类型,进行字符串连接操作a + b
-求 a 减 b 的差a - b
*求 a 乘以 b 的积a * b

求 a 除以 b 的商a / b

%

取余求 a 除以 b 的余数 a % b

其中+号有两种用途:加法运算:只有两个都是数值类型的时候才执行加法运算

连接字符:可以拼接字符串 可以通过空字符转string s=" "+10;的方法把整型10转化为字符串10。

%是取模或者叫取余数
例如46%7的值是4

关系运算符:、<、>=、<=、==、!=
用于表示两个值的关系
System.out.println(1!=2); 返回值只有boolean类型即true、false两种情况,在面向对象的时候会有其他情况出现。

逻辑运算符:

&&、||、!
逻辑运算符的两边一般是表达式,而不是具体的值
例如:
&&:且
System.out.println(3>5 && 3<4); FALSE 左边只要是错误直接跳出
System.out.println(3>5 & 3<4); FALSE 两边都会参与运算
|| :或
System.out.println(3>5 || 3<4); TRUE 左边不正确才,会进行右边运算
System.out.println(3>5 | 3<4); TRUE 两边都会参与运算
!:取反
System.out.println(!(3>5 || 3<4));false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值