培训部分知识点总结
由于已经学完了
大半本书的java教程,
好多知识点都已经了解了,
于是就不再进行记录
基础语法
变量使用中的注意事项
- 变量定义后不赋值不能使用
- 不使用该变量的时候不会出现编译错误
- 使用该变量是会出现编译错误
- 变量有自己的作用范围,作用范围是自己定义的一对花括号以内
- 变量不允许重复定义
数据类型转换
自动转换
- 范围小的数据类型转换为范围大的数据类型时
byte -> short -> int -> long -> float -> double
- boolean不参与类型转换
强制转换
- 范围大的数据类型转换为范围小的数据类型时
被转后的数据类型 变量名= (被转后的数据类型)原数据
- 转换过程中会造成不可避免的数据损失
- 强制转换没有具体的需求时不允许做
运算符
运算符 | 运算规则 |
---|---|
+ | 加法,连接 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取模,获取余数 |
++/– | 自增一/自减一 |
赋值运算符
运算符 | 运算规则 |
---|---|
= | 赋值 |
+= | |
-= | |
*= | |
/= | |
%= |
比较运算符
- 比较运算符的返回值都是boolean类型
运算符 | 运算规则 |
---|---|
== | |
= | |
<= | |
!= | |
> | |
< |
逻辑运算符
运算符 | 运算规则 |
---|---|
& | 有false则为false |
1 | 有true则为true |
! | 取反 |
^ | 两边相同则为false,不同则为true |
&&(短路与) | 一边是false,另一边不运算 |
11(短路或) | 一边是true,另一边不运算 |
* 短路与和短路或可以提升运算效率
* 日常编程中用三个,分别是取反、短路与、短路或
三元运算符
布尔表达式? 结果1 : 结果2 ;
#基础语法
Scanner
- Scanner类可以允许用户在命令行中接受键盘的输入
Random(随机数类)
- 随机数是伪随机数
- 随机数是JVM根据写好的算法生成出来的
- 不存在真正的随机数
步骤:
- 导入包(java.util.Random)
- 创建Random类型的变量
通过”变量.”的方式调用Random中的功能产生随机数
Random random = new Random();
方法
random.nextInt(100);
产生随机数,范围是0~99;random.nextDouble();
产生随机数的范围是固定的,在0.0~1.0之间(不包含1.0);
do…while循环
do {
…
}
while(…)
编写格式
- 先在do里面写循环体
- 再在while里面写循环条件
- 无条件先执行一次
无限循环
while(true){…}
for(;;){…}
基础语法
switch
case的穿透性
switch(week) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("Weekday");
break;
case 6:
case 7:
System.out.println("Restday");
break;
- case后面没有break,就会一直向下穿透
- 一直到末尾或者break才会停止穿透
JVM内存划分
- 系统内存由操作系统划分
- 虚拟机默认内存大小为64MB
JVM又对自己内存进行详细的划分
划分为五个区域
- 寄存器
- 内存和CPU之间
- 本地方法栈
- JVM调用系统中的功能
- 方法和数据共享区
- 运行时期的字节码文件要进入的地方
- 方法栈
- 所有的方法运行的时候进入的内存
- 堆
- 存储容器和对象
- 存储容器和对象
- C++开空间不用管,清理空间需要自己动手
- Java自动清理空间
数组
- 数组是用来存储同一个数据类型*多个元素的一个容器*
- 数组长度是固定的
- 数组中存储的元素类型要求一致
定义方式
int [] arr = new int [25];
int [] arr = new int [] {15, 20, 9, 8};
int [] arr = {15, 20, 9, 8};
- 在编程中只用第一种和最后一种
异常
- 数组越界
- 空指针
快捷键
eclipse
- Alt + /
自动补齐 - Ctrl + Shift + F
代码格式化 - Ctrl + Shift + /
多行注释 - *Ctrl + Shift + *
打开快捷键(不需要全部选中,只需要光标在内部就可以) - Ctrl + Shift + o
导包快捷键 - Alt + 上下箭头
移动当前代码(不需要选中) - Ctrl + Alt + 上下箭头
复制当前代码行(和Intel核心显卡有冲突)
会转屏 - Ctrl + D
删除当前行 - Ctrl + 1
意见提示功能
- 大叉子属于语法错误(Eclipse可以帮助解决)
- 小叉子属于一般错误(Eclipse无法解决)
面向对象
- 面向过程:我该怎么做
- 面向对象:我该让谁来做
面向对象的好处
- 更符合人们的思考习惯
- 面向过程更多体现的是执行者,面向对象更多的体现是指挥者(指挥对象做)
- 面向对象的思维将复杂的问题简单化
举例
- 将大象装进冰箱
- 冰箱.openDoor();
- 冰箱.save(大象);
- 冰箱.closeDoor();
类和对象的关系
- 类是对某一类事物的抽象描述
- 对象用于表示现实中该类事物的个体
封装的概述
面向对象有三大特征:
* 封装
* 继承
* 多态
封装表现
- 方法就是一个最基本封装体
- 类其实也是一个封装体
封装的好处
- 提高了代码的复用性
- 隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。
这是核心之一,也可以理解为就是封装的概念 - 提高了安全性