小饶学编程之JAVA SE第一部分——Java基础:02数据类型和运算符

一、数据类型

1.变量

1.变量:可以变化的量,在内存中,一个用于装数据的容器,数据可变,可以替换和覆盖(在内存里临时保存)。

下面展示变量声明方法

int a = 6;//把6赋值给a,把等号右边的值赋值给等号左边的值。

2.进制之间的转换:除K取余法

除k取余法,主要用于把十进制的数化为k进制的数。
例如:
把89化为二进制的数
89÷2=44 余1
44÷2=22 余0
22÷2=11 余0
11÷2=5 余1
5÷2=2 余1
2÷2=1 余0
1÷2=0 余1
然后把余数由下往上排序
1011001(2)
这样就把89化为二进制的数了
89(10)=1011001(2)
在这里插入图片描述

内存和硬盘通过二进制文件的形式存储数据。

计算机中最小的二进制位数是8位
1byte(字节)=8bit(8位二进制)
1KB=1024byte
1MB=1024KB
1GB=1024MB
1TB=1024GB

3.基本数据类型(4类8种)

3.1整数(4种)

类型字节数(个)数值范围例子
字节型 byte1-27~27-1( -128~127)byte a = 100;
短整型 Short2-215~215-1( 大概正负3万多)short s = 1000;
整型(默认)Int4-231~231-1( 大概正负21亿)int a = 100000;
长整型 long8-263~263-1long a = 100000L;

3.2浮点数(小数2种)

类型字节数例子
单精度 float4float f1 = 234.5f;
双精度 Short8double d1 = 123.4;

3.3字符型(char)

char 数据类型可以储存任何字符;占两个字节,赋值时要加上单引号,里面只能是一个字符。
比如: 汉字、数字0-9、字母a-z,A-Z、符号、空格。
下面展示一些 定义char的例子

 		char a = 'a';
        char b = 'Z';
        char c = '1';
        char d = '我';
        char f = '¥';
        char e = ' ';//空格

3.4布尔型(boolean)

boolean数据类型表示一位的信息;
只有两个取值:true 和 false;
默认值是 false;
boolean 占1字节或者4个字节 :
如果使用boolean声明一个基本类型的变量时,因为boolean类型被编译为int类型,那么该变量占4个字节;如果使用boolean声明一个数组类型的时候,因为编码为byte数组,那么每个数组的元素占用8位=1个字节。

下面展示一些 定义boolean的例子

 		  boolean one = true;
        boolean isFind =false;

4.引用数据类型

引用数据类型有类(例如:String)、接口、枚举、数组。

5.数据类型转换

5.1自动类型转换(隐式转换)

特点:目标大于源类型,小的向大的转换,必须类型兼容。比如:整数和整数,非整和非整,整和非整。
下面展示一些 代码片

 	 	int a = 10;//4个字节
        long b = a;//8个字节,没报错
        float c = a;//4个字节,没报错
        double d= a;//8个字节,没报错

5.2强制类型转换

特点:目标小于源类型,大的向小的转换,丢失精度
下面展示一些 代码片

 	  long a= 888;//8个字节
        double b=999;//8个字节
        int c= (int)a;//4个字节,没报错
         c=(int)b;//8个字节,没报错
         byte d=(byte)b;//1个字节,没报错
         char e=(char)a;//2个字节,没报错

5.3字符和整数之间的转换:char->int

A-Z:65-90;a-z:97-122;
GBK(中文):《汉字内码扩展规范》;
ASCII:英文、数字、常用符号;
UTF-8:世界上所有文字;

6.人机交互(Scanner)

1.思考:打游戏时,控制英雄的运动和技能是如何实现的?
在键盘上输入的上下左右,游戏程序如何知道?
2.分析:程序中必然有一个装置来接收键盘按键的值。
3.Scanner的使用
分析,记事本上打字的过程:系统接收键盘上的按键对应的字母,然后传入到搜狗输入法,合成相应的文字,然后在电脑屏幕上显示。
4.思考:java程序如何接收键盘输入的内容呢?
Jdk中封装了一个类Scanner,该类的职责就是接收键盘的输入值,并保存到程序的变量中,体现了程序和用户的交互功能。

