对Java的复习,以前学的不好,再加上工作后基本没用过,查缺补漏一下,大多数是我个人想复习的部分,仅供参考。
三种注释
1、单行注释 2、多行注释 3、JavaDoc注释
/**
*
*
*
* */
写在这里的注释信息,可以被javadoc命令解析提取并生成到帮助文档中
基础语法
标识符
在java中,标识符是用来给变量、方法、类等命名的字符序列 标识符的长度没有限制,但应该简洁、意义明确 规则:数字、字母、下划线、美元符
字面量
字面量:指的是在程序中直接使用的数据,字面量是Java中最基本的表达式,不需要进行计算或转换,直接使用即可 java字符串必须双引号,字符必须单引号
变量
变量:内存当中的一块空间,是计算机中存储数据最基本的单元 变量三要素: 数据类型(决定空间大小) 变量名 变量值 声明:Int i
变量的分类
1、局部变量 2、成员变量 1、静态变量 类体中定义的 2、实例变量
进制
二进制
十转二 除2取余,到0为止,逆序写结果 0b
八进制
除8取余,到0为止,逆序写结果 0
十六进制
除16取余,到0为止,逆序写结果 0x 源与补之间的计算,取反,加一
数据类型
基本数据类型
整数型
浮点型
布尔型
字符型
引用数据类型
整数型
byte、short、int、long
定义会从等号右边先执行,特殊类型如果不在末尾标准,会产生崩溃,例如long类型如果不标准L,默认分配4字节空间,如果数据长度超过了默认分配,则会崩溃
当一个整数型字面量没有超出byte的取值范围,是可以int字面量直接赋值给byte类型变量
浮点型
float创建变量,右侧字面量默认是当成double,末尾需要通过f确认 float:单精度,7位小数 double:双精度(常用),15位小数 表示形式: 1、十进制 2、科学计数法 一旦有浮动型数据参与运算得出的结果,一定不要使用双等号与其他数字进行相等比较 主要原因:任何浮点型数据,在计算机底层都存储的是它的近似值
char类型
2个字节 取值范围:0-65535 Unicode编码 Java中可以存一个汉字
运算符
优先级:想让谁优先执行就加括号就完事了 字节码 在Java语言中,任何一个方法执行时,都会专门为这个方法分配所属的内存空间,供这个方法使用 每个方法都有自己独立的内存空间,这个内存空间中有两块比较重要的内存空间: 局部变量表:存储局部变量 操作数栈:存储程序运行过程中参与运算的数据 bipush:分配内存空间存个值 iinc 2 1: 变量表某个号位加一 istore是往变量表存 赋值 iload复制到操作数栈 操作数栈中加载值
int i = 10
i = i++
System.out.println(i)
结果是10 短路的与和或效率高
位运算
位运算左移n位相当于乘2的n次方,左移不会改变符号位 任何位运算,操作的都是补码 位运算右移位相当于除以2的n次方,正数右移左补0,负数右移左补1
方法
是一段可以被重复利用的代码片段 static修饰的类方法,调用类名.方法名() 类名可以省略的情况: 本类里面调用可以省略 方法调用的瞬间,会在栈内分配场所,此时发生压栈操作 方法一但结束,给方法分配的内存空间就会释放,此时发生弹栈操作 方法递归调用:方法自己调用自己 递归调用如果没有结束条件的话,会出现栈内存异常错误 java.lang.StackOverflowError 所有递归调用必须有结束条件 递归非必要不使用
package包机制 作用:便于代码管理 定义语法:在代码第一行编写package语句,注意:package语句只能写在第一行 规范:全部小写,公司域名倒序+项目名+模块名+功能名