p18
基本数据类型
- 整数:byte、short、int(默认)、long
- 浮点数:float、double(默认)
- 字符:char
- 布尔:boolean
引用数据类型
- 类
- 数组
- 接口
- 字符串
- Lambda
p22、p23、p24
自动类型转换(隐式)
- 自动完成
- 数据范围从小到大
强制类型转换(显式)
- 格式:范围小的类型 变量名 =(范围小的类型)原本范围大的数据
- 一般不推荐使用,可能发生精度损失(不是四舍五入,把小数位直接省掉)或者数据溢出
- byte/short/char都可以发生数学运算,运算时先提升成int类型再进行计算
- boolean类型不能发生数据类型转换
p25
ASCII码表,数字和字符的对应关系
Unicode码表,也是数字和符号的对应表,0-127和ASCII一样,从128开始包含更多字符
- ‘0’---->48
- ‘A’----->65
- ‘a’----->97
p27
加号的用法
- 数值加法
- char升级成int再加法
- String类型字符串连接。任何数据类型和String加法都变成String类型
p31
逻辑运算符:
- 与&&
- 或||
- 非!
- 逻辑运算符只能用于boolean
p32
一元运算符:例如!、++、–
二元运算符:例如+、-
三元运算符:需要三个数据才能进行运算。(格式:数据类型 变量名称=条件判断?表达式A:表达式B)
- 三元运算符的结果必须被使用
p34、p35
定义方法格式:
public static void 方法名称()
{
方法体;
}
方法定义的先后顺序无关
方法不能产生嵌套包含关系
方法调用:
- 格式:方法名称()
p37
对于byte/short/char三种类型,如果右侧赋值数值没有超过对应范围,javac编译器会自动补上强制转换
p56
IDE 集成开发环境
p61
IDEA常用快捷键
- alt+enter 导入包,自动修正代码
- ctrl+y 删除光标所在行
- ctrl+d 复制光标所在行的内容,插入光标位置下面
- ctrl+alt+l 格式化代码
- ctrl+/ 单行注释,再按取消注释
- ctrl+shift+/ 选中代码注释,多行注释,再按取消注释
- alt+ins 自动生成代码,toString、get、set等方法
- alt+shift+上下箭头 移动当前代码
- psvm回车后自动生成main
- sout回车后自动生成System.out.println()
- 数字+.+fori,回车自动生成循环数字次数的for循环for(int i=0;i<数字;i++)
p63
- 方法的定义与先后顺序无关
- 方法定义不能嵌套
- 方法不会自动执行,必须进行方法调用
p73
重载overload。方法名称一样,参数列表不一样。
- 参数个数不同、参数类型不同、参数多类型顺序不同
- 与方法的返回值无关、与参数的名称无关
- 重载和static或public都没关系,有其他全部一样的就冲突了
p79、p80、p81
数组初始化方式
- 动态初始化,指定长度
- 数据类型[ ] 数组名称= new 数据类型 [数组长度]
- 静态初始化,指定内容
- 数据类型[ ] 数组名称=new 数据类型[ ] {元素1,元素2… }
- 省略格式: 数据类型[ ] 数组名称={元素1,元素2,…},静态初始化省略格式不能拆分为两个步骤
p83
- 动态数组初始化拥有自动的默认值
- int 0
- double 0.0
- char ‘\u0000’
- boolean false
- 引用 null
p84
java内存划分:
- 栈stack
- 局部变量:方法的参数,方法内部的变量
- 作用域:一旦超出作用域,立马从内存中消失
- 堆heap
- 堆内存中的东西都有地址值,是十六进制的
- 堆内存的数据都有内存值
- 方法区method area
- 存储.class的信息,包括方法的信息
- 本地方法栈native method area
- 与操作系统相关
- 寄存器pc register
- 与cpu相关
p89
- 所有的引用类型变量都可以赋值为null
- 如果只赋值为null而没有new就会发生NullPointerException异常
p96
- 面向过程:实现功能时按照具体步骤,详细处理细节
- 面向对象:不关心具体步骤(封装、继承、多态)
p99
- 对象具有属性和行为,映射到java中就是成员变量(属性)和成员方法(行为)
- 成员变量直接定义在类当中,在方法外面
- 成员方法不写static关键字
p100
- 通常情况下一个类并不能直接使用,需要根据类创建对象
- 导包 import 包名.类名(当前类属于同一个包时可以省略导包语句)
- 创建 类名称 对象名=new 类名称();
- 使用
- 使用成员变量 对象名.成员变量名
- 使用成员方法 对象名.成员方法名()
- 成员变量如果没有赋值,会有默认值