题记:
通过第一章的学习,已经对JAVA有了一个大概的认识,下面,对JAVA的基础语法进行初步的理解和掌握。
关键字
关键字是再JAVA中被赋予了特殊含义的单词,也被称为保留字,全部为小写字母。这些关键字不可以被当做其他用途,因为JAVA对他们的识别是唯一的。
这些关键字有:
用于定义数据类型的关键字 | ||||||||||||
class | interface | byte | short | int | ||||||||
long | float | double | char | boolean | ||||||||
void | ||||||||||||
用于定义数据类型值的关键字 | ||||||||||||
true | false | null | ||||||||||
用于定义流程控制的关键字 | ||||||||||||
if | else | switch | case | default | ||||||||
while | do | for | break | continue | ||||||||
return | ||||||||||||
用于定义访问权限修饰符的关键字 | ||||||||||||
private | protected | public | ||||||||||
用于定义类,函数,变量修饰符的关键字 | ||||||||||||
abstract | final | static | synchronized | |||||||||
用于定义类与类之间关系的关键字 | ||||||||||||
extends | implements | |||||||||||
用于定义建立实例及引用实例,判断实例的关键字 | ||||||||||||
new | this | super | instanceof | |||||||||
用于异常处理的关键字 | ||||||||||||
try | catch | finally | throw | throws | ||||||||
用于包的关键字 | ||||||||||||
package | import | |||||||||||
其他修饰符关键字 | ||||||||||||
native | strictfp | transient | volatile | assert |
以上都是JAVA中的关键字。
标示符
标示符是JAVA程序中编写时自定义的名称,标示符不可以使用关键字的单词,否则会报错。标示符的书写有严格的格式要求,标示符必须由英文字母,0-9数字,或_$这2个符号组成,并且,在开头位置必须由字母或_$组成,不可以由数字开头,严格区分大小写。
另外,在编写标示符的时候,为了提高阅读性,最好写一些有意义的单词,方便日后查看。
虽然标示符没有固定的书写模式,但是广大编程爱好者都会自觉遵守一条不成文的规定,那就是:
包:标示符全部为小写;
接口或者类名:所有单词的首字母大写;
变量或函数名:多单词时,从第二个单词开始首字母大写;
常量:多单词时,用“_”连接,并且从第二个单词开始首字母大写。
为了自己和他人在阅读代码时提高阅读性,方便理解,我们都需要自觉遵守这个不成文的规定。
注释
在JAVA中,通常编写的代码有些很难理解,或者是重点的部分,希望可以有一个文字类型的提示,标记一下,这时,就用到了注释功能,JAVA的注释功能分为三种:
单行注释:
“//”:单行注释后的一整行指令都不会被JVM识别执行。
多行注释:
“/*...*/”:多行注释内的指令都不会被JVM执行,不论多少行,只认开头和结尾的标记符号。
文档注释:
“/**...*/”:文档注释内的指令都不会被JVM执行,但是会被JAVADOC所解析,形成帮助文档,这是JAVA特有的注释方式。
注释是一个程序员应有的良好习惯,应该先写注释,在写代码,把自己的思路用文字的方式体现出来,再用代码区逐一实现,而代码,只是思想的一种体现方式而已。
常量
常量代表不可被改变的量。在JAVA中有很多种,包括整数常量,小数常量,布尔型常量,字符常量,字符串常量,null常量。
1,整数常量:所有整数
2,小数常量:所有小数
3,布尔型常量:较为特有,只有两个数值。true false
4,字符常量:将一个数字字母或者符号用单引号( ' ' )标识
5,字符串常量:将一个或者多个字符用双引号标识。
6,null常量:只有一个数值就是:null.
变量
变量是在内存中的一个区域,这个区域有自己的名称(引用名)和类型(数据类型),该区域的数据可以在自己的同类型中不断变化。
在编写程序的过程中,经常需要一个不断变化的数据,来满足我们的某些特殊要求,比如,循环中,需要有一个计数器,一个数据不断累加结果,并赋值给同一个引用,这就要用到变量或者对于某些未知的数,想要计算2个数字相加的结果时,也可以使用变量。在使用变量的时候,要注意变量只在一个{}内部有效,在使用变量之前,需要先对变量进行初始化,并且初始化的值不可以为null,虽然加强转可以通过编译,但是运行时还是会出异常。
变量的初始化格式为:
数据类型 变量名 = 初始化值(不可为null);
数据类型
JAVA是一种强类型语言,对每一种的数据都定义了十分精确的数据类型,并且分配了明确的大小空间。
数据类型
|---引用数据类型
|----类(class)
|----接口(interface)
|----数组( [ ] )
|----基本数据类型
|----字符型(char)
|----布尔型(boolean)
|----整数类型(byte, short, int, long)
|----浮点类型(float, double)
类型转换
JAVA中在进行不同的数据类型算法时,需要类型转化,才可以进行运算或者赋值等操作。
类型转换分2种:
1,自动类型转换(也叫隐式转换)。
2,强制类型转换(也叫显示转换)。
数据类型从低到高排序的顺序是:byte<short<int<long<float<double
当低类型的数据与高类型的数据计算时,会自动提升至高类型,再进行运算,这就是自动类型转换。
而高类型如果要低类型的数据计算,并转化成低类型,就会损失精度,也会编译失败,这时候,就需要用到强制类型转换。
强转的格式为:
低类型 = (需要转化的低类型)高类型数据;
运算符
JAVA中的运算符分为6中:
算术运算符
算术运算符的注意问题如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
“+”除字符串相加功能外,还能把非字符串转换成字符串
赋值运算符
符号:= , +=, -=, *=, /=, %=
比较运算符
逻辑运算符
位运算符
位运算是直接对二进制进行运算。
下面还有:
三元运算符
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
程序流程控制
判断结构:
判断结构可以用if来编写,格式为:
1,
if()
{}
2,
If()
{}
Else if()
{}
3,
If()
{}
Else
{}
if语句特点:
a,每一种格式都是单条语句。
b,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。
c,条件表达式无论写成什么样子,只看最终的结构是否是true 或者false;
选择结构:
选择结构可以用swith语句。
格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
switch语句特点:
a,switch语句选择的类型只有四种:byte,short,int ,char。
b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
c,结束switch语句的两种情况:遇到break,执行到switch语句结束。
d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
循环结构:
while语句格式:
while(条件表达式)
{
执行语句;
}
do while语句格式:
do
{
执行语句;
}while(条件表达式);
do while特点是条件无论是否满足,循环体至少被执行一次。
格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
注:
a,for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件, 为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件, 重复找个过程,直到条件不满足为止。
b,while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
c,最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
break(跳出), continue(继续)
break语句:应用范围:选择结构和循环结构。
continue语句:应用于循环结构。
注:
a,这两个语句离开应用范围,存在是没有意义的。
b,这个两个语句单独存在下面都不可以有语句,因为执行不到。
c,continue语句是结束本次循环继续下次循环。
d,标号的出现,可以让这两个语句作用于指定的范围。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流!----------------------