JAVA基础&高级之基本语法篇

先来看看Java基础知识框架图

JAVA基础&高级之基本语法篇_第1张图片
从图中可以看出,Java的基础知识分为4个部分,该篇会讲解Java的基础语法

  • 基础语法
  • 面向对象
  • 高级知识
  • 新特性

一、关键字和保留字

1、关键字(keyword)

定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)

特点:关键字中所有字母都是小写

按照关键字用途分类可以分为如下几类:

1)定义数据类型的关键字

class、Interface、enum、byte、short、int、long、float、double、char、boolean、void

2)定义流程控制的关键字

if、else、switch、case、default、while、do、for、break、continue、return

3)定义访问权限修饰符的关键字

private、protected、public

4)定义类、函数、变量、修饰符的关键字

abstract、final、static、synchronized

5)定义类与类之间关系的关键字

extends、implements

6)定义建立实例、引用实例、判断实例的关键字

new、this、super、instanceof

7)异常处理的的关键字

try、catch、finally、throw、throws

8)包的关键字

package、import

9)其他修饰符关键字

native、strictfp、transient、volatile、assert

10)定义数据类型值的字面值

true、false、null

2、保留字(reserved word)

定义:当前Java版本没有使用,以后版本可能会作为关键字

特点:单词字母都是小写

如:goto、const

二、标识符(Identifier)

定义:对类、变量、方法等命名时使用的字符序列称为标识符,一句话就是反是自己需要起名字的地方都叫标识符

标识符定义需要满足以下规则:

  • 由26个英文字母大小写,0-9,_ 或 $ 组成
  • 不能以数组开头
  • 不可以使用Java中的关键字和保留字,但能包含关键字和保留字
  • Java中严格区分大小写,长度无限制
  • 标识符包含空格

Java中名称的命名规范:

包名:多单词组成时所有字母都小写:xxxyyyzzz

类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz

变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz

常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

三、变量

基本概念:

  • 内存中的一个存储区域
  • 该区域的数据可以在同一个类型范围内不断变化
  • 变量是程序中最基本的存储单元

变量的声明和初始化:变量类型 变量名 = 存储的值;

变量的作用:用于内存中存储数据

1、变量的分类

可以按照数据类型和声明位置两种区分:

1、按数据类型区分:

JAVA基础&高级之基本语法篇_第2张图片

2、按照声明位置区分:

  • 在方法体外,类体内声明的变量称为成员变量。
  • 在方法体内部声明的变量称为局部变量。
    JAVA基础&高级之基本语法篇_第3张图片

注意:局部变量的声明需要进行初始化。

2、变量的类型详解

Java8大基本数据类型占用存储空间和容量范围:

1)整数类型

类型 占用存储空间 容量范围
byte 1字节(8bit) -128~127
short 2字节 xxx
int 4字节 xxx
long 8字节 xxx

注意:基本类型是long声明的变量初始值需要加L用以区分为是long类型(不强制

2)浮点类型

类型 占用存储空间 容量范围
float 4字节 xxx
double 8字节 xxx

注意:Java中浮点类型默认为double类型。声明float型变量需要加’F’或者’f’(强制

3)字符类型

类型 占用存储空间 容量范围
char 2字节 xxx

char类型表示的是一个字符,在Java中采用的unicode编码,所以一个字符可以存储一个汉字是2字节。

字符型有三种初始化的表现形式:

  • 使用单引号’’ 将字符包括起来。例如:char c = ‘a’; char c1 = ‘哈’; char c2 = ‘6’
  • Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’; // '\n’表示换行符
  • 直接使用unicode来进行表示字符. 例如 char c4 = ‘\u000a’; \u000a 表示 \n。

注意char类型可以进行运算的。因为他都对应有unicode码。

4)布尔类型

boolean 类型用来判断逻辑条件,它有两种取值,true和false

3、数据类型转换

数据类型转换有两种,第一种是将容量小的转换为容量大的,第二种则是将容量大的转换为容量小的也叫强制类型转换。

1、基本数据类型转换

