Java 基本语法

关键字和保留字

关键字

在编程语言中有一些事先定义的,有着特殊含义和用途的单词。

保留字

和关键字一样都是编程语言事先定义好的,只是说现在暂时没有特殊的用途,但说不定以后某天会突然被赋予意义和被使用到。因此被保留下来的单词,goto和const就是Java的保留字。

标识符

在程序中自定义的一些名称。它是由26个字母大小写,数字:0-9,符号 _ $ 组成

规定:

  • 不能以数字开头
  • 不可以使用关键字
  • 见名知义

注释

注解,解析用于注解说明解释程序的文字

注解的作用:

  • 注解可以帮我们解释说明一些代码
  • 也可以帮我们缩小错误范围,用于排错

Java的注释信息是给程序员看的,编译器(javac)在编译的时候会忽略掉源文件中的注释信息。
为此,Java提供3种注释类型:

① 单行注释;         //
② 多行注释;         /*  */
③ 文档注释;        /** */

注意问题

  • 单行注释能嵌套单行注释,可以嵌套多行注释
  • 多行注释当中不能嵌套多行注释,多行注释当中可以嵌套单行注释

分隔符

Java语言分隔符:

  • 分号(;):语句的分割,表示一句话结束,好比咱们使用的句号。
  • 花括号({}):表示一个代码块,是一个整体,花括号要成对使用。
  • 方括号([]):定义数组和访问数组元素时使用。
  • 圆括号(()):使用很广泛,具体用到细讲。
  • 圆点(.):类和对象访问它的成员时使用。
  • 空格( ):把一整条语句分割成几段,空格的次数不限制,好比一句英文里单词都要分开写一样。

注意:必须都是半角下的英文符号。

常量与变量

常量

什么是常量

程序中固定不变化的值。定义了就不能再去修改。比如:整数常量1,2,3;小数常量3.14;布尔常量false,true等。

常量分类

  • 整数常量
  • 小数常量
  • 布尔型常量
  • 字符常量
  • 字符串常量
  • null常量

整数常量的表现形式

  • 二制制
  • 八进制
  • 十进制
  • 十六进制

变量

什么是变量

其值可以发生改变的量, 定义完毕后可以指代某一事物

变量的定义:

数据类型 变量名 = 初始化值;

表示存储空间,可用来存放某一类型的常量,没有固定值,并可以重复使用,也可以用来存储某种类型的未知数据。

变量的特点:

① 占据着内存中的某一块存储区域;
② 该区域有自己的名称(变量名)和类型(数据类型);
③ 可以被重复使用;
④ 该区域的数据可以在同一类型范围内不断变化;

使用变量的时候要注意的问题

A:作用域

  • 变量定义在哪个大括号内,它就在这个大括号内有效。
  • 并且,在同一个大括号内不能同时定义同名的变量。

B:初始化值

  • 没有初始化值的变量不能直接使用。
  • 你只要在使用前给值就行,不一定非要在定义的时候立即给值。
  • 推荐在定义的时候给值。

定义变量的格式:

(1)数据类型 变量名 = 初始化值;
(2)数据类型 变量名; 变量名 = 初始化值;

C:在一行上建议只定义一个变量

可以定义多个,但是不建议

表达式

表达式(expression) 是由数字、运算符、数字分组符号(括号)、常量、变量等以能求得结果的有意义排列的组合。

用运算符号连接的变量/常量可称为表达式。那么也就是说表达式是由常量、变量、运算符、括号组成能求得值的有意义结果的语句。

如:
a + b
3.14 + a
(x + y) * z + 100

表达式中操作数进行运算得到的最终结果就是表达式的结果。
表达式的运算顺序(大多和数学一样,参照后面的运算符操作优先级):

进制

什么是进制

进制也就是进位制,是人们规定的一种进位方法。
对于任何一种进制(x进制),就表示某一位置上的数运算时是逢x个值进一位。
十进制是逢十进一,
十六进制是逢十六进一,
二进制就是逢二进一,
以此类推,x进制就是逢x进位。

二进制/八进制/十进制/十六进制

  • 二进制
    由两个基本数字0,1组成,运算规律是逢二进一。计算机都使用二进制表示数据.

  • 八进制
    由0、1、2、3、4、5、6、7组成,运算规律是逢八进一.

  • 十进制
    由0,1,2、3、4、5、6、7、8、9组成.

  • 十六进制
    由0~9以及A,B,C,D,E,F组成

二进制数系统中,位简记为b,也称为比特,每个二进制数字0或1就是一个位(bit)。

位是数据存储的最小单位,其中8 bit 就称为一个字节(Byte)

数据类型

什么是数据类型

数据类型:Java是一种强类型的语言,针对每一种数据都定义了明确的数据类型分类。

注意:

  • 整数默认是int类型
  • 浮点数默认是double类型。
  • 长整型后缀用L或者l标记。建议使用L。
  • 单精度浮点数用F或者f标记。建议使用F。

基本数据类型

boolean类型

  • boolean类型:通常用于逻辑运算和程序流程控制(条件选择/循环)。
  • 该类型的值只能是true 或 false,表示真或假。
  • 不可以使用0或非0的整数来代替false和true,区分于C语言。
  • (其实在JVM中对boolean的处理也是用0表示false,非0表示true的。)
  • false和true是boolean的常量。

整数类型

byte、short、int、long类型:
整型常量的四种表示形式:

① 二进制整数:0B或0b开头(Java7的新特性),如:int a = 0B110;
② 八进制整数:要求以0开头,如 int a = 012;
③ 十进制整数:如:int a = 17;
④ 十六进制整数:要求0X或0x开头,如int a = 0x12;

