一、注释
为了方便程序的阅读,Java语言允许程序员在程序中写上一些说明性的文字,用来提高程序的可读性,这些文字性的说明就称为注释。 注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句。 在Java中根据注释的功能不同,主要分为单行注释、多行注释和文档注释。
- 单行注释:使用“//”开头,“//”后面的单行内容均为注释。
- 多行注释: 以“/*”开头以“*/”结尾,在“/*”和“*/”之间的内容为注释,我们也可以使用多行注释作为行内注释。但是在使用时要注意,多行注释不能嵌套使用。
- 文档注释:以“/**”开头以“*/”结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API)
二、标识符
标识符是用来给变量、类、方法以及包进行命名的,如Welcome、main、System、age、name、gender等。标识符需要遵守一定的规则:
- 标识符必须以字母、下划线_、美元符号$,可以使用中文(不建议)。
- 标识符其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合。
- Java 标识符大小写敏感,且长度无限制。
- 标识符不可以是Java的关键字。
命名规范
- 命名要有意义,最好做到见名知意。
- 类名,接口名的命名,单词首字母大写
- 属性名和变量名:如果有一个单词,则该单词全部小写;如果有多个单词,第一个单词全部小写,第二个单词及以后,首字母大写。age, userName
- 方法名:如果有一个单词,则单词全部小写;如果有多个单词,则第一个单词小写,第二个单词及以后,首字母大写。一般情况下,一个单词的方法,该单词是动词get;两个或多个单词,一般是动宾结构getName
abstract | assert | boolean | break | byte |
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
四、变量和常量
变量
- 定义:内存中的一小块内存,为便于获取该内存中数据,给该内存通过标识命名来获取数据
- 声明格式:数据类型 变量名;
- 分类:局部变量、成员变量、静态变量的区别
局部变量、成员变量、静态变量的区别
类型
声明位置
从属于
生命周期
初始化 局部变量
方法或语句块内部
方法/语句块
从声明位置开始,直到方法或语句块执行完毕,局部变量消失
先声明初始化后才可使用 成员变量
(实例变量)
类内部,方法外部
对象
对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失;
如果不初始化,会使用对应类型默认值 静态变量
(类变量)
类内部,static修饰
类
类被加载,静态变量就有效;类被卸载,静态变量消失。
常量
用关键字final来定义一个常量。 常量一旦被初始化后不能再更改其值。
final int a = 1;
变量和常量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则: monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则: Man, GoodMan
- 方法名:首字母小写和驼峰原则: run(), runRun()
五、基本数据类型(数值型,字符型,布尔型)
类型 | 所占空间(bit) | 所占空间(byte) | 取值范围 | 对应的装箱基本类型 | 默认值 | 基本类型大小判断 |
byte | 8bit | 1byte | -128~127 | Byte | 0 | >、<、==等 |
short | 16bit | 2byte | -32768~32767 | Short | 0 | >、<、==等 |
int | 32bit | 4byte | -(2^31)~(2^31)-1 | Integer | 0 | >、<、==等 |
long | 64bit | 8byte | -(2^63)~(2^63)-1 | Long | 0L | >、<、==等 |
float | 32bit | 4byte | (+-)3.402823447E+38F | Float | 0.0F | Float.compare()或Double.compare() |
double | 64bit | 8byte | (+-)1.79769313486231570E+308 | Double | 0.0D | Double.compare() |
boolean | 1bit | 1/8byte | 0、1 | Boolean | false | 无 |
char | 16bit | 2byte | 0~(2^16)-1 | Char | /u0000 | >、<、==等 |
自动类型转换
当一个算数表达式中包含多个基本类型的值时,整个算数表达式的数据类型将发生自动提升、
当一个算数表达式中包含多个基本类型的值时,整个算数表达式的数据类型将发生自动提升、
- 所有byte类型、short类型和char类型将被提升到int类型。
- 整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。
强制类型转换
强制类型转换,又被称为造型,用于显式的转换一个数值的类型。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
long a = 8;
int b = (int)b;
六、运算符(operator)
算术运算符 | 二元运算符 | +,-,*,/,% |
一元运算符 | ++,-- | |
赋值运算符 | = | |
扩展运算符 | +=,-=,*=,/= | |
关系运算符 | >,<,>=,<=,==,!= instanceof | |
逻辑运算符 | &&,||,!,^ | |
位运算符 | &,|,^,~ , >>,<<,>>> | |
条件运算符 | ? : |
算数运算符
+:加
-:减
*:乘
/:除。 如果两个操作数都是整数类型,则计算结果是整数,19/4=4,除数不能是0。如果两个操作数有一个是浮点数或者两个都是浮点数则计算结果也是浮点数,此时允许除数是0,得到结果正无穷大,或者负无穷大。
%:求余运算符。5.2%3.1=2.1 如果两个中存在浮点数,第二个操作数是0或0.0运算结果NaN;
++:自加。单目运算符,只能操作一个数; ++a 先自增1后运算,a++ 先拿a去运算后a自增1;
--:自减。
赋值运算符
+=:a+=b <=> a=a+b
-=:a-=b <=> a=a+b
*=:a*=b <=> a=a*b
/=:a/=b <=> a=a/b
%b:a%=b <=> a=a%b
关系运算符
关系运算符的运算结果是布尔值:true/false
=:赋值运算符,而真正的判断两个操作数是否相等的运算符是==。
==、!= :所有(基本和引用)数据类型都可以使用。
> 、>=、 <、 <=:仅针对数值类型(byte/short/int/long, float/double。以及char)。
instanceof:判断关键字左边对象是否属于右边 类的实例/子类实例/实现类/接口的实例 对象,返回true/false。
实例对象 instanceof 类/接口
逻辑运算符
只操作布尔值
逻辑与 &( 与) :两个操作数为true,结果才是true,否则是false
逻辑或 |(或) :两个操作数有一个是true,结果就是true
短路与 &&( 与): 只要有一个为false,则直接返回false
短路或 ||(或) :只要有一个为true, 则直接返回true
逻辑非 !(非) 取反:!false为true,!true为false
逻辑异或 ^(异或): 相同为false,不同为true
位运算符
只操作数值
~ :取反
& :按位与
| :按位或
^ :按位异或 。7^4^4=7
<< :左移运算符,左移1位相当于乘2
int b = 3<<2; //相当于:3*2*2;
>> :右移运算符,右移1位相当于除2取商,最高位由原有数据最高位决定
>>>:无符号数右移。无论最高位是什么右移补0
条件运算符
语法格式:
x ? y : z
x是布尔值,若为true结果为y,若为false结果z
运算符优先级
含有多个运算符时最好用()来分割
优先级
|
运算符
|
结合性
|
1
|
() [] .
|
从左到右
|
2
|
! +(正) -(负) ~ ++ --
|
从右向左
|
3
|
* / %
|
从左向右
|
4
|
+(加) -(减)
|
从左向右
|
5
|
<< >> >>>
|
从左向右
|
6
|
< <= > >= instanceof
|
从左向右
|
7
|
== !=
|
从左向右
|
8
|
&(按位与)
|
从左向右
|
9
|
^
|
从左向右
|
10
|
|
|
从左向右
|
11
|
&&
|
从左向右
|
12
|
||
|
从左向右
|
13
|
?:
|
从右向左
|
14
|
= += -= *= /= %= &= |= ^= ~= <<= >>= >>>=
|
从右向左
|