博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java02 数据类型 数据转换 运算符
阅读量:5729 次
发布时间:2019-06-18

本文共 5769 字,大约阅读时间需要 19 分钟。

1 数据类型

java中数据分为基本数据(4类的8种)和引用数据

       说明

浮点数 :默认double类型。L 可以不加,如果右边字符区域小于左边。

public class Hello{    public static void main(String[] args){        //输出整数 int类型        System.out.println(1024);        //输出整数 这是一个浮点数,默认double        System.out.println(10.2);        //long --float,范围是float范围更大,符合从小到大的规则        double num2 = 2.5F;        System.out.println(num2);    }}结果:102410.22.5

自动转换: int→long 符合数据范围从小到大的要求

public class Hello{    public static void main(String[] args){        //格式:范围小的类型 范围小的变量名 = 范围小的类型 原本范围大的数据        long num =  100L;        System.out.println(num);            }}结果100.0

强制类型转换格式:范围小的类型 范围小的变量名 = 范围小的类型 原本范围大的数据

public class Hello{    public static void main(String[] args){        //格式:范围小的类型 范围小的变量名 = 范围小的类型 原本范围大的数据        int num = (int) 100L;        System.out.println(num);            }}结果100

注意事项:

1.强制类型转换,一般不建议使用,主要是有可能精度损失,数据溢出

   简单说就是整数过大会溢出,小数会丢弃

public class Hello{    public static void main(String[] args){        //世界人口70亿        int num = (int) 7000000000L;        System.out.println(num);            }}结果:-1589934592发生了溢出,也就是水撒了

2 byte short char 三种数学运算,例如+

    流程 :首先提升为int类型,然后进行运算

              byte + byte → int + int

public class Hello{    public static void main(String[] args){        char zifu1 = 'A';        //char 类型进行数学运算,那么字符按照一定规则会进行换算        System.out.println(zifu1 + 1);    }}结果66

public class Hello{    public static void main(String[] args){        char zifu1 = 'A';        //char 类型进行数学运算,那么字符按照一定规则会进行换算        System.out.println(zifu1 + 1);        byte num1 = 40;        byte num2 = 50;        int re1 = num1 + num2;        System.out.println(re1);        //byte + short → int + int → int        short num3 = 60;        //需要用short (两个变量)        short re3 = (short)(num3 + num2);        System.out.println(re3);            }}结果6690110

3 boolean类型不能发生数据类型转换

2 运算符

2.1定义:

     运算符  进行特定的计算