Java语言的整型常量默认是int型,声明long型变量后加上‘l’或‘L,因小写的l容易和数字1相混淆,建议使用大写L。
默认情况下,一个整型的字面量默认是int类型.

小数类型

float、double类型:
表示小数类型又称为浮点类型
其中float表示单精度类型,double表示双精度类型,但是二者都不能表示精确的小数。
J
ava的浮点类型常量有两种表现形式:
十进制形式: 例如:3.14 ,168.0, .618
科学计数法形式: 例如:3.14e2, 3.14E2, 1000E-2
科学计数法表达式返回的结果是double类型。

默认情况下,一个浮点类型的字面量默认是double类型。若要声明一个常量为float型,则需在常量后加上f 或 F,double常量后面的D或d可省略。

注意:Java里只有浮点型的变量才可以接受科学计算式结果。

字符类型

16位无符号小数(ASCII表)
使用一个数字去表示一个特定的字符

引用数据类型

除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。引用数据类型默认初始值都是null。

String是一个类,表示字符串,所谓字符串,就是一串字符,也就是N个字符连接在一起(N可以表示0或多个)
字符串都得使用 "" 括起来的,连接字符串使用 “+”符号。

字符串拼接:字符串和任意数据类型相连接,结果都是字符串类型。

类型转换

不能直接把大的数据类型复制给小的数据类型。

自动类型转换

当一个算术表达式中包含多个基本数据类型(boolean除外)的值时,整个算术表达式的数据类型将在数据运算时出现类型自动提升

其规则是:所有的byte、short、char类型被自动提升到int类型;

强制类型转换

运算两端数据类型必须得要一致

强制转换:从大的数据类型到小的数据类型。

格式: 目标数据类型 变量 = (目标数据类型) (被转换的数据);

注意: 不要随意的去使用强制转换,因为它隐含了精度损失问题。

总结

运算符

算术运行符

(+、-、*、/、%、++、--)

用来处理四则运算的符号。

加号:在操作数值、字符、字符串时其结果是不同的。

  • 当两个数值相加得到的是数值相加的结果。
  • 当两个字符相加得到的是ASCII码表值。
  • 当两个字符串相加时表示将两个字符串连接在一起,从而组成新的字符串。

减号:在操作数值、字符时其结果是不同的。

  • 当两个数值相减得到的是数值相减的结果。
  • 当两个字符相减得到的是ASCII码表值。

除号

  • 整数在使用除号操作时,得到的结果仍为整数(小数部分忽略)
  • 当整数除以0的时候,会引发算术异常。
  • 当一个正浮点类型数除以0时,或者正整数除以0.0时,会得到 正无穷大(Infinity)
  • 当一个负浮点类型数除以0时,或者负整数除以0.0时,会得到 负无穷大(-Infinity)
  • 当0.0除以0.0时, 会得到 NaN(Not a Number)

取模(求余数):模数的符号忽略不计,结果的正负取决于被模数。

注意:无穷大和NaN都属于double浮点类型,但是所有正无穷大都是相等的,所有负无穷大也是相等的,NaN永远不相等,也不等于自己。

++和--详解:

  • 都只能操作变量,不能操作常量。
  • ++: 表示当前操作变量自己累加1。
  • -- : 表示当前操作变量自己减去1。

自增:++,递增操作符,使变量值增加1,有前置和后置之分,只能操作变量。
自减: -- ,递减操作符,使变量值减去1,有前置和后置之分,只能操作变量。
自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,现在单讲++:
代码 result++ 和 ++result,都将使result变量的值加1。
唯一的区别是:
前置(++result): 表示对result加1之后的结果进行运算,
后置(result++): 表示对result变量加1之前的值(原始值)进行运算。
如果仅仅执行简单的递增操作(只写result++或++result),那么选用任意一个都可以。

赋值运行符

(=、+=、-=、*=、/=、%=)

专门为变量指定值或重新指定值。

注意Java支持同时给多个变量赋值,好比支持同时声明多个变量一样,但因影响代码可读性,故也不推荐。
加等于:x += 5; 相当于 x = x + 5,但还包括隐式类型转换。

比较运行符

(==、!=、>、<、>=、<=)

用于比较两个变量或常量之间的关系,比较运算符的结果是boolean类型。其操作格式为:
boolean result = 表达式A 比较运算符 表达式B;

==:等于

  • 若比较的是两个操作数都是数值类型,即使他们的类型不同,只要值相同就返回true。
  • 基本数据类型比较的是值,引用数据类型比较的是地址值。

三元运行符

三元运算符,表示有三个元素参与的表达式,所以又称为三目运算符,其语义表示 if-else。
语法格式:X ? Y :Z, 其中x为boolean类型表达式,先计算X的值,若X结果为true则整个三目运算表达式的结果是Y,否则就是Z。三目运算符结果的类型由Y和Z决定。

逻辑运算符

与(&)、或(|)、非(!)、异或(^)、短路与(&&)、短路或(||)

语法格式为:boolean result = 表达式A 逻辑运算符 表达式B;

逻辑运算符 说明
& 表示并且,当操作数A和B都为true结果才为true,否则结果是false。
&& 和&结果相同,具有短路效果,如果左边操作数A是false,结果一定为false,且不运行B的运算。
| 表示或者,A和B都为false结果为false,只要有A或B是true,结果就是true。
|| 和|结果相同,具有短路效果,如果左边操作数A是true,结果一定为true,且不运行B的运算。
^ 判断A和B是否不同,不同则为true,相同则为false。
! 取反,!true结果是false,!fasle结果是true。

运算符的优先级

posted @ 2019-05-18 16:43  Lomen~  阅读(699)  评论(0编辑  收藏  举报