一、变量
Java变量类型
Java整数、浮点类型(数值类型)有固定的范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。
基本数据类型(值拷贝)和引用数据类型(地址拷贝)的赋值机制是不同的。
赋值机制
1、整型的使用细节
Java的整型常量默认为int型,声明long型常量须后加“l”或“L”。
2、浮点类型的使用细节
Java的浮点型常量默认为型,声明float型常量须后加“f”或“F”。
当然常量后加"d"或者"D"也可,表明它是一个类型的常量。
浮点数陷阱:2.7和8.1/3的比较
正确处理方式
3、字符char类型使用细节
(1)必须用单引号,不能用双引号
(2)char的本质是一个整数(也就是说可以做运算),输出时,是码对应的字符。
在线转化网址:编码转换 - 站长工具 ()
存储和读取
4、布尔类型使用细节
只允许true和false,不允许用0和非0值赋值。
5、自动类型转化
(1)(byte, short) 和 char 之间不会相互自动转换。但是他们三者可以计算(自动转化为int)。
(byte, short, char)计算会自动提升为int
(2) 不参与转换。
自动转换图
6、类型和基本数据类型转换
(1)基本类型→
基本类型 + "" 即可
(2)→基本类型
通过基本类型的包装类调用方法即可。
转化成基本类型
// TODO...
和:7、常用类 - 简书 ()
二、运算符
1、%运算(本质公式:a % b = a - (a / b) * b)
%举例
另外,当a是小数时,公式为:a % b = a - ((int)a / b) * b
a为小数举例
2、++自增
++面试陷阱
3、&&短路与、&逻辑与(||短路或、|逻辑或)开发中用短路与(或),提升效率
4、复合赋值运算符(如,+=),会进行类型转换。byte b = 3; b += 2;//等价于 b = (byte)(b + 2)
但如果直接写b = b + 2则是错误的,因为int类型不能赋给byte类型。
5、只有单目运算符(++、!、~等)、赋值运算符是从右向左运算的。
易错题
三、标识符
(1)规则:只能由字母、数字、下划线或者&符号组成
(2)更加专业的命名规范
① 包名:所有字母都小写
② 类名、接口名:所有单词的首字母大写。【大驼峰】
③ 变量名、方法名:第一个单词首字母小写,第二个单词开始每个单词首字母大写。【小驼峰】
④ 常量名:所有字母大写,多单词之间用下划线命名。
四、保留字
现有Java版本尚未使用,但以后版本可能会作为关键字使用。
五、输入-输出
(1)输入
import java.utils.Scanner;
Scanner input = new Scanner(System.in);
// String
String name = input.next();
// Integer
Integer age = input.nextInt();
// double
double sal = input.nextDouble();
(2)输出(略)
六、控制结构
1、分支控制: (注意!穿透现象:case后没有break,会直接执行后面的语句块,不会进行判断。)
流程图
(1)表达式的类型应该与case后面的常量类型保持一致;或者是两者可以自动转化成可比较的类型。
(2)表达式中的类型必须是:(byte,short,int,char,enum【枚举】,)中的一个(不行哦!)
(3)case后不能是变量,只能是常量(常量表达式)。可选。
2、跳转控制语句:break
可以通过标签指明要终止的是哪一层语句块java中二维数组的长度,但是开发中,尽量不要使用标签。默认退出最近的循环体。
3、跳转控制语句:
可以通过标签指明要终止的是哪一层语句块,但是开发中,尽量不要使用标签。默认结束本次循环,进入下一次循环。
七、数组(引用型数据)
1、查看数组长度:数组的属性
int[] nums; int len = nums.;
2、动态初始化二维数组
<pre> //第一种方式:
int a[][]={{1,2,3},{4,5,6}};
//第二种方式;
int[][] ints = new int[4][2];
ints[i][j] =__; //分别赋值
//第三种方式:第二维的长度可以动态申请
int[][] arr3 = new int[5][];//五行的长度
<p>
for(int i=0; i