     表达式  用运算符连起来的公式 就是表达式

2.2分类:

2.2.1. 算术运算符

public class Hello{    public static void main(String[] args) {        //两个常量之间可以进行运算        System.out.println(20+30);         int a = 10;         int b = 20;         //首先计算得到表达式的值,然后再打印输出这个结果        System.out.println(a-b);         //被除数/除数 = 商。。。余数        float result1 = b / a;         System.out.println(result1);     } }

package hello;public class Hello{    public static void main(String[] args){        String str1 = "hello";        int str2 = 20;        System.out.println(str1);        // 字符串类型的加号,字符串是引用型变量,加号属于连接功能   数据类型  变量名称 = 数据值        System.out.println(str1+str2);        //优先级问题        int str3 = 30;        System.out.println(str1 + str2 +str3);    }}

      自增自减运算符

++ 自增   让一个变量涨一个数据1  写在变量名字之前,之后

--   自减   让一个变量减一个数据1  写在变量名字之前,之后

      使用方式 

单独使用    变量前后++ -- 无区别

混合使用   变量前++ 用完再加;  变量后++用前加

public class Hello{    public static void main(String[] args){        int num1 = 10;        System.out.println(num1);        num1++;// 单独使用,意思是独占一行,前++与后++无区别        System.out.println(num1);        ++num1;// 单独使用,意思是独占一行,前++与后++无区别        System.out.println(num1);        System.out.println("----------------");        int num2 = 20;        System.out.println(num2++);        System.out.println(num2);        System.out.println(++num2);    }}
 
 
结果 :

10

11
12
----------------
20
21
22

      说明:

取模运算符只有对整数才有意义。

一旦数据有不同类型的,以数据类型范围大的为准。

2.2.2.赋值运算符

           赋值运算符包含  基本运算符和复合运算符(包含算术运算符)

基本运算符:= 代表右侧数据 赋值给 左侧的变量;

复合运算符:

package hello;public class Hello{    public static void main(String[] args){    int a = 10;    int b = 10;    int c = 10;    int d = 10;    a += 10;    // 实际效果为 a = a + 10;    System.out.println(a);    b -= 10;    // 实际效果为 b = b - 10;    System.out.println(b);    c /= 10;    // 实际效果为 c = c / 10;    System.out.println(c);    d %= 10;    // 实际效果为 d = d % 10;    System.out.println(d);    }}

2.2.3.比较运算符

       说明:

两个等号连起来叫比较,比较结果是 true 或 false,一个等号叫赋值;

比较运算符是二元运算符,不允许出现1<x<3这类表达式出现,只能用逻辑运算符表达

public class Hello{    public static void main(String[] args){        //常量与常量对比        System.out.println(10 > 5);        int num1 = 100;        System.out.println(num1 > 101);        System.out.println(10 == 10);        System.out.println(20 != 20);            }}
 
结果

true

false
true
false

2.2.4.逻辑运算符

与 并且  &&   全都是true 才能true

或 或者   ||       部分true或者全都是true  是true

非 取反   !    全都是false 才是true

     说明

逻辑运算符是 连接两个或多个字符的表达式

            条件A && 条件B && 条件C

短路 与&& 或|| 具有短路效果,如果根据左边已经判断得到最终结果,那么表达式为false

public class Hello{    public static void main(String[] args){        // false        System.out.println(true && true);        // true        System.out.println(3 < 4 && 10 < 20);        System.out.println( true || false);        int a = 10;        // ++a  未改变a的值,因为下面表达式左边为false,不再执行。        System.out.println(3 > 4 && ++a < 100);        // 使用|| 左边为true,右边将不再执行        System.out.println("------------");        int b = 20;        System.out.println( 3 < 4 || ++b < 100);        System.out.println( b );        System.out.println( 3 < 4 && ++b < 100);        System.out.println( b );    }}结果truetruetruefalse------------true20true21

2.2.5三元运算符

     一元运算符:

只需要一个数据就可以进行操作的运算,例 取反 !  自增++ 自减--

     二元运算符:

需要两个数据才可以进行操作的运算,例如 + – *  /  和赋值=

     三元运算符:

需要三个数据才可以进行操作运算符 如

数据类型 变量名称 = 条件判断 ? 表达A : 表达式B;

流程:

1 判断条件是否成立

2 如果成立为true,那么表达式A 的值赋给左侧的变量;

3如果不成立为false,那么将表达式B的值赋值给左侧的变量;

public class Hello{    public static void main(String[] args){        int a = 10;        int b = 20;        //数据类型 变量名称 = 条件判断 ? 表达A : 表达式B;        int  x =  a > b ? a: b;        System.out.println(x);                    }}
 
结果
20

说明:

1.右侧表达式必须同时符合左侧的数据类型要求,int x = 3> 4? 2.4:10; 不对

2.三元运算符的结果 必须被引用,要么有变量接受,要么println打印出来;

3.三元表达式可以直接放在打印结果

public class Hello{    public static void main(String[] args){        int a = 10;        int b = 20;        //数据类型 变量名称 = 条件判断 ? 表达A : 表达式B;        int  x =  a > b ? a: b;        System.out.println(x);        //三元表达式可以直接放在打印结果 是正确写法        System.out.println(x =  a > b ? a: b);            }}
 
结果
20
20

转载于:https://www.cnblogs.com/rango0550/p/10421965.html

你可能感兴趣的文章
Javascript String类的属性及方法
查看>>
vim编辑器如何添加或删除多行注释
查看>>
[LeetCode] Merge Intervals
查看>>
iOS开发-按钮的基本使用
查看>>
在QT和SDL搭建的框架中使用OPENGL在SDL窗口上进行绘图
查看>>
REST技术第三步 @BeanParam的使用
查看>>
模板 读入挂!
查看>>
SharePoint 读取 Site Columns 的数据并绑定到DropdownList
查看>>
Python中的对象行为与特殊方法(二)类型检查与抽象基类
查看>>
使用 axios 详解
查看>>
通信基站(dfs回溯,思维)
查看>>
nginx web加密访问
查看>>
iOS - Regex 正则表达式
查看>>
SYS_CONTEXT函数返回IP地址的一些误解
查看>>
第 68 章 Logical Volume Manager (LVM)
查看>>
膝盖中了一箭之康复篇-第八个月暨2月份目标总结
查看>>
IPA提交APPStore问题记录(一)
查看>>
有利于seo优化的网站地图不能取巧
查看>>
快照产品体验优化
查看>>
ASCII
查看>>