第二章基本语法
IDE的介绍和安装使用
IDE 软件开发环境
包括 编辑器,编译器,调试器.
- idea 捷克
- eclipse IBM 捐献给eclipse基金会
注释
单行注释
多行注释
文档注释
对类,属性,方法的功能进行说明, 并且在调用时会提示
关键字
对数据类型进行定义的关键字
关键字 | |
---|---|
class | |
interface | |
enum | |
byte | |
short | |
long | |
int | |
float | |
double | |
char | |
boolean | |
void |
定义数据类型值的关键字
关键字 | |
---|---|
true | |
false | |
null |
定义流程控制的关键字
关键字 | |
---|---|
if | |
else | |
dafault | |
switch | |
case | |
while | |
dowhile | |
for | |
break | 终止循环 |
continue | 跳过某次循环 |
return |
定义访问权限修饰符的关键字
关键字 | |
---|---|
private | |
public | |
protected |
定义类,函数,属性修饰符的关键字
关键字 | |
---|---|
static | |
final | |
abstract | |
synchronized |
定义类与类之间关系的关键字
关键字 | |
---|---|
extends | |
implements |
建立实例引用和判断实例的关键字
关键字 | |
---|---|
new | |
this | |
super | |
instanceof |
异常处理的关键字
关键字 | |
---|---|
try | |
catch | |
finally | |
throw | |
throws |
用于包的关键字
关键字 | |
---|---|
package | |
import |
其他关键字
关键字 | |
---|---|
native | |
strictfp | |
transient | |
volatile | |
assert |
保留字
goto
const
标识符
就是类,属性,方法的命名的字符序列.
规则:
- 字母 数字 下划线和$
- 不能以数字开头
- 不能使用关键字命名
- 严格区分大小写, 不能包含空格
包名:小写
类名,接口名:大驼峰
属性,方法:小驼峰
常量名:大写并且用下划线连接
变量
变量就是数据的存储空间
内存中的一块区域,可以通过变量名来访问这片区域
变量包括变量类型和变量名
声明变量的语法
[修饰符] 变量类型 变量名;
数据类型
java对每一种数据都定义了明确具体的数据类型,对不同的数据类型预先在内存中分配不同大小的空间
基本数据类型
整型
byte
short
long
int
类 型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节 | -128 ~ 127 |
short | 2字节 | -215 ~ 215-1 |
int | 4字节 | -231 ~ 231-1 |
long | 8字节 | -263 ~ 263-1 |
浮点型
类型 | 占用空间 | |
---|---|---|
float | 4 | |
double | 8 |
为什么10.5-10.4 != 0.1 ?
计算机中浮点型的存储是以取近似值进行存储
如果是32位单精度的浮点数,按照IEEE-754标准格式,那么可以按以下步骤来完成:
1.先对其进行规格化,即10.5=21/2=10101*2-1 =1.0101*23.
2.计算偏值指数,指数E=3+127=130=10000010 .
3.符号位,由于为正数,所以此位是0 .
4.综上所得,10.5的浮点数表示为0 100000010 01010000000000000000000.
逻辑型
boolean
值只有true和false
字符型
char
2个字节
ASCLL码,UNICODE:
“a” 97
‘A’ 65
中国:
GKB
GB2312
引用数据类型
类
接口
数组
数据类型的转换
byte,short,char—>int—>long—>float—>double
强制类型转换
(目的类型) 变量
影响
溢出
精度降低
运算符
算术运算符
运算符 | 含义 |
---|---|
+ | |
- | |
* | |
/ | |
% | 取余 |
++ | 递增 |
– – | 递减 |
比较运算符
运算符 | 含义 |
---|---|
< | |
> | |
<= | |
>= | |
== | |
!= |
逻辑运算符
运算符 | 含义 |
---|---|
& | |
| | |
! | |
&& | |
|| |
赋值运算符
运算符 | 含义 |
---|---|
= | |
+=(隐式转换) | |
-= | |
*= | |
/= |
条件运算符
运算符 | 含义 |
---|---|
? | |
: |
位运算
运算符 | 含义 |
---|---|
<< | 左移 |
>> | 右移 右1补1 右0补0 |
>>> | 右移 都补0 |
& | 与运算 |
| | 或运算 |
^ | 异或 |
~ | 正数取反,各二进制码按补码各位取反 负数取反,各二进制码按补码各位取反 |
控制台输入
Scanner
//创建对象
Scanner scanner = new Scanner(System.in);
scanner.next();//返回一个字符串
scanner.nextInt();//把字符串转换成 int
scanner.nextDouble();
scanner.hasNext(); //是否还有下一个输入的字符串
//...............................
BufferedReader
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
bf.readLine()//读一行
bf.read() //转换成int
流程控制
条件语句
if - elseif - else
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int month = Integer.parseInt(bf.readLine());
if (month <= 8) {
if (month > 5) {
System.out.println("夏季");
}else{
if (month >2){
System.out.println("春季");
}else {
System.out.println("冬季");
}
}
}else {
if (month <= 11){
System.out.println("秋季");
}else {
System.out.println("冬季");
}
}
switch
//
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int day = Integer.parseInt(bf.readLine());
switch (day){
case 1:
System.out.println("周一 工作日" );
break;
case 2:
System.out.println("周二 工作日" );
break;
case 3:
System.out.println("周三 工作日" );
break;
case 4:
System.out.println("周四 工作日" );
break;
case 5:
System.out.println("周五 工作日" );
break;
case 6:
System.out.println("周六 周末" );
break;
case 7:
System.out.println("周天 周末" );
break;
default:
System.out.println("输入出错" );
}
循环语句
for
for (int i = 0; i < 10; i++) {
System.out.println("i = " + i);
}
int i = 0;
for (; i < 10; i++) {
System.out.println("i = " + i);
}
int i = 0;
for (; i < 10 ; ) {
System.out.println("i = " + i);
i++;
}
//死循环
int i = 0;
for (;;){
System.out.println(i);
i++;
}
while
int i = 0;
while(i<5){
System.out.println("i = " + i);
}
//死循环
while(true){
System.out.println("洗循环");
do…while()
//会先执行一遍,然后看结果,是否再继续循环
int i = 1;
do {
System.out.println(i);
i++;
}while(i<10);
控制关键字
break
终止循环
continue
跳过某次循环