Java基础
注释
-
单行注释 //单行注释,只注释当前行 多行注释 /* 多行注释 多行注释 多行注释 ...... */ 文档注释 /** * javadoc注释 * javadoc注释 * javadoc注释 **/
标识符
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
标识符的命名规则:
标识符的命名规范:
关键字
| 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 |
| 关键字 | 含义 |
|---|---|
| abstract | 表明类或者成员方法具有抽象属性 |
| assert | 断言,用来进行程序调试 |
| boolean | 基本数据类型之一,声明布尔类型的关键字 |
| break | 提前跳出一个块 |
| byte | 基本数据类型之一,字节类型 |
| case | 用在switch语句之中,表示其中的一个分支 |
| catch | 用在异常处理中,用来捕捉异常 |
| char | 基本数据类型之一,字符类型 |
| class | 声明一个类 |
| const | 保留关键字,没有具体含义 |
| continue | 回到一个块的开始处 |
| default | 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现 |
| do | 用在do-while循环结构中 |
| double | 基本数据类型之一,双精度浮点数类型 |
| else | 用在条件语句中,表明当条件不成立时的分支 |
| enum | 枚举 |
| extends | 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口 |
| final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 |
| finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
| float | 基本数据类型之一,单精度浮点数类型 |
| for | 一种循环结构的引导词 |
| goto | 保留关键字,没有具体含义 |
| if | 条件语句的引导词 |
| implements | 表明一个类实现了给定的接口 |
| import | 表明要访问指定的类或包 |
| instanceof | 用来测试一个对象是否是指定类型的实例对象 |
| int | 基本数据类型之一,整数类型 |
| interface | 接口 |
| long | 基本数据类型之一,长整数类型 |
| native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
| new | 用来创建新实例对象 |
| package | 包 |
| private | 一种访问控制方式:私用模式 |
| protected | 一种访问控制方式:保护模式 |
| public | 一种访问控制方式:共用模式 |
| return | 从成员方法中返回数据 |
| short | 基本数据类型之一,短整数类型 |
| static | 表明具有静态属性 |
| strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循[IEEE 754](https://baike.baidu.com/item/IEEE 754)算术规范 |
| super | 表明当前对象的父类型的引用或者父类型的构造方法 |
| switch | 分支语句结构的引导词 |
| synchronized | 表明一段代码需要同步执行 |
| this | 指向当前实例对象的引用 |
| throw | 抛出一个异常 |
| throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
| transient | 声明不用序列化的成员域 |
| try | 尝试一个可能抛出异常的程序块 |
| void | 声明当前成员方法没有返回值 |
| volatile | 表明两个或者多个变量必须同步地发生变化 |
| while | 用在循环结构中 |
数据类型
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
Java的数据类型分为两大类
| 基本数据类型 | 占用空间大小 | 字节范围 | 举例 |
|---|---|---|---|
| byte | 1 | -128 ~ 127 | byte num = 10; |
| short | 2 | -32768 ~ 32767 | short num = 10; |
| int | 4 | -2147483648 ~ 2147483647 | int num = 10; |
| long | 8 | long num = 10L; | |
| float | 4 | -2147483648 ~ 2147483647 | float num = 3.14F; |
| double | 8 | double num =3,14; | |
| char | 2 | 0 ~ 65535 | char name = '国'; |
| boolean | 1 | true、false | boolean flag = true; |
#什么是字节
位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
1B(byte,字节) = 8bit(位)
字符:是指计算机中使用的字母、数字、字和符号
1bit表示1位
1Byte表示一个字节 1B = 8b
1024B = 1KB
1024KB = 1M
1024M = 1G
| 二进制【以0b开始】 | 十进制 | 八进制【以0开始】 | 十六进制【以0x开始】 |
|---|---|---|---|
| int i = 0b10; | int i = 10; | int i = 010; | int i = 0x10; |
转义字符出现在特殊字符之前,会将特俗字符转换成普通字符
| \n | 换行符 |
|---|---|
| \t | 制表符 |
| \' | 普通的单引号 |
| \\ | 普通的反斜杠 |
| \" | 普通的双引号 |
类型转换
低 --------------------------------------------------> 高
byte,short,char -> int -> long -> float -> double
-
大容量转换成小容量,需要进行强制类型转换,强制类型转换需要加”强制类型转换符“。
加上强制类型转换符之后编译通过了,但是运行阶段可能损失精度。
所以强制类型转换符谨慎使用,因为损失精度之后可能损失很严重。
-
小容量可以自动转换成大容量,称为自动类型转换机制
#注意点
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.再把高容量换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题
变量
变量是什么:就是可以变化的量!
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName [= value][{,varName[= value]}];
//数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量。
#注意事项
1.每个变量都有类型,类型可以是基本类型,也可以是引用类型。
2.变量名必须是合法的标识符。
3.变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
变量作用域:其实描述的就是变量的有效范围。在什么范围之内是可以被访问的,只要出了这个范围该变量就无法访问了。
public class Variable{
static int allClicks = 0; //类变量
String str = "hello world"; //实例变量
public void method(){
int i = 0; //局部变量
//变量类型(引用类型) 变量名字 = new Variable();
Variable variable = new Variable();
System.out.println(variable.str);
System,out.println(allClicks);
}
}
常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 数据类型 常量名 = 值;
final double PI = 3.14;
常量名一般使用大写字符。
运算符
| 算术运算符 | + , - , * , / , % , ++ , -- |
|---|---|
| 赋值运算符 | = |
| 关系运算符 | > , < , >= , <= , == , != , instanceof |
| 逻辑运算符 | && , || , ! |
| 位运算符 | & , | , ^ , ~ , >>(右移/2) , <<(左移*2) , >>> |
| 条件运算符 | ?: |
| 扩展赋值运算符 | += , -= , *= , /= |
++运算符可以出现在变量前,也可以出现在变量后,无论是变量前还是变量后,只要++运算结束,该变量中的值一定会自加1
++运算符出现在变量后。规则:先做赋值运算,再对变量中保存的值进行自加1。
++运算符出现在变量前。规则:先进行自加1运算,然后再进行赋值操作。
&逻辑与(两边的算子都是true,结果才是true)
|逻辑或(两边的算子只要有一个是true,结果就是true)
!逻辑非(取反,!false就是true,!true就是false,这是一个单目运算符)
^逻辑异或(两边的算子只要不一样,结果就是true)
&&短路与
||短路或
#注意
1.逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型
2.短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象
3.短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象
+运算符在java语言当中有两个作用:
1.加法运算,求和
当“+”运算符两边的数据都是数字的话,一定是进行加法运算。
数字 + 数字 ---> 数字【求和】
2.字符串的连接运算
当“+”运算符两边的数据只要有一个数据是字符串,一定会进行字符串连接运算。并且连接运算之后的结果还是一个字符串类型
数字 + “字符串” ---> “字符串”【字符串拼接】
在一个表达式出现多个“+”,在没有添加小括号的前提之下,遵循自左向右的顺序依次运算。
public static void main(String[] args){
int a = 10;
int b = 20;
System.out.println("" + a + b); // 1020
System.out.println(a + b + ""); // 30
}
#三元运算符/三目运算符/条件运算符
#语法规则:
布尔表达式?表达式1:表达式2;
#三目运算符的执行原理
1.当布尔表达式的结果是true的时候,选择表达式1作为整个表达式的执行结果
2.当布尔表达式的结果是false的时候,选择表达式2作为整个表达式的执行结果
boolean sex = false;
char c = sex?'男':'女';
System.out.println(c); //可以,女
char c = sex?"男":'女'; //编译错误,类型不兼容,"男"是字符串,'女'是字符
System.out.println(sex?"男":'女'); //可以,因为println()可以输出字符串或字符
包机制
package pkg1[.pkg2[.pkg3...]];
import package1[.package2].(classname|*);
JavaDoc
javadoc命令是用来生成自己API文档的
| @author | 作者 |
|---|---|
| @version | 版本号 |
| @since | 指明需要最早使用的jdk版本 |
| @param | 参数名 |
| @return | 返回值情况 |
| @throws | 异常抛出情况 |
javadoc -encoding UTF-8 -charset UTF-8 java文件名[Doc.java]

浙公网安备 33010602011771号