一、标识符
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= *= /= %=
+= -= <<= >>=
>>>= &= ^= |=
标签:char,Java,变量,int,运算符,++