java基本语法总结.docx
《java基本语法总结.docx》由会员分享,可在线阅读,更多相关《java基本语法总结.docx(10页珍藏版)》请在冰豆网上搜索。
java基本语法总结
一、标识符及字符集
Java语言规定标识符是以字母、下划线"_"或美元符号"$"开始,随后可跟数字、字母、下划线或美元符号的字符序列。
Java标识符大小写敏感,没有长度限制,可以为标识符取任意长度的名字,但关键字不能作为标识符。
为增强程序可读性,Java作如下的约定:
1.类、接口:
通常使用名词,且每个单词的首字母要大写
2.方法:
通常使用动词,首字母小写,其后用大写字母分隔每个单词
3.常量:
全部大写,单词之间用下划线分隔
4.变量:
通常使用名词,首字母小写,其后大写字母分隔每个单词,避免使用$符号。
Java语言使用国际字符集(Unicode)。
Unicode字符集定义了一套国际标准字符集。
通常的ASCII码是8位的,而Unicode字符集中的每个字符占16位,即2个字节,整个字符集共包括65336个字符,兼容ASCII,排在Unicode字符集最前面的256个字符就是ASCII码。
Unicode除了可以表示256个ASCII码外,还可以表示汉字、拉丁语、希腊字母、朝鲜语等。
Java标识符总结:
1.由字母、数字、_或$组成,不能以数字开头;2.严格区分大小写;3.长度不限
二、关键字
Java常用关键字列表如下:
关键字
含义
Abstract
用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。
一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现
Boolean
布尔类型,只有true或者false
Break
停止,并跳出本层循环
Byte
8bit(位),也就是8个1/0表示,即二进制
Case
用来定义一组分支选择,如果某个值和switch中给出的值一样,就会从该分支开始执行。
Catch
用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。
Char
用来定义一个字符类型
Class
类
Const
在Java中,const是作为保留字以备扩充,同样的保留字以备扩充还有goto.你可以用final关键字.final也可以用于声明方法或类,被声明为final的方法或类不能被继承。
一般C里是const对应java用final
Continue
用来打断当前循环过程,从当前循环的最后重新开始执行,如果后面跟有一个标签,则从标签对应的地方开始执行。
Default
配合switch跟case使用,但case中没有找到匹配时,则输出或者为default后面的语句。
Do
用来声明一个循环,这个循环的结束条件可以通过while关键字设置
Double
用来定义一个double类型的变量
Else
如果if语句的条件不满足就会执行该语句。
Extends
extends继承 类X通过extend类Y来添加功能,或者添加变量,或者添加方法,或者覆盖类Y的方法。
一个接口extends另外一个接口来添加方法。
False
假的
Final
一个Java语言的关键字。
你只能定义一个实体一次,以后不能改变它或继承它。
更严格的讲:
一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值。
Finally
用来执行一段代码不管在前面定义的try语句中是否有异常或运行时错误发生。
Float
用来定义一个浮点数变量
For
用来声明一个循环。
程序员可以指定要循环的语句,推出条件和初始化变量。
Goto
虽然为Java关键字,但是仅在C语言里面使用,Java不提供Goto语句
If
Java编程语言的一个关键字,用来生成一个条件测试,如果条件为真,就执行if下的语句。
Implements
Java(TM)编程语言的一个关键字,在类的声明中是可选的,用来指明当前类实现的接口。
Import
Java(TM)编程语言的一个关键字,在源文件的开始部分指明后面将要引用的一个类或整个包,这样就不必在使用的时候加上包的名字。
Instaceof
一个二操作数的Java(TM)语言关键字,用来测试第一个参数的运行时类型是否和第二个参数兼容。
Int
Java(TM)的一个关键字,用来定义一个整形变量
Interface
Java(TM)的一个关键字,用来定义一系列的方法和常量。
它可以被类实现,通过implements关键字。
Long
用来定义一个long类型的变量
Native
本地方法。
New
用来创建一个新的方法
Null
当String类型没赋值时,该变量的值为Null
Package
包的意思
Private
用在方法或变量的声中。
它表示这个方法或变量只能被这个类的其它元素所访问。
Protected
在方法和变量的声明中使用,它表示这个方法或变量只能被同一个类中的,子类中的或者同一个包中的类中的元素所访问。
Public
在方法和变量的声明中使用,它表示这个方法或变量能够被其它类中的元素访问。
Return
用来结束一个方法的执行。
它后面可以跟一个方法声明中要求的值。
Short
用来定义一个short类型的变量。
Static
用来定义一个变量为类变量。
类只维护一个类变量的拷贝,不管该类当前有多少个实例。
"static"同样能够用来定义一个方法为类方法。
类方法通过类名调用而不是特定的实例,并且只能操作类变量。
Super
父类
Switch
是一个选择语句,与case,default,break一起使用。
Synchronized
线程同步
This
用来代表它出现的类的一个实例。
this可以用来访问类变量和类方法。
Threadsafe
Throw
允许用户抛出一个exception对象或者任何实现throwable的对象
Throws
用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层。
Transient
用来表示一个域不是该对象串行化的一部分。
当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
True
真的
Try
用来定义一个可能抛出异常语句块。
如果一个异常被抛出,一个可选的catch语句块会处理try语句块中抛出的异常。
同时,一个finally语句块会被执行,无论一个异常是否被抛出。
Void
用在Java语言的方法声明中说明这个方法没有任何返回值。
"void"也可以用来表示一句没有任何功能的语句。
volatile
用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。
while
用来定义一段反复执行的循环语句。
循环的退出条件是while语句的一部分。
分类如下:
1.访问控制:
private私有的protected受保护的public公共的
2.类、方法和变量修饰符abstract声明抽象class类extends扩允,继承final终极,不可改变的implements实现interface接口native本地new新,创建static静态strictfp严格,精准synchronized线程,同步transient短暂volatile易失
3.程序控制语句break跳出循环continue继续return返回do运行while循环if如果else反之for循instanceof实例switch开关case返回开关里的结果default默认
4.错误处理catch处理异常finally有没有异常都执行throw抛出一个异常对象
throws声明一个异常可能被抛出try捕获异常
5.包相关import引入package包
6.基本类型boolean布尔型byte字节型char字符型double双精度float浮点int整型long长整型short短整型null空true真false假
7.变量引用super父类,超类this本类void无返回值
注意:
1、所有的java关键字都是小写的2、goto和const是保留关键字,在java中没使用3、strictfp和volatile不常用;sizeof、then不是关键字。
4、true,false,null不是严格意义上的关键字,而是literals
三、运算符
Java基本的运算符按功能分有下面几类:
1.算术运算符(+,-,*,/,%,++,--)Java对加运算符进行了扩展,使它能够进行字符串的连接,如"abc"+"de",得到串"abcde"。
与C、C++不同,对取模运算符%来说,其操作数可以为浮点数,如37.2%10=7.2。
i++与++i的区别:
i++在使用i之后,使i的值加1,因此执行完i++后,整个表达式的值为i,而i的值变为i+1;++i在使用i之前,使i的值加1,因此执行完++i后,整个表达式和i的值均为i+1。
2.关系运算符(>,<,>=,<=,==,!
=)该运算符的特点是:
运算完的结果,要么是true,要么是false。
Java中,任何数据类型的数据(包括基本类型和组合类型)都可以通过==或!
=来比较是否相等(这与C、C++不同)。
关系运算符用来比较两个值,返回布尔类型的值true或false,而不是C、C++中的1或0。
3.布尔逻辑运算符(&|^!
&&||)
逻辑运算符除了!
外都是用于连接两个boolean类型表达式。
&:
只有两边都为true结果是true。
否则就是false。
|:
只要两边都为false结果是false,否则就是true
^:
异或:
和或有点不一样。
两边结果一样,就为false。
两边结果不一样,就为true.
&和&&区别:
&:
无论左边结果是什么,右边都参与运算。
&&:
短路与,如果左边为false,那么右边不参数与运算。
|和||区别:
|:
两边都运算。
||:
短路或,如果左边为true,那么右边不参与运算。
4.位运算符(>>,<<,>>>,&,|,^,~)用于操作二进制位的运算符,如2*8=2<<3;。
>>>(无符号右移)
5.赋值运算符(=+=-=*=/=%=)
6.条件运算符(?
:
)
7.其它(包括分量运算符·,下标运算符[],实例运算符instanceof,内存分配运算符new,强制类型转换运算符(类型),方法调用运算符()等)
例子:
对两个变量的数据进行互换。
不需要第三方变量。
inta=3,b=5;-->b=3,a=5;
a=a+b;a=8;
b=a-b;b=3;
a=a-b;a=5;
a=a^b;//
b=a^b;//b=a^b^b=a
a=a^b;//a=a^b^a=b;
Java中共有54种运算符,按优先级可以分为14级:
优先级操作符含义关联性用法
----------------------------------------------------------------
1[]数组下标左array_name[expr]
.成员选择左object.member
()方法参数左method_name(expr_list)
()实例构造左class_name(expr_list)
++后缀自增左lvalue++
--后缀自减左lvalue--
2++前缀自增右++rvalue
--前缀自减右--lvalue
~按位取反右~expr
!
逻辑非右!
expr
+一元加右+expr
-一元减右-expr
3()强制转换右(type)expr
new对象实例化右newtype()
newtype(expr_list)
newtype[expr]
4*乘左expr*expr
/除左expr/expr
%求余左expr%expr
5+加左expr+expr
-减左expr-expr
+字符串连接左strExpr+strExpr
6>>有符号右移左expr>>distance
>>>无符号右移左expr>>>distance
7<小于左expr<=小于等于左expr<=expr
>大于左expr>expr
>=大于等于左expr>=expr
instanceof类型比较左refinstanceofrefType
==等于左expr==expr
!
=不等于左expr!
=expr
8&整数按位与左integralExpr&integralExpr
&布尔与左booleanExpr&booleanExpr
9^整数按位异或左integralExpr^integralExpr
^布尔异或左booleanExpr^booleanExpr
10|整数按位或左integralExpr|integralExpr
|布尔或左booleanExpr|booleanExpr
11&&逻辑与左booleanExpr&&booleanExpr
12||逻辑或左booleanExpr||booleanExpr
13?
:
条件运算右booleanExpr?
expr:
expr
14=赋值右lvalue=expr
*=乘赋值右lvalue*=expr
/=除赋值右lvalue/=expr
%=模赋值右lvalue%=expr
+=加赋值右lvalue+=expr
+=字符串连接赋值右lvalue+=expr
-=减赋值右lvalue-=expr
<<=左移赋值右lvalue<<=expr
>>=有符号右移赋值右lvalue>>=expr
>>>=无符号右移赋值右lvalue>>>=expr
&=整数按位与赋值右lvalue&=expr
&=布尔与赋值右lvalue&=expr
|=整数按位或赋值右lvalue|=expr
|=布尔或赋值右lvalue|=expr
^=整数按位异或赋值右lvalue^=expr
^=布尔异或赋值右lvalue^=expr
运算符不但有优先级,还有关联性。
上表中关联性为"左"表示该表达式从左边开始进行运算;关联性为"右"表示该表达式从右边开始进行运算。
四、流程控制语句(If、switch、dowhile、while、for、break、continue)
1.当判断数据范围,获取判断运算结果boolean类型时,需要使用if;当判断固定个数的值的时候,可以使用if,也可以使用switch。
但是建议使用switch,效率相对较高。
switch(变量){
case值:
要执行的语句;break;
…
default:
要执行的语句;
}
工作原理:
用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;
细节:
1):
break是可以省略的,如果省略了就一直执行到遇到break为止;
2):
switch后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;
3):
default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。
2.当某些语句需要执行很多次时,就用循环结构。
while和for可以进行互换。
区别在于:
如果需要定义变量控制循环次数。
建议使用for。
因为for循环完毕,变量在内存中释放。
3.break:
作用于switch,和循环语句,用于跳出,或者称为结束。
break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。
当循环嵌套时,break只跳出当前所在循环。
要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。
4.continue:
只作用于循环结构,继续循环用的。
作用:
结束本次循环,继续下次循环。
该语句单独存在时,下面不可以定义语句,执行不到。