Java学习DAY2~变量和数据类型运算符~2020-12-06

Java学习DAY2

变量和数据类型运算符

1.什么是变量

public class test {
    public static void main(String[] args ){
       int a ;
       a=10;
        System.out.println(a);
    }
}

  • a就是一个变量
  • 代码中创建一个变量等价于申请一块内存空间
  • 变量必须先定义才能被使用

2.变量的形态

public class test {
    static int a;   //静态属性/类成员变量/类变量
    int b;          //属性/成员变量/实例变量
    public static void main(String[] args ){
       int a ;      //局部变量
       a=10;
        System.out.println(a);
    }
}

3.整型变量

  • 基本语法格式
    int 变量名=初始值

  • Java中=表示赋值,意思是给变量设置一个初始值

  • 最后不要忘记带;

  • Java中,一个int变量占4个字节,和操作系统没有关系
    什么是字节?
    字节表示计算机中空间大小的基本单位,计算机使用二进制表示数据,我们认为8个二进制位(bit)为一个字节(byte) 四个字节表示的数据范围是-2^31 => 2^31-1,大概是-21亿到+21亿(2的 31 次方中31是这样算的 : 4*8=32-1=31 )
    用以下代码看Java中整型数据范围:

System.out.println(Integer.MAX_VALUE);//int的最大值
      System.out.println(Integer.MIN_VALUE);//int的最小值

结果
在这里插入图片描述
Interger就是Int的包装类
Long就是long的包装类
Short就是short的包装类
Double就是double的包装类

4.长整型变量

  • 基本语法格式
    long 变量名=初始值;
 long num=10L;//定义一个长整型变量,初始值也可以写作10l(小写的L不是数字1)
       System.out.println(num);
  • Java中long类型占8个字节,数字表示范围是-2^63=> 2^63-1
  • 用以下代码查看Java的长整型数据范围
       System.out.println(Long.MAX_VALUE);//long的最大值
       System.out.println(Long.MIN_VALUE);//long的最小值

结果
在这里插入图片描述

5.双精度浮点型变量

  • 基本语法格式
    double 变量名=初始值;
       double num=1.0;
       System.out.println(num);
  • 神奇的代码1
       int a =1;
       int b =2;
       System.out.println(a/b);

结果
在这里插入图片描述
大部分的编程语言中整数除以整数得到的还是整数,会把小数部分截断(直接舍弃).但有些语言就可以直接出现0.5,例如 Python3、JavaScript。dart…
Java中,int除以int得到的值还是int。若想得到0.5,需要用double类型计算。

       double a=1;
       double b=2;
       System.out.println(a/b);

结果:
在这里插入图片描述

  • 神奇的代码2
       double num=1.1;
       System.out.println(num*num);

结果
在这里插入图片描述

  • 神奇代码3(1)
      double a=1.1;
      if(a*a==1.21){
         System.out.println("相等");
      }else{
         System.out.println("不相等");
      }

结果
在这里插入图片描述

  • 神奇代码3(2)

JAVA表示的浮点数有误差,不能拿==来比较两个浮点数是否相等,正确做法应该要把比较的浮点数进行相减,比较这个差值是否一定小于一定的范围(误差允许的范围).算钱的时候一般都以分为单位,此时均为整数计算,避免了浮点数计算。

        double a=1.1;
        if(a*a-1.21<0.0000001&&a*a-1.21>-0.0000001){
           System.out.println("相等");
        }else{
           System.out.println("不相等");
        }

结果
在这里插入图片描述

6.单精度浮点型变量

  • 基本格式
    float 变量名=初始值;
      float num=1.0f; //写作1.0F也可以
      System.out.println(num);

结果
在这里插入图片描述
float在Java中占4个字节。同样遵循IEEE 754标准,由于表示的数据精度范围比较小,精度也比较低,一般在工程上用到的浮点数都优先考虑double,不太推荐float。

7.字符型变量

  • 基本格式
    char 变量名=初始值;
     char ch='a';

在C语言中使用ASCII表示字符,而Java中使用Unicode表示字符,因此一个字符占用两个字节,表示的字符种类更多,表示的字符种类更多包括中文。

8.字节类型变量

  • 基本语法格式
    byte 变量名=初始值;
      byte value=0;
      System.out.println(value);

结果
在这里插入图片描述

  • 字节类型表示的也是整数,只占一个字节,表示范围比较小-128—127
  • 这个类型非常常见,尤其是进行网络编程的时候。

9.短整型变量

  • 基本语法格式
    short 变量名=初始值;

  • short只占用两个字节的整数,表示的数据范围是-32768—+32767

  • 这个表示的范围比较小,一般不推荐使用

