java基础day2-变量和数据类型

变量和数据类型

数据类型说明

数据类型 大小 取值范围
byte 1字节8位 -128 ~ +127
short 2字节16位 -32768 (-2^15) ~ + 32767 (+2^15-1)
int 4字节32位 -2147483648(-2^31) ~ + 2147483647(2^31-1)
long 8字节64位 -2^63 ~ + 2^63-1
float 4字节32位浮点数 1.4E-45 ~ 3.4E+38 , -1.4E-45 ~ -3.4E+38
double 8字节64位浮点数 4.9E-324 ~ 1.7E+308, -4.9E-324 ~ -1.7E+308

变量声明及使用

第一步:声明变量,根据数据类型在内存申请空间
数据类型 变量名;
第二步:赋值,即“将数据存储至对应的内存空间”
变量名 = 数值;
第一步和第二步可以合并
第三步:使用变量,即“取出数据使用”
数据类型 变量名=数值;

示例如下:

public class Demo1 {
     
    //快捷键psvm,四个英文单词首字母
    public static void main(String[] args) {
     
        double score=98.5;//数据类型 变量名=数值;
        String name="张三";//数据类型 变量名=数值;
        char gender='男';//数据类型 变量名=数值;
        System.out.println("java课程最高分为"+score);//字符串的连接用"+"
        System.out.println("最高分学员姓名:"+name);
        System.out.println("最高分学员性别:"+gender);
    }
}

结果如图:
java基础day2-变量和数据类型_第1张图片

Scanner的使用

在程序运行中,我们通过使用Scanner来接收用户键盘输入的值。
第一步:我们需要导入Scanner类
import java.util.Scanner;
第二部:创建Scanner对象
Scanner input=new Scanner(System.in);
第三部:获得键盘输入的数据
int now=input.nextInt();

示例如下:

import java.util.Scanner;//导入Scanner类
/**
 * @Date 2021/1/5
 * @Description
 */
public class Demo5 {
     
    public static void main(String[] args) {
     
        Scanner sc=new Scanner(System.in);//创建Scanner对象
        System.out.println("请输入4位会员卡号:");
        int num=sc.nextInt();//获得键盘输入的数据
        System.out.println("会员卡号是:"+num);
    }
}

结果如图:
java基础day2-变量和数据类型_第2张图片

自动类型转换

自动类型转换:1、隐式类型转换,大类型接收小类型,并且数值类型要相互兼容
2、小类型与大类型进行运算,则小类型自动转换成大类型
强制类型转换:当小类型接收大类型的数据时,就需要强制类型转换

示例如下:

public class Demo6 {
     
    public static void main(String[] args) {
     
        double avg=81.29;
        int add=2;
        //自动类型转换/隐式类型转换、大类型接收小类型
        avg=avg+add;//小类型与大类型进行运算,则小类型自动转换成大类型
        System.out.println(avg);
        int money=1000;
        //小类型接收大类型的数据,就需要强制类型转换
        money=(int)(money*(1+0.05));
        System.out.println(money);
        //类型转换的特殊情况
        int a=97;
        char c=(char)a;
        System.out.println(c);//ASCII码转换成字符
        char ch='F';
        int rst=ch;
        System.out.println(rst);//字符转换成ASCII码
        //拼接字符串
        System.out.println("abc"+1+2+3);
    }
}

结果如图:
java基础day2-变量和数据类型_第3张图片

算术运算符

基本的算数运算:+、-、*、/、%、++、- -
复合算术运算符:+=、-=、*=、/=、%=

a+=b–>a=a+b a-=b–>a=a-b a*=b–>a=a*b a/=b–>a=a/b a%=b–>a=a%b

++的意思是自增1,- -的意思是自减1
a++本身的值等于加之前的a的值,++b本身的值等于加之后的b的值。

示例如下:

public class Demo8 {
     
    public static void main(String[] args) {
     
        int a=5;
        int b=2;
        int c=4;
        int d=6;
        c+=b;//等于c=c+b
        d%=a;//等于d=d%a
        System.out.println(a++); //a++本身的值等于加之前的a得值
        System.out.println(a);
        System.out.println(++b);//++b本身的值等于加之后的b的值
        System.out.println(b);
        //++的意思是自增1,--的意思是自减1
        System.out.println(c);
        System.out.println(d);
        System.out.println(c--);
        System.out.println(c);
        System.out.println(--d);
        System.out.println(d);
    }
}

结果如图:
java基础day2-变量和数据类型_第4张图片

关系运算符与逻辑运算符

运算符 含义 范例 结果
== 等于 5==6 false
!= 不等于 5!=6 true
> 大于 5>6 false
< 小于 5<6 true
>= 大于等于 5>=6 false
<= 小于等于 5<=6 true

=为赋值运算符,==为等于运算符
关系表达式的结果为布尔值

运算符 含义 运算规则
&& 短路 两个操作数都是true,结果才是true
| | 短路 两个操作数一个是true,结果就是true
! 操作数为true,结果为false。
操作数为false,结果为true。

如果第一个操作数已经能确定表达式的值,第二个操作数就不必计算了。
但是逻辑与(&)和逻辑或(|)却不会这样,它们不管第一个操作数是否已经能确定表达式的值,都会继续计算第二个操作数,然后再确定表达式的值。

示例如下:

public class Demo9 {
     
    public static void main(String[] args) {
     
        int x=8;
        int y=9;
        System.out.println((++x==y)&&(x!=y));//短路与,只有两个都是true,结果才是true
        System.out.println(x);
        int a=5;
        int b=6;
        System.out.println( (++a!=b)||(++a==b));//短路或,只要有一个是true,结果就是true
        System.out.println(a);
    }
}

结果如图:
java基础day2-变量和数据类型_第5张图片
第一个输出打印语句里面,因为++x=9而且y=9,所以(++x==y)是对的(true),而x=y,所以(x!=y)是错的(false)。因为短路与只有在两个操作数都是true的情况下才能是true,所以该语句的结果为false。

第三个输出打印语句里面,因为++a=6而且b=6,所以++a应该等于b,则(++a!=b)是错的(false),此时a的值就为6了,再来个++a就等于7了,此时++a不等于b,所以(++a==b)也是错的(false)。因为短路或只要有一个操作数是true,结果就是true。但是这个语句中两个操作数都是false,所以该语句的结果也为false。

你可能感兴趣的:(java)