java基础语法

目录

一、关键字与保留字

二、标识符

标识符命名规则

命名规范

三、变量和字面量

1、字面量

2、变量

2.1、变量的概念

2.2、变量的作用

2.3、变量使用注意事项

2.4、变量分类

四、数据类型

数据类型的取值范围

 基本数据类型转换

 转换规则六条:

五、运算符

六、程序流程控制


一、关键字与保留字

关键字(keyword)的 的 定义和特点

关键字
用于定义数据类型的关键字
classinterfaceenumbyteshort
int long float double char
boolean void
用于定义流程控制的关键字
if elseswitch case default
 
while dofor break continue
 
return
用于定义访问权限修饰符的关键字
private protected public
用于定义类,函数,变量修饰符的关键字
abstract finalstatic synchronized
用于定义类与类之间关系的关键字
extends implements
用于定义建立实例及引用实例,判断实例的关键字
newthis super instanceof
用于异常处理的关键字
try catch finally throw throws
用于包的关键字
package import
其他修饰符关键字
native strictfp transient volatile assert
* 用于定义数据类型值的字面值
true falsenull

注意:NULL不是java关键字

保留字(reserved word)

Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使
用。自己命名标识符时要避免使用这些保留字
goto 、const


二、标识符

标识符命名规则

① 标识符只能由数字、字母、下划线“_”、美元符号“$”组成,不能含有其它符号。
② 标识符不能以数字开始。
③ java 关键字和保留字不能作为标识符。
④ 标识符严格区分大小写。
⑤ 标识符理论上没有长度限制。

命名规范

① 见名知意:看到这个单词就知道它表示什么,增强程序的可读性,例如:Student 则表
示学生类型,User 则表示用户类型;
② 遵循驼峰命名方式:可以很好的分隔单词,每个单词之间会划清界限,同样也是增强
程序的可读性,例如:getName 则表示获取名字,UserService 则表示用户业务类;
③ 类名、接口名首字母大写,后面每个单词首字母大写,这是遵守驼峰命名方式的;
④ 变量名、方法名首字母小写,后面每个单词首字母大写,这也是遵守驼峰命名方式的;
⑤ 常量名全部大写,单词和单词之间使用“_”衔接,为了表示清楚含义,不要怕单词
长,例如:INT_MAX_VALUE 则表示 int 类型最大值。


三、变量和字面量

1、字面量

字面量就是直接数据/数值,例如:1234,true,”abc”,‟中‟,3.14。

2、变量

2.1、变量的概念

  • 内存中的一个存储区域
  • 该区域的数据可以在同一类型范围内不断变化
  • 变量是程序中最基本的存储单元。变量三要素:变量类型、变量名和存储的值

2.2、变量的作用

  • 用于在内存中保存数据

2.3、变量使用注意事项

  • Java中每个变量必须先声明,后使用
  • 使用变量名来访问这块区域的数据
  • 变量的作用域:其定义所在的一对{ }内
  • 变量只有在其作用域内才有效
  • 同一个作用域内,不能定义重名的变量。不同的域,变量名可以相同,只不过 Java 遵循就
    近原则,会自动访问离它最近的数据。

2.4、变量分类

1.变量的分类- 按数据类型

  • 对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分

配了不同大小的内存空间。

2.变量的分类-按声明的位置的不同

  • 在方法体外,类体内声明的变量称为 成员变量 。
  • 在方法体内部声明的变量称为 局部变量 

 ● 注意:二者在初始化值方面的异同:
                                同:都有生命周期 异:局部变量除形参外,需显式初始化。


四、数据类型

数据类型的取值范围

数据类型占字节数取值范围缺省默认值包装器类型缓存范围是否支持自定义类型
byte1[-2^{7} ~2^{7} -1]、[-128~127] 0Byte-128~127
short2[-2^{15} ~2^{15} -1]、[-32768~32767] 0Short-128~127
int(整数值默认类型)4[-2^{31} ~2^{31} -1]、[-2147483648~2147483647]0Integer-128~127支持
long8[-2^{63} ~2^{63} -1] 0LLong-128~127
float(单精度)4

[-2^{31} ~2^{31} -1] 、

[-3.403E38 ~ 3.403E38]

0.0fFloat-
double(双精度)(小数值默认类型)8

[-2^{63} ~2^{63} -1] 、

[-1.798E308 ~ 1.798E308]

0.0Double-
boolan1true、false falseBoolean-
char2[0~2^{16} -1]、[0~65535] '\u0000'Character0~127
引用数据类型null

 500MB 1MB = 1024KB 1KB= 1024B B= byte ? bit?