10.布尔型变量

  • 基本语法格式
    boolean 变量名=初始值;

  • boolean类型的变量只有两种取值。true表示真,false表示假。

  • Java的boolean类型和int不能相互转换,不存在1表示true,0表示false这种用法。

  • Boolean类型有些JVM的实现是1个字节有些是占1个比特位,没有明确规定。

11字符串类型变量

注意:String类型不是基本数据类型,而是引用数据类型。

  • 基本语法格式
    String 变量名=“初始值”;

  • 代码示例:

        String name="zhangsan";
        System.out.println(name);

若字符中要带有双引号怎么输出呢?
直接加双引号就会出错:

        String str="my neme is""zhangsan“";
        System.out.println(str);

结果:
在这里插入图片描述
这里需要用到转义字符

        String str="my neme is\"zhangsan\"";
        System.out.println(str);

结果:
在这里插入图片描述

  • 字符串长度
        String str="hahaha";
        System.out.println(str.length());

结果
在这里插入图片描述

  • 字符串拼接
    +操作,表示字符串接, 使用+能够把两个字符串给拼接起来。

代码示例:

        String a="hello";
        String  b="world";
        System.out.println(a+b);

结果
在这里插入图片描述
不仅可以两个整数用+,还可以字符串用+。而且还可以字符串和整数进行相加:

        String a="hello";
        int b=10;
        System.out.println(a+b);

结果

hello10

Process finished with exit code 0

要是想要先算a+b。我们要加括号。

        String a="hello";
        System.out.println(a+(10+20));

结果

hello30

Process finished with exit code 0

其实还有下面这种写法。不过我们不太常用:
在这里插入图片描述

12.变量的作用域

作用域和变量形态密切相关。也就是该变量所能生效的范围,一般是变量定义所在的代码块(大括号)

13.变量的命名规则

**硬性指标**
  • 一个变量名只能包含数字、字母、下划线、$。

  • 数字不能开头。

  • 变量名对大小写敏感。Num和num 是两个不同的变量.

  • 变量名不能是JAVA的关键字
    软性指标

  • 见名知意

  • 多个单词构成的变量名。使用驼峰命名法:
    小驼峰(首个单词首字母小写,后续单词首字母大写)eg:studentName
    大驼峰(所有单词首字母都大写)eg:StudentName

14.理解类型转换

注意:但凡代码中涉及到了强制类型转换。意味着代码的正确性,就需要程序猿人工来保证了

  • int和long互相赋值
       int a=10;
        long b=20;
        a=b;//编译出错,提示可能会损失精度
        b=a;//编译通过

结果

Error:(37, 11) java: 可能损失精度
  需要: int
  找到:    long

这时候可以进行强制类型转换

        int a=10;
        long b=20;
        a=(int)b;
        System.out.println(a);

结果

20

Process finished with exit code 0

long 表示的范围更大,可以将int赋值给long,但不能将long赋值给int。

  • int和double类型相互赋值
    注意:int和doublel类型不能相互转换
        int a=10;
        double b=1.0;
//        a=b;//编译出错,提示可能会损失精度
          b=a;//编译通过

double表示的范围更大,可以将int赋值给double,但是不能将double赋值给int。

  • int和boolean赋值
    int和boolean不能相互赋值。

  • int和byte相互赋值

        int a=100;
        byte b=256;
        System.out.println(a);
        System.out.println(b);

在这里插入图片描述
报错:
在这里插入图片描述
byte表示的数据范围是-128到+127,256已经超过范围,而100还在范围之内。Java会自动进行一些检查校验,判断赋值是否合理。

15.逻辑运算符

注意:逻辑运算符的操作数和返回值都是boolean

  • 逻辑与&&:一假则假
  • 逻辑或||:一真则真
  • 逻辑非!:也称为逻辑取反
    逻辑与&&和逻辑或||都遵循短路求值,
        System.out.println(10>20&&10/0==0);
        System.out.println(10<20||10/0==0);

结果:

false
true

Process finished with exit code 0

因为&&前面的是假,所以后面的除0操作就没被运行,这就是短路求值操作。

16.位运算符

注意:当&和|的操作数是整数(int,short,long,byte)的时候,表示按位运算,当操作数为boolean的时候,表示逻辑运算

  • 按位与&
  • 按位或|
  • 按位取反~
  • 按位异或^

17.移位运算符

  • 左移<<:最左侧不要了,最右侧补0.(左移一位相当于乘以2)
  • 右移>>:最右侧不要了,最左侧补符号位(正数补0,负数补1)(右移一位相当于除以2)
  • 无符号右移>>>:最右侧位不要了,最左侧补0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值