Java基础语法
Java作为一门编程语言,与其它编程语言一样,有字符集、标识符和关键字、变量、常量、语句等编程语言的基本要素。作为一门1995年才开始发布的编程语言,Java借鉴了C和C++的很多语法特点。在Java编程语言的学习过程中,我们会发现Java的基础语法结构和我们已经学习过的C语言有很多相同之处。
关键字
abstract | boolean | break | byte | case |
---|---|---|---|---|
catch | char | class | const | continue |
default | do | double | else | extends |
assert | final | finally | float | for |
goto | if | implements | import | instanceof |
int | interface | long | native | new |
strictfp | package | private | protected | public |
return | short | static | super | switch |
synchronized | this | throw | throws | transient |
try | void | volatile | while |
注:const和goto不能在Java中使用,但是它们在C和C++中能使用,所以为了方便将C和C++代码转换为Java代码。因为Java中不能用C和C++中会出现的这两个单词,如果要转换的C或C++代码中包含了这两个单词,那么Java编译器会产生编译错误,从而提醒程序员更改代码。
标识符
标识符是在Java代码中我们自己选用的单词。
标识符的使用范围
- 类的类名
- 方法的方法名
- 方法的参数
- 方法的返回
- 变量的命名
- 变量的命名
- ……….
Java标识符的命名规则
- 标识符由字母、下划线、“-”、美元符号或数字组成;
- 标识符不能关键字或true、false、null;
- 标识符应以字母、下划线、美元符号开头,不能是数字;
Java标识符大小写敏感,长度无限制;
“见名知意”
- 类名必须遵循大驼峰命名规则
- 变量,方法,属性名必须遵循小驼峰命名规则
- 常量命名时,所以单词的全部字母都要大写,并且单词与单词之间用_分割。
- 不能使用Java关键字
- 约定俗成的规矩。
数据类型
在Java中,共划分有十一种数据类型。这些数据类型,又根据其使用方式分为基本类型和引用类型两大类:
基本数据类型
Java语言本身内置了八种数据类型。这八种数据类型称为基本类型,是创建类的基本构造单元。
数据类型 | 关键字 | 大小 | 取值范围 |
---|---|---|---|
字节型 | byte | 1个字节(8位) | -27~27-1 (-128~127) |
短整型 | short | 2个字节(16位) | -215~215-1(-327698~32767) |
整型 | int | 4个字节(32位) | -231~231-1 |
长整型 | long | 8个字节(64位) | -263~263-1 |
单精度型 | float | 4个字节(32位) | ±1.40239846E-45~±3.40282347E+8 |
双精度型 | double | 8个字节(64位) | ±4.94065645841246544E-324~±79769313486231570E+308 |
字符型 | char | 2个字节(16位) | \u0000~\uFFFF |
布尔型 | boolean | 不确定,由JVM决定 | true、false |
整型
在八种基本类型中,有四种是整数类型,根据其占用内存空间大小和取值范围分为:byte、short、int和long。这四种类型都是有符号的,这意味着它们既可以存储正数,又可以存储负数。
在Java中执行数学表达式运算时,有如下自动类型提升规则:
- 所有的byte型、short型和char型将被提升到int型;
- 如果其中有一个操作数是long型,那么计算结果就是long型;
- 如果其中有一个操作数是float型,那么计算结果就是float型;
- 如果其中有一个操作数是double型,那么计算结果就是double型。
浮点型
基本类型中的float和double可以用于存储浮点数字。二者之间的不同之处在于所占内存空间的大小:float类型占32位,而double类型是float的两倍大小。
数值数据表达式执行计算时,从低精度向高精度执行自动类型转换,即byte
布尔型
Java中boolean数据类型用来表示布尔值,它适用于逻辑运算,一般用于程序流程控制。boolean类型的变量可以是true或false。true和false都是Java中的特殊字面量。
字符型
char数据类型表示Java中的字符。char类型的数据所占内存空间大小为16位。char类型数据可以被看作是整数值,也就是说我们可以使用char类型数据执行算术运算和大小比较运算。
在Java中,可以用单引号来表示字符字面量。例如,代码中的字面量’A’将被视作为一个字符。如果一个字面量出现在双引号中,例如”A”,那么它就不是一个字符,而是一个字符串。
引用类型
在Java中还有一种称为引用的数据类型。Java语言中,除了基本类型外的变量类型都称之为引用类型。
引用类型与基本类型不同之处在于:引用不包含它所指向的对象的实际数据,而是指向内存中对象所在的位置。
理解引用类型的变量和基本类型的变量之间的区别相当重要。Java中的变量要么是八种基本类型之一,要么是对一个对象的引用,我们只有这两个选择。如果变量是基本类型的,那么该变量的值存储在与变量相同的内存位置。如果一个变量是引用类型的,那么变量的值就是一个内存地址,这个内存地址是引用指向的对象的位置。而对象则包含实际的数据。
常量
Java使用关键字final,来表示某变量实际上是常量。习惯上,程序员通常将常量名的所有字母大写,这样在源代码中一眼就能看见它们。
变量
变量用于存储数据。在Java中,变量必须声明。变量声明包括两个步骤:给变量一个名字,指出变量中存储的数据的类型。
全局变量
- 作用范围:整段程序
- 特点:一处修改,处处修改
局部变量
- 作用范围:本方法内部有效,变量定义之后的代码
- 特点:不允许在同一方法中,连续声明多个相同变量名的变量
运算符和表达式
表中的运算符是按照它们在计算时的优先级别排序的,其中,增量/减量运算符的优先级最高。
运算符分类 | 运算符 |
---|---|
前置或后置增量/减量 | ++、- - |
一元运算符 | +、-、~、!、(强制转换) |
乘法/除法/取模 | *、 /、% |
加/减/字符串连接 | +、 -、 + |
移位运算符 | <<、 >>、 >>> |
比较运算符 | <、<=、 >、>=、instanceof |
相等运算符 | = =、 != |
按位运算符 | &、 |
条件 | AND, OR &&、 |
三目运算符 | ? : |
赋值运算符 | = |
扩展赋值运算符 | *=、/=、%=、+=、–=、<<=、>>=、>>>=、&=、^=、 |
增量和减量运算符
增量运算符++给一个数字加一,减量运算符从一个变量减一。这两个运算符可以作为一个变量的前缀或后缀。
使用这两个运算符作为前缀,分别称为前置增量运算符和前置减量运算符,并导致增量或减量立即发生。
使用这两个运算符作为后缀,分别称为后置增量运算符和后置减量运算符,并导致增量或减量运算在语句中的变量使用后发生。变量在语句执行后加一或减一。
注:当两个同等优先级别的运算符出现在一个语句中时,Java语言规定它们从左到右执行计算。
扩展赋值运算符
Java提供了一套赋值运算符和其它运算符一起操作的快捷方式,我们称为扩展赋值运算符。
移位运算符
在Java中有三种移位运算符:一个左移运算符(<<)、两个右移运算符(>>、>>>)。移位运算符作用于整数值,将其二进制值(即这些值在内存中的存储形式)向右或向左移。将一个整数向左移1位,将导致最低位被设为0,然后其它位整体左移,同时最高位被丢弃(二进制)。二进制左移一位,其值在原数上乘以2
同样,右移运算符将二进制数字向右移。两个右移运算符之间唯一的不同点是一个是有符号的(>>),另一个是无符号的(>>>)。有符号右移将最高的符号位向右移,同时添加一个1为符号位;而无符号右移不管符号位是什么,总是将最高位设为0。
比较运算符
运算符 | 语法 | 有效数据类型 |
---|---|---|
小于 | < | byte, short, int, long, float, double, char |
小于等于 | <= | byte, short, int, long, float, double, char |
大于等于 | byte, short, int, long, float, double, char | |
大于 | > | byte, short, int, long, float, double, char |
等于 | == | byte, short, int, long, float, double, char, boolean, 引用 |
不等于 | != | byte, short, int, long, float, double, char, boolean, 引用 |
instanceof | instanceof | 引用 |
布尔运算符
布尔运算符用于将两到多个布尔表达式组合为一个布尔表达式。条件运算符&&和||可以用于组合两个布尔表达式,而按位运算符和“&”、或“|”和异或“^”既可以用于布尔表达式,也可以用于整数
三目运算符
三目运算符是if/else控制语句的一种快捷机制,其语法形式为:
(布尔表达式) ? x : y
第一个部分是一个布尔表达式,后跟一个问号。如果布尔表达式为true,x语句被执行;否则就执行y语句。
java的注释
- 单行注释:用两个正斜线“//”注释掉斜线后的同行文本。
- 多行注释:“/”和“/”符号用于多行代码的注释。用“/”打开注释,“/”关闭注释。所有在二者之间的文本都会被注释掉。
- JavaDoc注释:“/*”和“/” 是一对特殊类型的注释符号,用于与javadoc工具一起生成包含注释的HTML文件。