Java---模块二
模块目标:
1 掌握变量的定义和使用
2 能够使用IDEA中的DeBug调试工具查看程序的执行流程
3 能够使用Scanner从键盘录入数据
4 清楚算数运算符/和取余%的特点,以及自增自减运算符
5 java中字符串拼接操作
6清楚隐式转换和强制转换两种类型转换
7了解二进制中原码,反码,补码
一 变量:
- 变量是什么:
变量定义格式:
数据类型 变量名 = 数据值;
java中的数据类型:
- 基本数据类型:
不同的数据类型存储的数据范围不同,在内存中占用的空间也不同.
所有整数都默认的int类型,所有小数都默认的double类型
- 引用数据类型:#
变量的使用 :根据变量的名字进行使用
变量的注意事项:
1 变量不能重名
2 一条语句可以定义多个变量,中间逗号分隔。
3 变量使用前要赋值
4 变量的作用域
二 Debug工具的使用:
程序调试工具,也称断点调试
可以追踪程序执行过程,用来来调试程序
使用步骤:
-
先设置断点
-
鼠标右键debug后向下执行
设置断点debug后,左测frame可以看到方法----->
右侧可以看到设置过的变量
console是控制台,负责输出
(1)重新运行debug:左上角
(2)强制结束debug:左侧中位置
(3)批量取消断点:左侧
设置多个断点:可以执行一段代码(区间)
三 Scanner键盘录入:
作用:可以让程序使用更加灵活
键盘录入的三个步骤:
(1)找到符咒代码(从核心类库中)—导包(写在类之上)
import java.util.Scanner;
(2)召唤精灵------创建对象(idea中直接进行召唤精灵,符咒会自动补齐)
代码:
Scanner sc=new Scanner(System.in);
位置:main方法里面
含义:从符咒中召唤精灵,给精灵起个名字叫sc
(3)指挥精灵------调用对象中的方法
代码:
int age=sc.nextInt();从键盘录入整数,并使用int类型变量接受
double height=sc.nextDouble();从键盘录入小数
boolean flag=sc.nextBoolean();从键盘录入布尔类型
String name=sc.next();从键盘录入字符串并使用String类型进行接收
四 算数运算符、数值拆分
包含+,-,*,/,四种
/:整数相除只能得到整数,要想得到小数结果,需要有小数参与运算
%:取模操作符,作用是取余,很多算法中都涉及取模操作符
取某个数某位上的数公式(数值拆分)总结:
五 自增自减运算符:
注意:只能对变量进行操作
++:让变量自身的值+1
--:让变量自身的值-1
(1)单独使用:一句代码中,只做++,或者--
++,-- 在变量前后没有区别
(2)参与运算使用
一句代码中除了++/--,还有别的操作
++在前:先自增,再操作
++在后:先操作,后自增
六 字符串拼接操作:
java中:
当+遇到字符串时候,+表示字符串连接符
(类比贪吃蛇游戏对java中的”➕“进行理解)
七 类型转换:
隐式转换:
数据范围从小到大的顺序:
注意:float类型数据字节比long小,但是存储的数据取值范围比long大
类型转换---隐式转换
介绍:将取值范围小的数据或者变量,赋给取值范围大的变量,可以直接赋
---简记:小的给大的,可以直接给
是自动的
赋值时是copy一份给另一个变量,原变量的值是没有变化的。
基本的隐式转换:把一个取值范围小的数值或者变量,赋值给另一个取值范围大的变量
运算过程中的隐式转换:
(1)运算中数据类型如果不统一,不能直接进行运算,取值范围小的数据和取值范围大的数据进行运算,小的会先提升为大的,再进行运算
(2)byte short char三种数据类型在运算时,都会把自身提升为int后,再运算
强制转换:
类型转换---强制转换
介绍:将取值范围大的数据或者变量,赋值给取值范围小的变量,
不允许直接赋值,需要强制转换
注意:强制转换【有可能】会出现精度丢失
类比从一个大桶中向另一个小桶中倒油,可能倒不下。
(转换目标类型)转换目标变量
八 二进制__原码,反码,补码(了解):
- 计算机中的进制分类:
计算机中的进制分类:
十进制
二进制:
八进制:0开头
---今后编写数值,尽量不要以0开头
十六进制:0x开头
---今后看到一组数据是0-9,字母a-f排列组合的,说明是十六进制数据
代码中默认输入的为为10进制,如果要按照其他进制进行输入:(了解)
(1)二进制:前面加0b
(2)八进制:前面加0(0作为开头)
(3)十六进制:前面夹0x
但是终端输出显示的仍未10进制数字
二进制转十进制:
公式:
或者使用 8421转换法
二进制数据的三种状态:
原码:
第一位为高位(也称符号位,0代表正数,1表示负数),其他位才表示数值大小
反码:(对原码取反)
-
正数的反码与其原码相同
-
负数的反码是对其原码除符号位的其他位按位取反。
补码:
-
正数的补码与其原码相同
-
负数的补码是其反码末位加1
二进制原码状态运算有负数参与时会出现问题
计算机在运算时,是以二进制补码的形式进行运算的
三码的总结:
-
正数的原反补都一样
-
负数原码------(数值位按位取反)----->负数反码---------(反码末尾加1)----->负数补码
-
已知补码求原码:逆过程同样,先取反,再末尾加一
其他get:
(1)java的常量优化机制:再在编译过程(javac)中会将字面量进行运算
(2)对字节码文件反向操作:将这字节码文件转化为原码,将class字节码文件拖到idea中
(3)快捷键:ctrl+x可以当作删除一行
(3)阅读代码的一个小技巧:代码中等号从右往左看