首页 > 编程语言 >Java中的运算符

Java中的运算符

时间:2022-10-01 23:45:24浏览次数:47  
标签:1111 Java int System 运算符 println true out

短路

1.true || 2.true || 3.false || 4.true
其中 走完1表达式 就不会再走了 节省了不必要的计算

1.true && 2.true && 3.false && 4.true
其中 走完3表达式 就不会再走了(结果已经为false) 节省了不必要的计算

字面量

如果程序里使用了一个字面量(literal value),则编译器能准确地知道它是什么类型的。

不过当类型模棱两可的时候,你就必须使用与该字面量相关的一些字符,以此添加额外信息来引导编译器

0x:十六进制前导

0(零):八进制

0B:二进制

F/f:float型后缀

D/d:double型后缀

L:long型后缀(规范:用大写 以区分i与l)

字面量中的下划线

可在数字字面量中加入下划线

规则

  1. 只能使用单个下划线,不能连续使用多个;
  2. 数字的开头或结尾不能有下划线;
  3. FDL这样的后缀周围不能有下划线;
  4. 在二进制或十六进制标识符bx的周围不能有下划线。

eg:

@Test
public void test(){
    double a = 99_999_998.123;
    System.out.println(a);//9.9999998123E7
    int b = 0B1010_1110_1011_1111;
    System.out.println(b);//44735
    System.out.println(Integer.toBinaryString(b));//1010111010111111
}

位操作符

位移运算

>>保留符号位右移(无符号右移)

<<保留符号位左移(...)

>>>不保留符号位右移

@Test
public void test1(){
    System.out.println(-2 >> 1);//-1
    System.out.println(-2 << 1);//-4

    /**
     * -2 ->    0B1000_0000_0000_0000_0000_0000_0000_0010 
     *    -反-> 0B1111_1111_1111_1111_1111_1111_1111_1101 
     *    -补-> 0B1111_1111_1111_1111_1111_1111_1111_1110
     * 无符号右移后 (最高位补零)
     *          0B01111_1111_1111_1111_1111_1111_1111_111
     */
    System.out.println(-2 >>> 1);//2147483647
    System.out.println(0B01111_1111_1111_1111_1111_1111_1111_111);//2147483647
}

类型转换

小数转整数

直接强制转换会将小数部分接去掉

@Test
public void test(){
    float f1 = 1.1f;
    float f2 = 1.9f;

    double d1 = 1.1d;
    double d2 = 1.9d;
    System.out.println((int) f1);//1
    System.out.println((int) f2);//1
    System.out.println((int) d1);//1
    System.out.println((int) d2);//1
}

四舍五入

Math.rund();

类型提升

(任何算数操作、按位操作)表达式中最大的数据类型 决定表达式返回数值的类型

short s1 = 2;
short s2 = 3;
int i1 = 1;

Object o1 = s1+s2;
Object o2 = s1+i1;

System.out.println(o1 instanceof Integer);//true 算数运算优先被转为int进行计算
System.out.println(o1 instanceof Short);//false

System.out.println(o2 instanceof Integer);//true
System.out.println(o2 instanceof Short);//false

java没有sizeof

C/C++中用来获取数据被分配的字节大小,为了移植性

不同的数据类型在不同机器上可能有不同的大小,所以在做一些与数据大小有关的运算时,程序员必须知道这些类型有多大。

Java不需要,java——与平台无关的语言

标签:1111,Java,int,System,运算符,println,true,out
From: https://www.cnblogs.com/daydreamer-fs/p/16745707.html

相关文章

  • JAVA包装类
    *包装类与基本数据类型*包装类是将基本数据类型封装成一个类,包含属性和方法*使用:*在使用过程中,会涉及到自动装箱和自动拆箱*装箱:将基本数据类型转换......
  • Java学生管理系统(未使用文件和清屏)
    Java的学生管理系统希望通过前面所学的类的封装知识和String类与ArrayList集合来实现一个简单的学生管理系统功能要求:添加、删除、修改、查看所有、退出注意:为了保证学......
  • Java SE 宋红康 days04-高级篇-枚举类
    1.自定义枚举类a.声明类A对象的属性:private final修饰b.私有化类的构造器,并给对象属性赋值c.提供当前枚举类的多个对象:public static final......
  • 数据结构与算法【Java】08---树结构的实际应用
    前言数据data结构(structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构.学好数据结构才可以编写出更加漂亮,更加有效率的代码。要学习好数据结构就......
  • java多线程--3 线程状态、线程方法、线程类型
    java多线程--3线程状态、线程方法、线程类型线程状态创建状态:**就绪状态:**进入状态:创建状态:启动线程阻塞状态:阻塞解除运行状态:释放CPU资源阻塞状态:......
  • Java SE 宋红康 days03-高级篇-常用类
    1.String字符串String声明为final的,不可被继承;实现了Serializable接口:表示字符串是支持序列化的;实现了Comparable接口:表示String可以比较大小St......
  • java基础--break和continue!!!!!
    break和continuebreak用于强行退出循环,不执行循环中剩余的语句,也可在switch语句中使用。break在任何循环语句主体,均可用break控制循环流程。packagecom.wang.struct;......
  • 数据类型,变量,运算符,Scanner对象
    ##注释```javapackagecom.chen.base;publicclassHelloWorld{publicstaticvoidmain(String[]args){//单行注释:只能注释一行文字//输出一个......
  • Java: Interpreter Pattern
     /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*解释器模式InterpreterPattern*历史版本:JDK14.02*2022-09-12创建者geovindu*2022-0......
  • Javaweb学习笔记第十四弹---对于Cookie和Filter的学习
    ApacheTomcat-TomcatNativeDownloads会话追踪技术会话:打开浏览器,建立连接,直到一方断开连接,会话才会结束;在一次会议中,可以有多次请求。会话追踪:在多次请求间,共享数......