一、标识符、关键字和保留字
1.标识符的使用:凡是可以自己起名字的地方都叫标识符,比如:类名、变量名、方法名、接口名、包名…
2.标识符命名要求:—>必须严格遵守,否则,编译不通过!
由26个英文字母大小写,0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。
3.标识符的命名规范:—>可以不遵守,编译运行都通过,但是,建议遵守!
在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
关键字:被java语言赋予了特殊含义,用作专门用途的字符串(单词)
特点:关键字中所有字母都为小写
保留字:现有java版本尚未使用,但以后可能会作为关键字使用。自己命名标识符时要避免使用这些保留字(例如:goto、const)
二、变量和数据类型
变量的使用:
1.变量包含数据类型、变量名和变量值
2.使用中的注意点:必须先声明,后使用;
3.变量的作用域只在其定义的一对{}中有效;
说明: 这里需要注意变量是局部变量还是成员变量。
4.同一个作用域内,不能定义重复变量;
2.1 分类方式一:按照变量的数据类型区别
基本数据类型(8种)
整型:byte\short\int\long
浮点型:foat\double
字符型:char
布尔型:boolean
引用数据类型:类(包含String)、接口、数组
2.2 分类方式二:按照声明的位置的不同
在方法体外,类体内声明的变量称为成员变量(属性)
在方法体内部声明的变量称为局部变量
public static void main(String[] args) {
//整型:byte(1个字节)\short(2个字节)\int(4个字节)\long(8个字节)
//byte的范围:-128 ~ 127,一般情况,习惯把整型定义为int
//定义long型变量时,需要以l或L结尾;
//整型常量,默认为int型;int n2 = 12 + 13;
long n1 = 123L;//输出只有123,没有L;
System.out.println(n1);
//浮点型:float(4个字节)、double(8个字节)
//1.float的表数范围比long还大,
//2.float:单精度,double:双精度
//3.通常声明浮点型变量时,习惯使用double;
//4.定义float变量时,需要以f或F结尾;
double d1 = 12.3;
float f1 = 32.1f; //输出32.1
System.out.println(f1);
//字符型:char
//1.使用一对''表示
//2.一对单引号内,只能包含一个字符;//char a1 = 'ab';编译错误
//声明方式2:\n \t都可放入char中;
//声明方式3:使用unicode值来表示字符
char a1 = '\n';
char c5 = '\u0b22';
System.out.println(a1 + c5);
}
2.3 基本数据类型变量间的运算
1.自动类型提升:当容量小的数据类型变量与容量大的数据类型变量做运算时,结果为容量大的数据类型。
说明:此时的运算只包含基本数据类型的7种,唯独不包括boolean类型;
byte、char、short–>int–>long–>float–>double
特别的: byte、char、short两两之间或者自身做运算,结果为int型。
浮点型常量,默认double型,整型常量默认int型。
2.强制类型转换: 是自动类型提升运算的逆运算,
需要使用强转符()
注意: 此时的容量大小,不是指占用内存的空间大小,而是指表数范围的大小。
long(8字节) 与float(4字节)相比—>float算容量大
2.4 计算机常用进制的使用说明
二进制:0,1 ,满2进1.以0b或0B开头。
十进制:0-9 ,满10进1.
八进制:0-7 ,满8进1. 以数字0开头表示。
十六进制:0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。
如:0x21AF +1= 0X21B0
计算机以补码的形式保存所有的整数。
正数的原码、反码、补码都相同
原码:直接将一个数值换成二进制数。最高位是符号位
负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
负数的补码:其反码加1。
三、运算符和流程控制
3.1 算术运算符的使用
1.算术运算符的使用
前++:先+1,后运算
后++:先运算,后+1
特别的,++或–不会改变变量本身的数据类型;
short s1 = 10;
//s1 = s1 + 1; 编译不通过
s1 = (short)(s1 + 1);编译通过;
s1++;推荐写法;
2.赋值运算符: = += -= /= %=
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
int m = 10;
m += 3;
System.out.print(m);//13
总结:
情况一 :定义一个整型变量,自增1
num = num + 1; num += 1; num++;(推荐)
情况二: 定义一个整型变量,自增3
num = num + 3; num += 3;
3.2 三元运算符使用: (条件表达式)?表达式1:表达式2;
说明:条件表达式的结果为boolean型, 如果true,执行表达式1,否则表达式2;
表达式1和表达式2类型可以统一为一致的。
三元运算符可以嵌套使用。
结论:凡是使用三元运算符的都可以改写为if-else实现,
既可以使用三元运算符又可以使用if-else,我们选择三元运算符,因为执行效率高。
public class SanYuanTest {
public static void main(String[] args) {
//获取两个数的较大值;
int m = 10,n = 10;
//int max = (m > n)?m:(n + 0.0);//编译不通过
double max = (m > n)?m:(n +