定义:容量小的类型自动转换为容量大的数据类型。

基本数据类型转换

如图所示,这张图表示的是数据类型之间的转换从小到大的一个排序。

注意的情况如下:

  • 多种类型的数据混合运算时,首先自动将所有数据转换成容量最大的那种数据类型。
  • byte、short、char之间级别相同,不会相互转换,都是使用int类型。
  • boolean类型不能与其他数据类型运算。
  • 当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。

2、强制类型转换

强制类型转换是自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:(),但可能造成精度降低或溢出,格外要注意。

注意:应用类型字符串String转换为int类型需要使用基本类型对应的包装类进行转换为基本类型。

四、运算符

运算符是一种特殊的符号,用以表示数据的运算,赋值和比较等操作。

1、算术运算符

运算符 运算 范例 结果
+ 正号 +3 3
- 符号 -3 -3
+ 6 + 6 12
- 6 - 4 2
* 6 * 6 36
/ 5 / 5 1
% 取余(取模) 7 % 5 2
++ 自增(前):先运算后取值 a = 2; b = ++a; a = 3, b = 3
++ 自增(后):先取值后运算 a = 2; b = a++; a = 3, b = 2
自减(前):先运算后取值 a = 2; b = --a; a = 1, b = 1
自减(后):先取值后运算 a = 2; b = a–; a = 1, b = 2
+ 字符串连接 “Hello” + “World” “HelloWrold”

2、赋值运算符

符号:=

赋值运算符是r -> l 从右到左,当两边的数据类型不一致时,可以使用自动转换或者强制转换进行处理。支持连续赋值。

扩展赋值运算符:+=、-=、*=、/=、%=

3、比较运算符(关系运算符)

运算符 运算 范例 结果
== 相等于 4 == 3 false
!= 不等于 4 != 3 true
< 小于 4 < 3 false
> 大于 4 > 3 true
<= 小于等于 4 <= 3 false
>= 大于等于 4 >= 3 true
instanceof 检查是否是类的对象 “Hello” instanceof String true

4、逻辑运算符&位运算符

& 逻辑与 | 逻辑或 !逻辑非 && 短路与 || 短路或 ^ 逻辑异或

“&” 和 “&&” 的区别:

单&时,左边无论真假,右边都要进行运算;

双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

“|” 和 “||” 的区别同理,||表示:当左边为真,右边不参与运算。

运算符 运算 范例
<< 左移 3 << 2 = 12
< 右移 3 >> 1 = 1
>>> 无符号又移 3 >>> 1
& 与运算 6 & 3 = 2
| 或运算 6 | 3 = 7
^ 异或运算 6 ^ 3 = 5
! 取反运算 ~6 = -7

位运算符的细节

<< 空位补0,被移除的高位丢弃,空缺位补0
>> 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1
>>> 被移位二进制最高位无论是0或者是1,空缺位都用0补。
& 二进制为进行&运算,只有1&1时结果是1,否则是0;
| 二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;
^ 相同二进制为进行 ^ 运算,结果是0;1 ^ 1 = 0, 0 ^ 0 = 0,不相同二进制位 ^ 运算结果是 1. 1^0 = 1, 0^1 = 1
~ 正数取反,各二进制码按补码各位取反。负数取反,各二进制码按补码各位取反

5、三元运算符

格式:(条件表达式)?表达式1:表达式2;

  • 如果条件表达式为true,运算后的结果是表达式1,否则运算的结果为表达式2;
  • 表达式1和表达式2为同种类型
  • 三元运算符与if-else的联系与区别:
    • 三元运算符可简化if-else语句
    • 三元运算符要求必须返回一个结果。
    • if后的代码块可有多个语句

运算符优先级

  • 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。
  • 只有单目运算符、三元运算符、赋值运算符是从右向左运算的。
    JAVA基础&高级之基本语法篇_第4张图片

五、程序流程控制

1、顺序结构

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

2、分支结构

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

3、循环结构

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

你可能感兴趣的:(Java基础&高级,java)