02- java变量与运算符 学习笔记

变量

命名规范

硬性 必须遵守的条件

  • 使用 数字 字母 $ _ 四类组成
  • 数字不能开头
  • 区分大小写
  • 不能和关键字重名

软性 可以遵守也可以不遵守,但是最好遵守

  • 望文知义 变量命名 要根据变量所表示的含义来命名
  • 使用驼峰命名法 一个变量有多个单词组成, 从第二个单词开始,首字母大写 dataSource

数据类型

8大 基本数据类型

  • 整数
    • byte (字节 )
    • short (短整数)
    • int (整数)
    • long (长整数)
  • 小数 浮点数
    • float 单精度
    • double 双精度
  • 非数值
    • char 字符
    • boolean 能够存储 真或假 (布尔类型)

二进制

计算机保存 信息 , 智能识别 1 , 0 (表示晶体管 开或关)

一组0或者 1 组成的的数字 就是二进制

对比 10进制 0 -9

通过进行二进制运算

12^01
22^110
42^2100
82^31000

111011 换算成10进制 (32+ 16 + 8 + 2 +1) = 59

43 换算成 2 进制 101011

位 一个二进制 就是一个位 只能表示 0 或 1

一个 字节 等于 8 个位 , 字节是计算机存储数据的最小单位

一个字节 8 个位 能够保存的最大数据? (第一位可以描述为符号位, 不参与数值计算)

byte 一个字节 1(符号位) 1111111 最大表示 127 最小 -128

short 两个字节 (符号位) 15位 数字位 -2^15 到 +2^15-1 (-32768到+32767)

int 四个字节 (符号位) 31位 数字位 -2^31 到 + 2^31-1

赋值案例

int a = 10; 描述为 系统先创建10 , 然后 把10 赋值给创建好得 a 变量

float f = 3.14; ( 报错 原因) 系统先创建 3.14 赋值给 float 类型的 f

= 赋值号 从右向左给变量赋值 系统先创建的是 3.14 ,

细节 : 系统默认创建整数 是使用int

​ 系统默认创建小数, 使用double

float g = 1.2F;   // 系统创建默认类型的时候 使用float 来创建1.2
long m = 100L;
double n = 3.14D;

常量

final 修饰 一旦被赋值 不能被改变

变量命名规范

  • 全大写

  • 多个单词使用 下划线连接

键盘录入

java 给我们提供了一个 工具 Scanner , 工具具有接收用户键盘录入数据的功能

请一个人来帮忙

​ 1, 找到这个人所属的公司

​ 2, 公司 派遣 该员工 过来帮忙

​ 3, 该员工需要使用自己的专业技能来服务

Scanner

  • 导入Scanner类 import java.util.Scanner;
  • 创建该类对象 Scanner input = new Scanner(System.in);
  • 调用该类的方法 input.nextInt();
package data0626;
import java.util.Scanner;

public class Demo2 {
    public static void main(String [] args){
        
        // 使用 Scanner
       Scanner input = new Scanner(System.in);
       System.out.println("请输入第一个数据:");
       int num1 = input.nextInt();  // 接收用户键盘录入的一个数字

	   System.out.println("请输入第二个数据:");
	   int num2 = input.nextInt();  // 接收用户键盘录入的一个数字


// 执行打印结果
System.out.println(num1 +"+"+ num2 +"="+ (num1 + num2));

        // num1 + num2 = (num1 + num2)
    }
}

类型转换

自动类型转换

自动类型提升

  • 数据兼容性
  • 从小容器 转向大容器 可以实现自动类型提升

强制类型转换

从大容器 转向小容器 有可能产生数据溢出

我们程序员能够确认 数据转存没有问题(一定不会发生数据溢出) 强制转换类型

语法格式

小类型 = (小类型)大类型;

细节问题

  • 小数转整数 , 舍去小数位
  • 两个 int 类型的数据 做运算 结果还是 int
  • 两个int 类型的数据, 做运算, 如果超出int的数据范围 结果也是似是而非的

运算符

赋值号 = 从右向左运算

交换两个数值

算术运算符

  • 加减乘除
  • 取余 (取模) %
  • += -= /= %=
  • ++ – (自增/自减)
b = b + 1;
b += 1;
b++;
// ++a 在前 先运算 后赋值
// a++ 在后 先赋值 后运算
b = ++a;
	a = a + 1;
	b = a;
b = a++;
	b = a;
	a = a + 1;
  • 案例

使用键盘录入 四位数 使用 / 和 % 分别获取每个位上的数字, 求和

Scanner input = new Scanner(System.in);
System.out.println("请输入 4 位会员编号:");
int no = input.nextInt();   //  9527
// 把 四位数 分解成 9527 / 952 / 95 / 9
int ge = no % 10;
int shi = no/10 % 10;
int bai = no/100 % 10;
int qian = no/1000;
System.out.println(ge + shi + bai + qian);

关系运算符 (比较)

  • ==
  • !=
  • < > <= >=

只支持数值 判断

逻辑运算符

& (与and)  	两个条件同时满足 才是正确的
| (或)		两个条件满足任意一个 就是正确的
! (非)		取反 
^ (异或)     两个一样 是不正确的  (两个不一样则正确)
&& 	短路与		
  如果说根据第一个条件就能够判断出来 整体的结果 , 可以不进行下一步判断
||  短路或		
验证 短路运算
int a = 1;
if(false & a++ >0){
System.out.println("success");
}else{
System.out.println("fail");
}
System.out.println(a);

位运算符

& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 左移
>> 右移
>>> 无符号右移
<<1  原数* 2
>>1  原数/2
位运算  是 做*2 /2 最有效率的运算

条件运算符

三元运算符 / 三目运算符

运算符
单目运算符/ 一元运算符运算所需变量为一个 / 运算当中只有一个操作数 a++ / !boolean
双目运算符运算所需变量为两个的运算符叫做双目运算符
三目运算符运算所需变量为三个的运算符

语法格式

条件 ? 表达式1 : 表达式2 // 如果条件满足 选择1 否则选择2

  • 案例
// 输入一个学生的成绩, 如果成绩高于 60 分 ,打印及格,否则,打印不及格
 String result;
 result = score >= 60 ? "及格" : "不及格";
 
// 输入两个数 , 输出其中的最大值
int no3 = no1 > no2 ? no1 : no2;
/* if(no1 > no2){
// 如果条件满足 说明 no1 是最大值
	no3 = no1;
}else{
	no3 = no2;
}*/
// 使用三元表达式做题  使用键盘;录入三个数  输出最大值
// 三个人 比赛, 决出胜负 A B C
int max ;  // 最大值 放在 max 中
max = no1 > no2 ? no1 : no2;
max = max > no3 ? max : no3;

优先级问题

  1. () 优先级最高 = 赋值号优先级最低
  2. 单目运算符 优先级仅小于括号 (! ~ ++ --)
  3. 算术运算符 > 关系运算符 > 逻辑运算符

优先级问题

案例

题目1

工资 = 基本工资 + 物价津贴 + 房租津贴
int baseSalary ;
int money1 = baseSalary * 0.4;
int money2 = baseSalary * 0.25;

问题举例

八大基本数据类型

int 类型 占几个字节

== 和 = 的区别

&& 和 & 的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值