一、标识符
1、标识符的概念和命名
(1)、概念
-
Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符
-
凡是自己可以起名字的地方都叫标识符。
(2)、标识符规则
-
由26个英文字母大小写,0-9 ,_或 $ 组成
-
数字不可以开头。
-
不可以使用关键字和保留字,但能包含关键字和保留字。
-
Java中严格区分大小写,长度无限制。
-
标识符不能包含空格。
2、关键字和保留字
(1)、关键字的定义和特点
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写
(2)、保留字的定义和特点
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字
byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const
二、变量
1、 概念
内存中的一块数据存储空间的表示
2、 三要素
3、声明和使用步骤
(1)、声明变量
-
语法:<数据类型> <变量名称>
-
例如:int var;
(2)、变量的赋值
-
语法:<变量名称> = <值>
-
例如:var = 10;
(3)、变量的使用
-
语法: System.out.println(变量名);
-
例如:System.out.println(var);
4、使用特点
①同一个作用域,变量不可以重名
作用域:变量的作用范围(根据变量的定义位置来确定变量的作用域)
②变量必须先声明、赋值最后再使用
③变量的值可以更新,但必须在同一个类型范围内
④变量具备内存的"易失性"的特点
三、进制【选学】
(1)、 进制的分类
-
**二进制:**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
(2)、 进制的转换
进制的基本转换
-
十进制 二进制互转
-
二进制转成十进制 乘以2的幂数
-
十进制转成二进制 除以2取余数
-
-
二进制 八进制互转
-
二进制 十六进制互转
-
十进制 八进制互转
-
十进制 十六进制互转
四、数据类型
1、 分类
对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
2、 整型
-
Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。
-
java的整型常量默认为 int 型,声明long型常量须后加’l’或’L’
-
java程序中变量常声明为int型,除非不足以表示大数,才使用long
3、 浮点型
-
与整数类型类似,Java 浮点类型也有固定的表数范围和字段长度,不受具体OS的影响。
-
Java 的浮点型常量默认为double型,声明float型常量,须后加’f’或’F’。
-
浮点型常量有两种表示形式:
-
十进制数形式:如:5.12 512.0f .512 (必须有小数点)
-
科学计数法形式:如:5.12e2 512E2 100E-2
-
通常情况下,应该使用double型,因为它比float型更精确。
-
4、 字符型
-
char 型数据用来表示通常意义上"字符"(2字节)
-
字符型常量的三种表现形式:
-
字符常量是用单引号(’ ')括起来的单个字符,涵盖世界上所有书面语的字符。例如:char c1 = ‘a’; char c2 = ‘中’; char c3 = ‘9’;
-
Java中还允许使用转义字符’\'来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’; // '\n’表示换行符
-
直接使用 Unicode 值来表示字符型常量:’\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a 表示 \n。
-
-
char类型是可以进行运算的。因为它都对应有Unicode码。
5、 布尔型
-
boolean 类型适于逻辑运算,一般用于程序流程控制:
-
if条件控制语句;
-
while循环控制语句;
-
do-while循环控制语句;
-
for循环控制语句;
-
-
boolean类型数据只允许取值true和false,无null。
-
不可以0或非 0 的整数替代false和true,这点和C语言不同。
-
Java虚拟机中没有任何供boolean值专用的字节码指令,java语言表达所操作的boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示《java虚拟机规范 8版》
-
6、数据类型转换
1、基本数据类型之间的转换
注意:boolean除外
大小关系:
①自动类型转换
规则:小------>大
语法:double d = 1;
②强转类型转换
规则:大------>小
语法:int i = (int)1.5;
特点:
①自动提升的原则。表达式的最终结果的类型为 操作数中最大的类型!
②强转符号只针对于最近的操作数有效,一般使用小括号提升优先级
2、String类型和基本类型之间的转换
①基本类型------>String类型
规则:直接拼接空字符串即可
语法:
char c = ‘中’;
String s = c+"";
②String类型------>基本类型
规则:除char之外,其他的都是通过 包装类型.parseXX的方法
语法:
除char之外:
String s = “12345”;
int i = Integer.parseInt(s);
char:
String s = “asfgh”;
char c = s.charAt(1);//提取单个字符
char[] ch = s.toCharArray();//将整个字符串转换成字符数组
五、运算符
1、 常见运算符
算术运算符
关系运算符
逻辑运算符
赋值运算符
三目运算符
2、运算符详细介绍
1、算术运算符
基本算术运算符
+ - * / %
注意:/左右两边都是整型,结果取整
自增、自减运算符
++ –
特点:
①属于一元运算符
i++、–i
②可以作为独立的语句或作为表达式使用
作为独立的语句使用:
i++;等价于++i;效果上等价于 i=i+1;
作为表达式使用:
int j = i++; 先赋值后自增// int temp = i++; i++; j = temp;
int j = ++i; 先自增后赋值 ///
③自增、自减运算符,底层做了优化,所以效率较高,其次 不用手动的类型转换
int i = 10;
i*=1.523;//√
System.out.println(i);//15
2、关系运算符
> < >= <= == !=
3、逻辑运算符
名称 语法 特点
&& / & 与 条件1&& 条件2 两个条件都成立,结果为true
|| / | 或 条件1|| 条件2 只要有一个条件成立,结果为true
! 非 !条件 如果条件成立,结果为false,否则为true
&&和&的区别:
&& 如果第一个条件不成立,则不再执行第二个条件,效率较高
& 不管第一个条件是否成立,都要执行第二个条件,效率较低
||和|的区别:
|| 如果第一个条件成立,则不再执行第二个条件,效率较高
| 不管第一个条件是否成立,都要执行第二个条件,效率较低
4、赋值运算符
1、基本赋值运算符
=
2、复合赋值运算符
+= 、-= 、*=等
特点:
1、运算顺序从右往左
2、赋值运算符的左边只能是变量,右边可以是变量、常量、表达式、方法调用
3、复合赋值运算符具备以下特点
①i+=3;效果上等价于 i=i+3;但效率比i=i+3;较高
②编译器内部做了优化,不用我们手动的类型转换了
③复合赋值的变量必须提前进行初始化
5、三目运算符
说明
条件?操作数1 :操作数2
特点:
1、如果条件成立,结果为操作数1,否则为操作数2!
2、两个操作数的类型要求一致或兼容
6、运算符优先级
. *()* {} ; , | |
---|---|
R—>L | ++ – ~ !(data type) |
L—>R | * / % |
L—>R | + - |
L—>R | << >> >>> |
L—>R | < > <= >= instanceof |
L—>R | == != |
L—>R | & |
L—>R | ^ |
L—>R | | |
L—>R | && |
L—>R | || |
L—>R | ? : |
R—>L | = *= /= %= |
+= -= <<= >>= | |
>>>= &= ^= |= |