• JAVAEE学习day02


    1.数据类型的转换

      1>自动转换(隐式)  

     1 // 将取值范围小的数据类型自动提升为取值范围大的类型
     2 
     3 // 定义byte类型数据
     4 byte b = 10;
     5 
     6 // 定义short类型数据
     7 short s = 20;
     8 
     9 // short a = b + s;    // 两个变量在相加的时候会自动转换成两个int类型相加,将int赋值给byte报错
    10 
    11 //修改方法将会在强制转换给出
    12 // 自动转换顺序 13 byte -> short -> int -> long -> float -> double

      2>强制转换(显式)   

    // 将取值范围大的数据类型强制转换成取值范围小的类型
    
    // 定义byte类型数据
    byte b = 10;
    
    // 定义short类型数据
    short s = 20;
    
    // short a = b + s;    // 两个变量在相加的时候会自动转换成两个int类型相加,将int赋值给byte报错
    
    //修改方法1
    short a = (short) (b + s);

    //修改方法2
    int a = b + s;

      /*

      转换格式:
        目标类型 变量名 = (目标数据类型) 数据值;

      注意:
        1)浮点数转换成整数,直接取消小数部分,可能造成精度损失
        2)取值范围大的数据类型强制转换成取值范围小的数据类型,
        将砍掉前边多余的字节,可能损失精度.

      */

      

    2.ASCII码表

      0      48
      9      57
      A      65
      Z      90
      a      97
      z      122

     

    3.算数运算符

       +    加法
        -    减法
        *    乘法
        /    除法
        %    取模/取余
        ++    自增
        --    自减
        以上运算符计算整数的时候不会产生小数
        
        自增和自减
            两种表现形式
                前++,前--
                ++后,--后
                
            在独立运算的时候两者没有区别
            在混合运算时候的区别
                前++,先拿自身做运算,然后再自加
                ++后,先自加,然后再做运算
            
        加号
            + 在遇到字符串的时候表示链接和拼接的含义

    4.赋值运算符

       
      /*
       = 等号 += 加等于 -= 减等于 *= 乘等于 /= 除等于 %= 取模等于    */
    //
    += 扩展: byte a = 10; byte c = a + 1; // 报错,1为int类型,自动提升为int byte c += 1;      // java自动强转,等同于 byte c =(byte)(c + 1);

    5.比较运算符

        ==        比较两边是否相等,相等结果为true
        <        比较左边是否小于右边,如果是,为true
        >        比较左边是否大于右边,如果是,为true
        <=        比较左边是否小于等于右边,如果是,为true
        >=        比较左边是否大于等于右边,如果是,为true
        !=        比较两边是不是不相等,如果不等则为true    

    6.逻辑运算符

        &&        短路与
            两边为true为true
            短路的特性:左边是false,右边不再运算
            
        ||        短路或
            一边为true则为true
            短路特性:左边是true,右边不再运算
            
        !        取反
            !true == false
            !false == true

    7.三元运算符

    // 格式:
            // 数据类型 变量名 = 布尔类型表达式 ? 结果1 : 结果2;
            
            // 布尔表达式结果为true,结果1赋值给变量
            // 布尔表达式结果为false,结果2赋值给变量

    8.定义方法入门

        将一个功能提取出来,把代码单独定义在一个大括号内,形成一个单独的功能
        
        方法的定义格式:
            修饰符 返回值类型 方法名(参数){
                return ;
            }
        public static void demo(){
            System.out.println("我是一个方法");
        }

    9.方法的调用

     1 // 方法在定义完成之后,自己不会运行,只有被调用再能执行,我们在主方法中调用方法
     2         // 举个栗子:
     3         
     4         public class Method{
     5             // 主方法
     6             public static main(String[] args){
     7                 // 调用方法
     8                 method();
     9             }
    10             
    11             // 定义的方法
    12             public static void method(){
    13                 System.out.println("我是一个被调用的方法");
    14             }
    15         }
    16         
    17         // 注意:
    18             // 方法必须定义在类中main方法外,不能定义在另一个方法中

    练习题

      1 //    问题一:
      2         int a = 100;
      3         byte b = 50;
      4         //        int + int  所以计算结果是int
      5         short c = a + b;
      6         //改一
      7         short c = (short)(a + b);
      8         //改二
      9         int c = a + b;
     10 
     11 //问题二:
     12     int x = 100;
     13     //200是int类型,赋值给long类型.自动类型提升.
     14     long  y = 200;
     15     //      int  long  计算结果 long
     16     int z = x + y;
     17     //改一
     18     int z = (int)(x + y);
     19     //改二
     20     long z = x + y;
     21 
     22 //问题三:
     23     long  t = 100;//类型提升
     24     int  s = 50;
     25         //    long + int 计算结果是long .赋值给float类型的变量f,这里是自动类型转换
     26     float f = t + s; 
     27 
     28 //问题四:
     29     byte a = 10;
     30     byte b = 20;
     31     //计算结果应该是int类型的
     32     byte c = a + b;
     33 
     34 //问题五:
     35     char c = 'a';//97
     36     System.out.println(c + 10);    //        107
     37 
     38     int i = 97;
     39     //强转的时候.会拿着97去编码表中查他对应的字符.然后把这个字符赋值给变量c
     40     char c = (char)i;
     41     System.out.println(c);//a
     42 
     43     char c = 'a';    
     44     //        int + int 计算结果是int
     45     char cc = c + 1; 
     46     //改一
     47     int cc = c + 1; 
     48     System.out.println(cc); //98
     49     //改二
     50     //先进行加法运算. 97 + 1 = 98
     51     //然后强制类型转换. 就是拿着98去编码表中去查他对应的字符, 'b'
     52     char cc = (char)(c + 1);
     53     System.out.println(cc);//b
     54 
     55 
     56  //16-编译器的两点优化
     57 
     58 
     59 
     60 
     61     byte a = 10;
     62     byte b = 20;
     63     //       int + int所以运算结果是int
     64     byte c = a + b;//编译出错
     65     byte cc = 10 + 20;//等号右边全部都是常量,编译器给我们计算出结果,然后去判断30是在byte取值范围之内,所以直接赋值.
     66 
     67 
     68     char c = 'a';
     69     System.out.println(c);//a
     70     char c = 97;//赋值的过程,就是拿着97这个编号去编码表中查他对应的字符,然后给变量c赋值
     71     System.out.println(c);//a
     72 
     73     //问题:
     74         //    int + int 计算结果是int类型.
     75         //这个int类型的计算结果再char的范围之内,可以直接赋值给变量c
     76     char c = 'a' + 1; 
     77     System.out.println(c);//b
     78 
     79     byte b = 3 + 4; //相当于 byte b = 7;
     80     System.out.println(b);
     81 
     82     byte b = 100 + 100; //1. 200,2 200超出了byte范围,所以编译出错.
     83     System.out.println(b);
     84 
     85 
     86 
     87 
     88 //变量跟变量之间:
     89     int a = 10;
     90     int b = 20;
     91     int c = a + b;
     92 
     93 //变量跟常量之间
     94     int a = 10;
     95     int b = a + 10;
     96 
     97 //常量跟常量之间:
     98     
     99     byte b1 = 3;
    100     byte b2 = 4;
    101     byte b = b1 + b2;    //报错,byte相加会升级成int,然后相加
    102     //修改1
    103     byte b = (byte) (b1 + b2)
    104     //修改2
    105     int b = b1 + b2
    106 
    107     byte bb = 3 + 4 ;
    108     System.out.println(bb);
    109 
    110     byte bbb = 100 + 100;    //报错,超出范围
    111     
    112     System.out.println(bbb);
    113 
    114 
    115 
    116     int a = 1;
    117     int b = a-- + a--;
    118     System.out.println(a);    // -1
    119     System.out.println(b);    // 1
    120 
    121 
    122     int a = 1;
    123     int b = ++a + a--;
    124     System.out.println(a);     // 1
    125     System.out.println(b);    // 4
    126 
    127 
    128     int a = 1;
    129     int b = --a + ++a;
    130     System.out.println(a);    // 1
    131     System.out.println(b);    // 1
    132     
    133     
    134 
    135     int a = 1;
    136     int b = 2;
    137     int c = (a++ > b++) && (a++ >= b++) ? a : b;
    138     System.out.println(c);    //3
    139 
    140 
    141     int c = (a++ > b++) & (a++ >= b++) ? a : b;
    142     System.out.println(c);    //4
    143 
    144 
    145     int c = (a++ < b++) & (a++ >= b++) ? a : b;
    146     System.out.println(c);    //4
    147 
    148 
    149     int a = 1;
    150     int b = 2;
    151     int c = (++a >= b++) && (a++ >= b++) ? a : b;
    152     System.out.println(c);    //4
  • 相关阅读:
    录毛线脚本,直接手写接口最简洁的LoadRunner性能测试脚本(含jmeter脚本)
    LoadRunner回放乱码
    结构体练习(C)
    MongoDB在windows及linux环境下安装
    pycharm 快捷键
    倒置输入的整数(C、Python)
    mysql常用操作(测试必备)
    wireshark配合jmeter测试webservice接口
    子网掩码的作用
    java 获取对象的数据类型、数据类型转换
  • 原文地址:https://www.cnblogs.com/BRIGHTM00N/p/10452979.html
Copyright © 2020-2023  润新知