2、Java语言基础组成
2.1、关键字
关键字的定义和特点
定义:被java语言赋予了特殊含义的单词。
特点:关键字中所有字幕都为小写。
2.2、标识符(类名)
在程序中定义的一些名称
由26个英文字母大小写,数字:0-9,符号:_$组成
定义合法标识符规则:
1、 数字不可以开头
2、 不可以使用关键字
Java中严格区分大小写
注意:在起名字的时候,为了提高阅读性,要尽量有意义。
Java中的名称规范:
l 包名:多单词组成时所有字母都小写。
xxx.yyy.zzz
l 类名接口名:多单词组成时,所有单词的首字母大写。
XxxYyyZzz
l 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
xxxYyyZzz
l 常量名:所有字母都大写。多单词时每个单词用下划线连接。
XXX_YYY_ZZZ
2.3、注释
单行注释
n 要注释的文字前面加入//,如 //这是一个HelloWorld简单程序。
多行注释(多行注释中不能有多行注释)
n 在注释的文字前后添加/* … */,如/*这是一个HelloWorld简单程序。*/
文档注释
n 在注释的文字前后添加/**…*/,如/**这是一个HelloWorld简单程序*/
2.4 常量和变量
2.4.1 常量
* 常量白哦是不能改变的数值.
* java中常量的分类:
1)整数常量,所有整数.
2)小数常量,所有小数.
3)布尔型常量,只有两个数值:true和false.
4)字符常量,将一个数字.字母或者符号用单引号标识(‘2’ ‘中’)
5)字符串常量,将一个或者多个字符用双引号标识
6)null常量,只有一个数值就是:null
* 对于整数:有四种表现子形式
1)二进制,0,1 满2进1
2)八进制:0-7,满8进1,用0开头表示
3)十进制:0-9,满十进一
4)十六进制:0-9,a-f,满16进1,用0x开头.
2.4.2 进制转换
* 进制的基本转换
1)十进制二进制互转
十进制转二进制,除以2去余数
二进制转十进制.乘以2的幂数
2)十进制八进制互转
十进制转八进制,除以8去余数
八进制转十进制,乘以8的幂数
3)十进制16进制互转
十进制转16进制,除以16去余数
16进制转十进制,乘以16的幂数
4)负数的二进制表现形式:
对应的整数二进制取反加1
2.4.3 变量
* 变量的概念
内存中的一个存储区域
定义该区名称,类型,变量值
该区域的数据可以在同类型范围内不断变化
* 使用变量注意事项:
1)变量的作用范围在{}之间有效
2)初始化值
* 定义变量的格式
数据类型 变量名 = 初始化值;
注意:格式是固定的,记住格式,以不变应万变.
* 理解:变量如同数学中的x未知数.
2.4.4 变量分类
* 按照声明的位置划分:
1)局部变量:方法或语句块内部定义的变量
2)成员变量:方法外部类的内部定义的变量
注意:类外面雨类对应的大括号外面不能定义变量
* 按照所属的数据类型划分:
1)基本数据类型变量
2)引用数据类型变量
* 注意:成员变量可以不赋值,因为java虚拟机会给成员变量赋默认值
局部变量必须赋值,否则会出现编译错误.
2.4.5 数据类型
* Java语言是强类型语言,对于每一种数据都定义了明确的数据类型,
在内存中分配了不同大小的内存空间
* 基本数据类型取值范围占用内存大小及默认值
数据类型 关键字 在内存中占多少字节 取值范围 默认值
布尔型 boolean 1个字节(8位) ture,false false
字节型(整数) byte 1个字节(8位) -128~127 0
短整型(整数) short 2个字节(16位) -2(15)~2(15)-1 0
整型(整数) int 4个字节(32位) -2(31)~2(31)-1 0
长整型(整数) long 8个字节(64位) -2(63)~2(63)-1 0
字符型 char 2个字节(16位) 0~2(16)-1 ‘\u0000’
单精度浮点型(浮点数) float 4个字节(32位) 1.4013E-45~3.4028E+38 0.0f
双精度浮点型(浮点数) double 8个字节(64位) 4.9E-324~1.7977E+308 0.0
默认情况:整数是int型,浮点数都是double型.
2.4.6 数据转换
* 自动类型转换(也叫隐式类型转换)
* 强制类型转换(也叫显式类型转换)
* 类型转换的原理
所有的byte型、short型和char型的值将被提升为int型。
如果一个操作数是long型,计算结果就是long型。
如果一个操作数是float型,计算结果就是float型。
如果一个操作数是double型,计算结果就是double型。
* 数据参与运算
1)整型,字符型,浮点型的数据混合运算中相互转换时都遵循以下原则:
容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型.
数据类型按容量从小到大的排序为:
Byte<short<char<int<long<float<double
Byte,short,char之间不会互相转换,计算时首先转换为int类型
2)强制转换符
格式(数据类型) (要被转换的数据) byte b =(int)(130);
3) 思考:
byte b1=3,b2=4,b;
b=b1+b2;//编译失败,因为变量是不确定的值,所以无法计算后赋值
b=3+4;//编译通过,常数检查没有查过数据类型的最大值就可以赋值
2.5.1 算数运算符
2.5.2赋值运算符
符号:
= , +=, -=, *=, /=, %=
示例:
int a,b,c; a=b=c =3;
int a = 3; a+=5;等同运算a=a+5;
思考:
short s = 3;
s=s+2;// 编译失败,因为s会被提升为int类型
运算后的结果还是int类型。无法赋值给short类型。
s+=2;// 编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。
2.5.3 比较运算符
* 符号
== 相等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
Instanceof 检查是否是类的对象
注意:
1)比较运算符的结果都是boolean型,也就是要么是true,要么是false
2)比较运算符“==”不能误写成“=”
2.5.4 逻辑运算符
符号
& 与(and) 有一个是false最后结果为false
| 或(or) 有一个是true最后结果为true
^ 异或(XR) 两个相同的值最后结果为false
! 非 值是结果相反的
&& 双或 第一个值为false就不运算第二个值
|| 双与 第一个值为true就不运算第二个值
2.5.5 位运算符(位运算是直接对二进制进行运算)
符号
<< 左移 移几位就乘以2的几次幂
>> 右移 移几位就除以2的几次幂
>>> 无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补
& 与运算 二进制位进行&运算,只有1&1时结果是1,否则是0
| 或运算 二进制位进行 | 运算,只有0 | 0时结果是0,否则是1
^ 异或运算 相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0
~ 反码
二进制1就是true,0就是false
对两个整数变量的值如何进行互换(不需要第三方变量)
int a = 5;
int b = 7;
a = a ^ b;
b = a ^ b;
a = b ^ a;
2.5.6 三元运算符
格式
(条件表达式)?表达式1:表达式2
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
int x=3,y=4,z;
z=(x<y)?x:y //z的值是3
2.6.1 判断结构
if语句三种格式
1)if (条件表达式){
执行语句;
}
2)if(条件表达式){
执行语句;
}else{
执行语句;
}
3)if(条件表达式){
执行语句;
}else if(条件表达式){
执行语句;
}
if语句和三元运算符的区别:
1)三元运算符可以称之为if语句的简写形式,只要简写就会有一定的弊端.
2)三元运算符,是一种运算符号,也就是说每次执行后,必须有结果.
3)if..else是语句,只要是控制流程,执行后不一定有结果
4)if..else里面可以有语句,并输出结果,三元运算符不可以.
if语句的使用情况
1)当对值进行判断的时候
2)当对数据区间进行判断的时候
3)当结果是布尔类型的时候 |