0
点赞
收藏
分享

微信扫一扫

Day03(

zibianqu 2022-01-04 阅读 91
java

一、定义变量的格式

1、必须对其限定,数据类型

2、将来我们想要拿到价格的时候,肯定不是拿着这个空间去做计算,而是给这一块空间起个名字,价格呢就是这个名字对应的值。变量名。

3、将来做计算的时候,拿到了这个变量,但是没有值也是没有意义的,所以我们要给它赋值。初始化值。

总结得到定义变量的格式:

数据类型 变量名 = 初始化值

【定义变量的注意事项:

1、作用域:变量在同一个大括号内有效,出了大括号外无效。

2、相同的作用域中不能定义两个同名的量。

3、没有初始化值不能直接使用,在使用之前赋值即可

4、不建议在一行上定义多个变量,强制定义一个变量为一行。

二、数据类型

1、基本数据类型

整数类型  占用字节   可表示的范围

byte 1 -2^7~2^7-1

short 2 -2^15~2^15-1

int 4 -2^31~2^31-1

long 8 -2^63~2^63-1

浮点类型

float 4 -3.403*10^38~3.403*10^38

double 8 -1.798*10^308~1.798*10^308

字符型

char 2

布尔型

boolean 1

引用数据类型(放到面向对象的时候说)

注意事项:

1、整数默认是int类型

2、如果要定义一个long型的数据,末尾要加上L或l,推荐L

3、默认是double类型

4、如果要定义一个float类型的数据,末尾要加上F或者f,推荐F

例:public class DataTypeDemo1{

public static vodi main(String[] args){

//定义一个int类型的变量

//定义变量的格式:数据类型 变量名 = 初始化值;

int i=10;

//定义一个byte类型的变量

byte j = 20;

//定义一个short类型的变量

short a = 100;

//因为10000000000超过了int的数据类型范围

//int b  =10000000000;

//如果要定义一个long类型的数据,末尾要加上L或l,推荐L

long l  = 10000000000L;

//定义一个float类型的数据

float f = 10000000000.F;

//定义一个double类型的数据

double = 12.34;

//定义一个char类型的数据

char='a';

//char c1 = 'abc';

//定义一个boolean类型的数据

boolean b2 = true;

boolean b3=false;

}

}

三、自动类型转换、强制类型转换

1、+一般情况下,做加法运算。

2、boolean类型的变量不能赋值给其他数据类型

3、默认转换

        byte,short,char——int——long——float——double

        byte,short,char相互之间补转换,他们参与运算首先转换为int类型

4、强制类型转换的格式:

      目标数据类型 目标变量名 = (目标数据类型)要进行赋值变量不建议大量使用强制类型转换,因为可能会损失精度。

例:

public class DataTypeDemo3{

   public static void main(String[] args){

//          int a =10;

//          int b =20;

//          int c =a+b;

//          System.out.println(c);

//           

//           boolean flag =true;

//           a = flag;

             byte b = 3;

              int a = 4;

//自动类型转换

//            a = b;

//             b = a;

//             int i = 10;

//             long l = i;

//强制类型转换

//             byte b1 = a;

               byte b1 =(byte) a;

               System.out.println(a);

    }

}

5、面试题

    byte b1 = 3,b2 = 4,b;

    b=b1+b2;

    b=3+4;

哪句是编译失败的呢?为什么呢?

变量相加和常量相加不一样:

1、变量相加首先会提升数据类型,然后再相加赋值,如果接收的数据类型范围小于计算结果后的数据类型范围,报错,不能赋值。

2、常量相加,会先进行计算,计算完后看看在不在接收的数据类型范围内,如果在,直接赋值,如果不在,报错。

public class DataTyoeDemo4{

    public static void main(String[] args){

//       int a = 3;

//       byte b = 4;

//       int c1 = a+b;

//

//        byte c2 = (byte)(a+b);

//        System.out.println(c2);

           byte b1 = 3,b2 = 4,b;

//          b=b1+b2;

            b=(byte)(b1+b2);

            b=3+4;

    }

}

6、byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?

   有问题的,因为byte数据类型的范围是在-128~127之间,而130超出了范围。

public class DataTypeDemo5{

    public static void main(String[] args){

//      byte b = 130;

        byte b =(byte)130;

        System.out.println(b);//-126

         b = (byte)131;

         System.out.println(b);

         

          byte b1 = (byte)300;

          System.out.println(b1);// 44

    }

}

我们知道数据在计算机中运算的时候是采用补码的形式参数运算的,所以要知道130的补码,而想知道补码,就得知道反码,原码,所以得求出130的二进制的表示:

130的二进制:10000010

由于整数默认是int类型,所以扩大字节

130的原码为:00000000 00000000 00000000 10000010

又由于最高位是0,所以它的原码,反码,补码都一样。

130的补码:00000000 00000000 00000000 10000010

做截取操作:10000010这是补码

已知补码,求原码:

            符号位              数值位

 补码:     1                 0000010

反码:      1                  0000001

原码:       1                 1111110

最终结果为:1111110

将它换算成十进制就是:-126

7、ASCLL码

/*

System.out.println('a');

System.out.println('a'+1);

代码格式化的快捷键:ctrl+alt+L

ASCLL码表必须记住的三个字符对应的值:

'0'    48

'A'     65

'a'      97

*/

public class DataTypeDemo6{

   public static void main(String[] args){

         System.out.println('a');

//字符参与算术运算的时候,会将字符转化成对应的ASCLL码表中的值参与运算

         System.out.println('c'+1);// 98

     }

}

7、+号的用法

/*

     System.out.println("hello"+'a'+1);

     System.out.println('a'+1+"hello");

     System.out.println("5+5="+5+5);

     System.out.println(5+5"=5+5");

+号的用法:

1、当加号两边都是数字或者数字和字符的时候,这时候的+号做的是加法运算

2、当加号两边是其中的字符的时候,做的是字符串拼接,拼接后是一个新的字符串

3、字符串与任何数值做加法,做的是字符串拼接,拼接后是一个新的字符串

*/

public class DataTypeDemo7{

    public static void main(String[] args){

        System.out.println("hello"+'a'+1);//helloa1

        System.out.println('a'+1+"hello");//98hello

        System.out.println("5+5="+5+5);//5+5=55

        System.out.println(5+5+"=5+5");//10=5+5

        //System.out.println("5+5="+5+5);//5+5=55我就想先计算后面的5+5怎么办?

        //小括号可以改变运算的顺序优先级

        System.out.println("5+5="+(5+5));

    }

}

8、++、--运算

     ++:自加1

     当++在前的时候,先自加1,再做赋值操作,当++在后的时候,先做赋值操作,再做自加1

     --:自减1

     当--在前的时候,先自减1,再做赋值操作,当--在后的时候,先做赋值操作,再做自减1

public class DataTypeDemo8{

    public static void main(String[] args){

//        int a = 10;

//        int c = a--;

//        System.out.println(a);//9

//        System.out.println(c);//10

//

//        int a1 = 10;

//        int c1= --a1;

//        System.out.println(a1);//9

//        System.out.println(c1);//9

           int a =  10;

           int c = a++;

           System.out.println(a);//11 

           System.out.println(c);//10

           int a1 = 10;

           int c1 =++a1;

           System.out.println(a1);//11

           System.out.println(c1);//11

    }

}

9、运算符

运算:对常量和变量进行操作的过程称为运算

运算符:对常量和变量进行操作的符号称为运算符

操作数:参与运算的数据

表达式:用运算符把常量或者变量连接起来符号并且符合java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。

(1)算数运算符:+,-,*,/,%,++,--

例:

public class OptArithmeticDemo3{

    public static void main(String[] args){

         int a = 4;

         int b = (a++)+(++a)+(a*10);

         //            4         6         60

         //           a=5     a=6       a=6

         System.out.println(a);//6

         System.out.println(b);//70

    }

}

(2)赋值运算符:=,+=,-=,*=,/=,%=

其中我们一直在使用的也是最常用的:=

public class OptFuZhiDemo1{

   public static void main(String[] args){

//      int a = 10;

//      int b = a;

//      System.out.println(a);

//      System.out.println(b);

//+=

//   int a +=10;

     int a = 10;

     a +=20;//这里实际上可以看作为a的值加上了一个20再赋值给a,但是不能完全等于a = a + 20;

     System.out.println(a);

     //-=

     a-=10;

     System.out.println(a);//20

     //*=

     a*=2;

     System.out.println(a);//40

     // /=

     a/=2;

     System.out.println(a);//20

     

      //%=

      a%=3;

       System.out.println(a);//2

    }

}

例:(接)OptFuZhiDemo2.java(E:兰智大数据学习内容/Java/day03)

         

举报

相关推荐

day03

Day03

Linux Day03

day03 事件高级

Java基础day03

web开发day03

旅游项目day03

0 条评论