bit(位): 计算机中的最小存储单位。byte(字节):计算机中基本存储单元。

 基本数据类型转换

 转换规则六条:

    第一条:八种基本数据类型中,除 boolean 类型不能转换,剩下七种类型之间都可以进行转换;

    第二条:如果整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋值给byte,short,char 类型的变量;

    第三条:小容量向大容量转换称为自动类型转换,容量从小到大的排序为:

byte < short(char) < int < long < float < double,其中 short和 char 都占用两个字节,但是char 可以表示更大的正整数;

    第四条:大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”,但运行时可能造成精度降低或溢出,谨慎使用;

    第五条:有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的
那种数据类型,然后再进行计算。

                  byte,short,char 类型混合运算时,byte,short,char之间不会相互转换,而是先各自转换成 int 类型再做运算;

    第六条:当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类
型的值将自动转化为字符串(String)类型。


五、运算符

         运算符是指对操作数的运算方式。组成表达式的Java 操作符有很多种(什么是操作数和操
作符,例如 1+2,其中 1 和2 都是操作数,+是操作符,操作符和操作数联合起来构成表达式)。
运算符按照其要求的操作数数目来分,可以有单目运算符(1 个操作数)、双目运算符(2 个
操作数)和三目运算符(3 个操作数)。运算符按其功能来分,有算术运算符、赋值运算符、
关系运算符、逻辑运算符、位运算符、条件运算符、字符串连接运算符和其他运算符。常见的
运算符如下所示:

算术运算符+、-、*、/、% (取模) 、++ (自加 1【单目】) 、
-- (自减 1【单目】)
关系运算符>、>=、<、<=、==、!=
逻辑运算符& (逻辑与) 、| (逻辑或) 、! (逻辑非) 、&& (短路
与) 、|| (短路或)
赋值运算符 =、+=、-=、*=、/=、%=、^=、&=、|=、<<=、>>=
位运算符& (按位与) 、| (按位或) 、^ (按位异或) 、~ (按位
取反【单目】) 、<< (左移) 、>> (带符号右移) 、>>>
(无符号右移)注意:(不存在<<<)
条件运算符 布尔表达式 ? 表达式 1 : 表达式 2 (三目)
字符串连接运算
+
其它运算符

instanceof(检查是否是类的对象 ,例:“Hello” instanceof String )、

new(创建对象的运算符)

 运算符的优先级:

  • 只有单目运算符、三元运算符、赋值运算符是从右向左运算的。
  • 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如下表,上一行运算符总优先于下一行。

  • 六、程序流程控制

  •  流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
  • 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:

                1、顺序结构:

                                     程序从上到下逐行地执行,中间没有任何判断和跳转。

                                     Java中定义成员变量时采用合法的前向引用

                                                                        public class Test{
                                                                        int num1 = 12;
                                                                        int num2 = num1 + 2;
                                                                        }
                                                                        错误形式:
                                                                        public class Test{
                                                                        int num2 = num1 + 2;
                                                                        int num1 = 12;
                                                                        }

                2、分支结构:

                                     根据条件,选择性地执行某段代码。
                                     有if…else和switch-case两种分支语句。


                3、循环结构:

                                     根据循环条件,重复性的执行某段代码。
                                     有while、do…while、for三种循环语句。
                                     注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。

使用switch-case语句有关规则:

  • switch(表达式)中表达式的值 必须是下述几种类型之一:int,(byte ,short、char ,这三者其实会自动转换成int类型) 、枚举 (jdk 5.0) ,String (jdk 7.0)
  • case子句中的值必须是 常量,不能是变量名或不确定的表达式值;
  • 同一个switch语句,所有case子句中的常量值互不相同;case可以合并
  • break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾
  • default子句是 可任选的 的。同时,位置也是灵活的。当没有匹配的case时,执行default

switch 和if 语句的对比:

if和switch语句很像,具体什么场景下,应用哪个语句呢?

  • 如果判断的具体数值不多,而且符合byte、short 、char、int、String、枚举等几种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
  • 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。也就是说,使用switch-case的,都可以改写为if-else。反之不成立。

转向语句:

break:

  • 用来终止 switch语句的执行
  • 用在循环语句当中,用来终止/跳出(当前)循环

break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
 

continue:                                                 (只能使用在循环结构中)

  • 用来终止当前本次循环,直接进入下一次循环继续执行

continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环

return:

  •  return:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。
  • 与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内

小结:

  • break只能用于switch 语句和 循环语句中。
  • continue 只能用于循环语句中。
  • 二者功能类似,但continue是终止本次循环,break是终止本层循环
  • break、continue之后不能有其他的语句,因为程序永远不会执行其后的语句。
  • 标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
  • 很多语言都有goto语句,goto语句可以随意将控制转移到程序中的任意一条语句上,然后执行它。但使程序容易出错。Java中的break和continue是不同于goto的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值