java基础--------运算符与类型转换

     2022-03-16     524

关键词:

运算符

  运算结果 低精度向高精度靠拢  如  Long+float=double 

  常量整形默认 int    没有声明数据类型的整形默认为int     如:  123  在编译器会默认将它识别为(int)123

  常量实型默认 double  。。。              如 1.2345  。。。  double (1.2345)

 

    Short i=3; i=i+1;   丢失精度   ----> short 变量=short 变量  +(int)1

运算符优先级

优先级:++ 变量名    >    =    >    变量名++  

前自增的优先级比赋值符高,赋值符比后自增的优先级高;

 

C=++b 分解  b=b+1; -->c=b;

C=b++; 分解  c=b; -->b=b+1;

 

1)算术运算符

正号+    负号-     加号+     减号-     乘号*    除号/   取模%

前自增++  后自增++    --  --    字符串连接符+

 

2)赋值运算符

=    +=   -=  *=   /=   %=

 

3)比较运算符

>   >=   <  <=   ==  !=

 

4)逻辑运算符

& true&true ->true

... ->false

 

| false|false ->false

... ->true

 

^ false^true ->true

... ->false

 

! : !false ->true

!true ->false

 

&&&| || 的区别

&| 先判断符号左右两边真假后得出结果

&&|| 先判断符号左值判断真假后考虑是否直接得出结果

 

5)三目运算符

 

(条件)? (语句1) : (语句2)

 

!!!三目运算符的运行结果是一个常量,不能直接当成语句结束换行

 

(6)其他运算符

位运算符,位移运算符 等等

 

 

 

类型转换

 

(1)。自动转换(隐式转换):系统自动转换

 

      低精度向高精度进行转换

 

 

 

(2)。强制转换(显式转换):手动转换

 

      高精度向低精度进行转换

 

 

Byte ->short  -> int  -> long   ->  float ->  double  

    short  -> int  -> long   ->  float ->  double

          int  -> long   ->  float ->  double

              long   ->  float ->  double

                    float ->  double

 

            隐式转换

               反向即显示转换

 

这里就有个问题:为什么64位的long型可以转换为32位的float的浮点型呢?

 

   博主刚刚查阅的深入理解java虚拟机,原话是64位的long和double在java虚拟机中占两个局部变量空间,而其他数据类型只占用一个。

 

   so 这个问题貌似还没有解决,有能解决的大神也欢迎来指点一二。

 

 

强转会丢失精度

 

32位转16位时,如果32位的数据类型中存放的16位数,在强转的时候情况如下

 

     +0000000000000001111111111111111    ----->这是一个32位整型数的二进制存放形式,前16位是1 

 

                  -1111111111111111 ->强制转换后16位数  ------>这是转换后的16位数,符号位+对应的0  -对应的1就不重复了

   

     都知道Short的取值范围是-2的15次方到2的15次方-1,在强制转换的过程中32位整形的前十六位会丢失,而刚好符号位在转换前是有数据的。

 

        so 你看到的转换前是一个正的整型数 在转换后变成了一个负的短整型。

 


java基础02—变量运算符和数据类型转换

Java语言基础参考资料:《Java从入门到精通》/明日科技编著.4版.北京:清华大学出版社,2016一、变量与常量常量:在程序执行过程中,其值不能改变的量称为常量。变量:在程序执行过程中,其值能被改变的量称为变量。变量... 查看详情

java基础语法

TableofContents1.变量与运算符1.1关键字和保留字1.1.1关键字(keyword)的定义和特点:1.1.2保留字(reservedword):1.2标识符1.2.2定义合法标识符规则:1.2.3Java中的名称命名规范:1.3变量1.3.1基本数据类型1.3.2基本数据类型变量间的转换1.3.3基本数据... 查看详情

java编程基础

?JAVA的命名规则、数据类型和运算符?JAVA自动类型转换与强制类型转换?JAVA各种基本数据类型的定义与作用?JAVA各种运算符与表达式的应用?数据输入输出?选择语句?循环语句?数组?字符(1)标识符与关键字关键字:由系统定义具有... 查看详情

韩顺平循序渐进学java零基础

...String转基本类型细节本章作业1本章作业2本章小结第04章运算符算术运算符介绍算术运算符使用算术运算符练习1算术运算符练习2算术运算符练习3算术运算符练习4关系运算符介绍关系运算符使用逻辑运算符介绍短路与逻辑与短路... 查看详情

