zoukankan      html  css  js  c++  java
  • 从头认识java-2.2 算术操作符

    这一章节来聊一下算术操作符

    1.自动转换结果类型。

    package com.ray.ch01;
    
    public class Test {
    
    	public static void main(String[] args) {
    		int a = 2, b = 3;
    		int c = a / b;
    		int d = b / a;
    		System.out.println(c);
    		System.out.println(d);
    	}
    }
    

    看上面的代码,b/a结果是1.5,明显是float类型,但是由于d是int,因此直接转换成int,而且在转换的过程中直接去掉小数部分。


    2.表达式里面的变量或者常量自动转型,而且是向右转型,往能够容纳更大数据的类型转换。

    转型方向:byte->shot(char)->int->long>float->double

    package com.ray.ch01;
    
    public class Test {
    
    	public static void main(String[] args) {
    		byte a = 2, b = 3;
    		int c = a / b;
    		int d = b / a;
    		// a=c+d;//只能向上转换,不能向下转换,这里报错
    		System.out.println(c);
    		System.out.println(d);
    	}
    }
    

    从代码可以看到,d=b/a没有问题,但是a=c+d确实报错,这就是类型转换的问题。


    3.一元加与一元减

    一元减:就是把数值取反。例如-(+1)=-1,-(-1)=1

    一元加:只是把类型提升为int,对于大于int类型的数据不起作用。

    下面是代码例子:

    package com.ray.ch01;
    
    public class Test {
    
    	public static void main(String[] args) {
    		byte a = 2;
    
    		double c = 2.1;
    
    		int b = 1 * -a;//等价于 int b = 1*(-a)
    
    		double d = 2 * -c;
    
    		System.out.println(getType(+a));
    		System.out.println(getType(+d));
    
    		System.out.println(b);
    		System.out.println(d);
    	}
    
    	public static String getType(Object o) {
    		return o.getClass().toString();
    	}
    }
    

    输出:

    class java.lang.Integer
    class java.lang.Double
    -2
    -4.2

    从上面的例子我们可以看到,1*-a这个在编译器里面是成立的,因此我们为了可读性,一般会写成1*(-a)


    总结:这一章节我们讨论了算术操作符的三个注意点。


    这一章节就到这里,谢谢。

    -----------------------------------

    目录



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Nginx反向代理负载均衡
    Nginx服务rewrite模块功能说明 网站自动跳转功能
    利用C51单片机模拟SPI进行双机通信
    WIN10家庭版桌面右键单击显示设置出现ms-settings:display或ms-settings:personalization-background解决办法[原创]
    Docker for Mac k8s 网络不通
    Firefox 清理 DNS 缓存
    探索 IPv6 网络
    Firefox 印象笔记剪藏插件登录国内账号
    k8s ingress 转发服务,内容显示不全问题
    k8s 获取 Pod ip 添加到环境变量
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4944486.html
Copyright © 2011-2022 走看看