一、基础知识
1、注释
注释是在程序指定位置添加的说明性信息。
简单来说,就是对代码的一种解释。
单行注释: 格式: // 注释信息
多行注释: 格式: /* 注释信息 */
文档注释: 格式: /** 注释信息 */
注释内容不参与编译和运行
2、关键字
关键字:被Java赋予了特定涵义的英文单词
特点:关键字的字母全部小写
注意: main不是关键字,可以将其理解为,比关键字更为关键的一个单词,因为JVM在执行代码的时候,只会识别该单词
3、常量
常量:在程序的执行过程中,其值不会发生改变的量(数据)
4、变量
变量就是内存中的存储空间,空间中存储着经常发生改变的量(数据)
变量的定义格式:
数据类型 变量名 = 数据值;
变量的使用:
1)如何使用变量?
int a = 10;
int b = 20;
2)根据标识,变量名进行使用
修改值 :a = 30;
打印值 :System.out.println(a);
注意事项:
- 变量名不允许重复定义
- 一条语句可以定义多个变量
- 变量在使用之前一定要进行赋值
- 定义float和long变量的注意事项(后面需要加上各自的标识,不区分大小写,float f=1.23F,long lo=1345L)
- 变量的作用域范围
5、数据类型
Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,
所以它们表示的数据大小也是不一样的。
6、键盘录入
键盘录入介绍
为什么要有键盘录入?
目的:为了让我们操作的数据,变得更加灵活
举例:int a = 10;
a虽然是个变量,但记录的值,却是手动写死的。
能不能让a变量记录的值,灵活起来,用户输入什么,a 变量就记录什么。
键盘录入的三个步骤:
① 导包
import java.util.Scanner;
导包的动作必须出现在类定义的上边
② 创建对象
Scanner sc = new Scanner(System.in);
上面这个格式里面,只有sc是变量名,可以变,其他的都不允许变。
③ 接收数据
int i = sc.nextInt();
上面这个格式里面,只有i是变量名,可以变,其他的都不允许变。
7、标识符
标识符: 就是给类,方法,变量等起名字的符号。
定义规则
- 由数字、字母、下划线(_)和美元符($)组成
- 不能以数字开头
- 不能是关键字
- 区分大小写
常见命名约定
小驼峰命名法:方法、变量
约定1:标识符是一个单词的时候,首字母小写
范例1:name
约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写
范例2:firstName
大驼峰命名法:类
约定1:标识符是一个单词的时候,首字母大写
范例1: Student
约定2:标识符由多个单词组成的时候,每个单词的首字母大写
范例2: GoodStudent
二、类型转换
隐式转换
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量
简单来说,小的给大的,可以直接给
自动类型转换(隐式转换)的原则:
第一,byte,short,char 在进行运算时会先提升为 int再计算 。
第二,取值范围小的数据类型和取值范围大的数据类型进行运算时,会将取值范围小的提升为取值范围大的数据类型之后再进行运算。
强制转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
格式:目标数据类型 变量名 = (目标数据类型)值或者变量;
范例:int k = (int)88.88;
注意: 强制类型转换,有可能会发生精度损失
例:
指出下列代码的问题
public class Test {
public static void main(String[] args) {
byte a = 3; //①
byte b = 4; //②
byte c = a + b;//③
byte d = 3 + 4; //④ } }
问题
byte c = a + b;//③,这句代码有问题,因为a 和 b 是两个byte类型,当 (byte short char int ) 在一起运算的时候,会先提升为int,然后再进行运算。两个int相加后的结果,还是int类型,将int赋值给byte需要强制类型转换。
问题解决
进行强制类型转换,将int 类型转换为byte,byte c = (byte)(a + b);//③
byte d = 3 + 4; 并不会出现错误,因为3和4,是两个常量,Java中存在【常量优化机制】
常量优化机制:在编译时(javac),就会将3和4计算出一个7的结果,并且会自动判断该结果是否在byte取值范围内
在:编译通过
不在:编译失败