java学习-----01.java基础

...型;  数据类型的使用;  标识符的命名规则;赋值运算符:算术运算符:  运算符优先级;  三目运算符;类型转换:  自动类型转换;  类型提升规则;  强制类型转换;标识符关键字boolean类型关系运算符... 查看详情

java基础

JAVA基础目录JAVA基础一基本语法注释标识符关键字运算符常量选择结构循环结构二变量变量的数据类型变量的类型转换变量和常量的区别三面向对象类与对象作用域——访问控制构造方法与垃圾回收thisstatic关键字继承抽象类接口... 查看详情

java基础知识复习(代码片段)

...型转换强制类型转换隐式类型转换小结6.变量命名规范7.运算符算数运算符逻辑运算符移位运算符关系运算符8.switch9.方法方法的重载可变参数变程方法的调用10.数组一维数组的创建方式一维数组在内存中的存储数组的拷贝一维数... 查看详情

课程总结(代码片段)

...类型转换”与“强制类型转换”两种。4、算术运算符的成员有加法运算符、减法运算符、乘法运算符、除法运算符、余数运算符。5、if语句可依据判断的结果来决定程序的流程。6、自增与自减运算符有着相当大的便利... 查看详情

java——java基础

...基本数据类型详解4、类型自动提升与强制转型五、整型运算符1、基本运算2、移位运算3、位运算4、运算优先级六、布尔类型运算符1、运算符2、短路运算七、字符类型八、字符串类型——引用类型九、数组类型——引用类型Java... 查看详情

java基础面试

1.&和&&的区别  答: &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)2.int和Integer有什么区别  答: Java提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原... 查看详情

java基础3.运算符

Java基础3.运算符目标掌握数据类型转换掌握算术运算符、赋值运算符掌握逻辑运算符掌握关系运算符、条件运算符一、数据类型转换//Demo1.javapublicclassDemo1{publicstaticvoidmain(String[]args){//按照数值非数值分类//数据类型:数值(整型i... 查看详情

java语言基础——数据类型与运算符

标识符:1.组成元素由字母、数字、下划线、美元符号($)2.标识符不能以数字开头3.标识符严格区分大小写4.标识符的命名要有意义(见名知意)注释:1.单行注释//2.多行注释/*注释的内容*/3.文档注释/**注释的内容*/常量常量的... 查看详情

java基础—java流程控制

IsCoder标记:Java选择结构,Java循环结构Java流程控制运算符隐式与显式转换选择结构循环结构循环结束控制一.Java运算符1.1基本运算符基本运算符,包括四则运算符:加/减/乘/除.另外包括,取余运算符%.1.2复合运算符复合运算符,是基本运... 查看详情

java布尔运算

...语法Java注释Java变量Java数据类型Java字符串Java类型转换Java运算符Java字符串JavaMathJava布尔运算JavaIf…ElseJavaSwitchJavaWhile循环JavaFor循环JavaBreak与ContinueJava数组Java异常Java方法Java类与对象Java类、对象Java类的属性Java 查看详情

java基础-基本数据类型扩展及类型转换

1.关于变量和常量:变量要经过赋值才能使用,不赋值,使用将会报错   2.计算并赋值运算符   3.数据类型转换隐式类型转换   floatfloatVal=11.32f;doubledoubleVal=1234567890.123456;floatVal=(float)doubleVal;System.ou 查看详情

java-语言基础(代码片段)

...声明常量4、变量的有效范围1、成员变量2、局部变量三、运算符1、赋值运算符2、算术运算符3、自增和自减运算符4、比较运算符5、逻辑运算符6、位运算符1.“按位与”运算(都是1为1)2.“按位或”运算(都是0为0... 查看详情

javaswitch

...语法Java注释Java变量Java数据类型Java字符串Java类型转换Java运算符Java字符串JavaMathJava布尔运算JavaIf…ElseJavaSwitchJavaWhile循环JavaFor循环JavaBreak与ContinueJava数组Java异常Java方法Java类与对象Java类、对象Java类的属性Java 查看详情

javamath

...语法Java注释Java变量Java数据类型Java字符串Java类型转换Java运算符Java字符串JavaMathJava布尔运算JavaIf…ElseJavaSwitchJavaWhile循环JavaFor循环JavaBreak与ContinueJava数组Java异常Java方法Java类与对象Java类、对象Java类的属性Java 查看详情