下面展示一些 使用Scanner的代码片

 //  使用步骤:
// 1.导包(别人写的类,作为当前类的引用)
import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {
        //2.创建对象
        Scanner sc = new Scanner(System.in);
        // 3.对象调用方法来接收输入值
        System.out.println("请输入胜利!");
        String good = sc.next();//接收字符串类型的值
        int i = sc.nextInt();//接收整型的值
        boolean b = sc.nextBoolean();//接收布尔类型的值
    }
}

二、运算符

1.赋值运算符

1.赋值:往变量对应的内存空间里面塞一个值。
2.书写格式: int a = 8; 往往在定义一个变量的时候会为其赋值。
3.赋值特点:新值会覆盖原来的旧值
第一次给变量赋值称为“初始化”。
下面展示一些 交换数值的代码片

  		int a = 5;//等号右边的‘5’赋值给了等号左边的‘a’;
        int b = 6;
        int c = a;
            a = b;
            b = c;
            //变量a和变量b交换了数值

2.算术运算符

1.基本算术运算:+ - * / 、% 、 ++i、i++、 --i、 i–

重点:++ – 在变量的前面还是后面
下面展示一些 基本算术运算的代码片

  	 //前置运算 ++i(先自增,再返回值)
        int i= 7;
        ++i;//先自增7+1,再返回8,此时i=8
     // 后置运算 i++(先返回值,再自增)
        i= 7;
        i++;//先返回7,再自增7+1,下一次使用时i=8

2.复合算术运算:+= -= *= /= %=
下面展示一些 复合算术运算的代码片

  	int a=8;
    a += 1;//相当于a=a+1
    //a=9

3.关系运算符

== != < > >= <=
关系运算符比较的是符号两边的值,它的结果是布尔值

下面展示一些 关系运算符的代码片

     int a = 8;
        int b = 7;
        System.out.println(a == b);;//false

        float c=5.2f;
        double d=5.2;
        System.out.println(c==d);//false
        //总结:float和double由于精度不一样小数点后非零的小数与小数之间相比会是false
        float c1=5.0f;
        double d1=5.0;
        System.out.println(c1==d1);//true
        //当小数点后都为0时,数值相等,输出true

4.逻辑运算符

参与逻辑运算符的表达式必须是布尔类型,返回值也是布尔类型。
逻辑与 & 逻辑或 |
短路与 && 短路或 ||
在这里插入图片描述
如何理解短路:电路图中的短路是:电流绕过某段电器,从导线走。
下面展示一些 逻辑运算符的代码片

   		//与:一错都错,全队才对
        System.out.println(true&true);//true
        System.out.println(false&&true);//false
        System.out.println(false&&false);//false
        //或:一对都对,全错才错
        System.out.println(true|true);//true
        System.out.println(false||true);//true
        System.out.println(false||false);//false
        //特别注意:
        //在短路与&&中,当第一个条件为false时,第二个条件不执行。
        //在短路或||中,当第一个条件为true时,第二个条件不执行。

1.&&运算中,第一个条件为false,整个语句结果必然为false,所以程序忽略第二个条件, 此为短路与
2.||运算中,第一个条件为true,整个语句结果必然为true,所以程序忽略第二个条件,此为短路或
3.优先级:! > && > ||
4.当表示1<i<3时可以用 i<3&&i>1.

5.条件运算符

也称三元(三目)运算符
1.书写格式:
在这里插入图片描述
2.使用场景:当一个变量的取值有两种可能时,用条件运算符来为变量赋值。
下面展示一些 条件运算符的代码片

	 int score = 85;
     System.out.println(score>60?"考试及格":"考试不及格");

6.运算符的优先级

  • 单目运算符包括:! ++ --,优先级别高
  • 优先级别最低的是赋值运算符
  • 可以通过()控制表达式的运算顺序,()优先级最高
  • 从右向左结合性的只有赋值运算符、三目运算符和单目运算符
  • 算术运算符>关系运算符>逻辑运算符
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱喝皮蛋瘦肉粥的小饶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值