Java的基础语法学习笔记
零、Java的关键字
用于类和接口的声明:class, extends, implements, interface
包引入和包声明:import, package
数据类型:boolean, byte, char, short, int, long, float, double
某些数据类型的可选值:false, true, null
流程控制:default, return, if, else, for, switch, case, do, while, break, continue,
异常处理:try, catch, finally, throw, throws
修饰符:abstract, final, native, private, protected, public, static, static, synchronized, transient, volatile
操作符:instanceof
创建对象:new
引用:this, super
方法返回类型: void
Java保留字:const和goto
一、java中的注释: 有三种形式
1. // 单行注释
2. /* 一或多行注释 */
3. /** 文档注释 */ 它必须放在方法体的外面 ,可用命令javadoc来生成HTML文档.
二、Java代码中的“;”、“{}”、“ ”
Java语句以分号分隔
Java代码块包含在大括号内
忽略空格。
三、标识符: 用以命名类、方法和变量、以及包
标识符命名规则:
1. 以字符、“_”或“$”开头。只能是字母,数字,“_”和“$”
2. 大小写敏感。
3. 无长度限制。
4. 类/接口名首字母大写;
5. 方法名、变量名第一个字母小写,其余首字母大写;
6. 常量名称全部大写;
7. 包名全部小写。
四、基本数据类型:
名称 |
说明符 |
存储要求 |
范围或精度 |
说明 |
字节型 |
byte |
1字节 |
-128到127 |
|
短整型 |
short |
2字节 |
-2^15到2^15-1 |
|
整型 |
int |
4字节 |
-2^31到2^31-1 |
|
长整型 |
long |
8字节 |
-2^63到2^63-1 |
长整型数字有一个后缀L |
单精度浮点型 |
float |
4字节 |
(有效小数位为6~7位) |
表示float类型数据时需要在后面添加后缀F,没有后缀F的浮点数据被认为是double类型的 |
双精度浮点型 |
double |
8字节 |
(有效小数位为15位) |
|
字符型 |
char |
2字节 |
用来存储Unicode编码表中的字符。 char是无符号的16位整数,字面值必须用单引号括起来(注:用单引号括起的单个中文字符也正确) |
|
布尔型 |
boolean |
不确定 |
只有true和false两个值,它和整数不能相互转换 |
注意:在Java中,所有数字类型在内存中所占内存空间的大小与平台无关,并且Java中没有unsigned类型。
五、变量的作用域和生存期:
1. 变量是存储数据的基本单元。
2. 变量可以在代码块中任何位置声明
3. 块以左大括号开始,以右大括号结束
4. 变量的作用域就是它所在的块
5. 成员变量:在类中声明,它的作用域是整个类。(可以在类中方法以外的任何地方定义)
6. 局部变量:在一个方法的内部或方法的一个代码块的内部声明。如果在一个方法内部声明,它的作用域是整个方法;如果在一个方法的某个代码块的内部声明,它的作用域是这个代码块。(局部变量必须先定义后使用)
7. 方法参数:普通方法或构造方法的参数,它的作用域是整个方法不。
8. 异常处理参数:它的作用域是紧跟着catch(Exception e)语句后的代码块。
六、数据转换类型:
1. 自动类型转换: 当将一种类型的变量赋给另一种类型的变量时,如果两种类型兼容,且目标类型大于源类型时,就会发生自动类型转换。下图为数字类型间的合法转换:(实箭头为无信息损失的转换,虚箭头表示可能丢失精度):
2. 强制类型转换: 强制转换用于显式类型 转换。如果被转换的值 的数据类型大于其目标 类型,就会丢失部分信息
类型强制转换使程序将变量视为某种类型,尽管此变量中包含的是另一类型的数据。
语法:(目标类型) 待转换的变量名;
示例:
float c = 34.56789f;
int b = (int) c; // 将 c 转换为整型
七、运算符:
1.
运算符 |
描述 |
示例 |
算术运算符 |
算术运算符使用数字操作数。这些运算符主要用于数学计算 |
+, -, *, /, % |
关系运算符 |
关系运算符用于测试两个操作数之间的关系。使用关系运算符的表达式的结果为 boolean 型 |
==, >, >=, <, <= , != |
逻辑运算符 |
逻辑运算符用于 boolean 操作数 |
&, |, ^, &&, ||, ! |
条件运算符 |
条件运算符很独特,因为它是用三个操作数组成表达式的三元运算符。它可以替代某种类型的 if-else 语句 |
? : |
赋值运算符 |
赋值运算符为一个等号 =,它将值赋给变量 |
=, *=, /=, +=, -= |
2. 优先级:
顺序 |
运算符 |
1. |
括号,如 ( ) 和 [ ] |
2. |
一元运算符,如 -、++、- -和 ! |
3. |
算术运算符,如 *、/、%、+ 和- |
4. |
关系运算符,如 >、>=、<、<=、== 和 != |
5. |
逻辑运算符,如 &、^、|、&&、|| |
6. |
条件运算符和赋值运算符,如 ? :、=、*=、/=、+= 和 -= |
一般情况,不用刻意去记,当不能确定操作符的执行顺序时,可能使用圆括号来指定顺序。
八、控制流语句:
1. 判断语句:
(1). if-else 语句:
一般语法:
if (<条件>) { <语句块1> } else { <语句块2> }
如果条件为真,执行语句块1里的语句;
如果条件为假,则执行 else 后面的语句(语句块2里的语句 )。
(2). switch-case 语句:
一般语法:
switch (表达式) { case 1: 操作 1 的语句; break; case 2: 操作 2 的语句; break; …. case n : 操作 n 的语句; break; default: 默认语句; }
注意:switch括号中的表达式的值类型必须是与int类型兼容的基本类型(包括byte、short、char、int),每个case子句的末尾要跟个break;
2. 循环语句:
(1). while 循环:只要指定的条件为true时,就执行循环体。如果一开始时条件就为false,则while循环永远不被执行。 语法如下:
while (条件){ // 循环体语句 }
(2). do-while 循环:先执行循环体,然后才测试条件。 语法如下:
do{ // 循环体语句 } while (条件);
(3). for 循环:主要用于按预定的次数执行语句或语句块: 语法如下:
for(初始化;测试; 更新计数器){ // 操作语句; }
3. 跳转语句:
(1). break 中断循环
(2). countinue 只中断本次循环
(3). return 退出本方法,跳到上层调用方法。如果本方法的返回类型不是void,就需要提供相应的返回值。
九、数组: 用存储一组相同类型数据的数据结构。
1. 可以使用以下三种方式声明数组:
(1). 数据类型[ ] 标识符; //声明一个数组
(2). 数据类型[ ] 标识符 = new 数据类型[大小]; //创建一个数组
(3). 数据类型[ ] 标识符 = {值 1,值 2,…值 N}; //声明,创建并初始化
2. 可以通过整型下标访问数组的第一个值。 如:a是一整数数组,则a[0]就是数组中第一个元素。
3. 数组一旦被创建,就不能再改变它的大小了。
4. 可以用 数组名.length 得到数组的元素数目。
5.多维数组:
二维数组:其实就是数组的数组。
如: int [][] arr = new int[2][3]; 这个程序片断中,配置了2行3列的二维数组对象。它的配置关系可用如图表示:
所以,根据以上原理,你可以创建不规则数组。
十、命令行参数:
java程序中的入口方法:main方法带有String[] args参数,这个参数表示main方法接收了一个字符中数组,也就是命令行参数。
十一、转义符:
转义序列 |
名称 |
描述 |
/a |
警告 |
产生一则警告。 |
/n |
换行 |
将光标移到下一行的第一格。 |
/r |
回车 |
将光标移到当前行的第一格。 |
/t |
水平制表 |
将光标移到下一个水平制表位置。 |
/' |
单引号 |
产生一个单引号。 |
/" |
双引号 |
产生一个双引号。 |