2017-4-23:学习笔记

来源:互联网 发布:网络编辑前景分析 编辑:程序博客网 时间:2024/05/29 08:48

培训部分知识点总结


由于已经学完了
大半本书的java教程,
好多知识点都已经了解了,
于是就不再进行记录

基础语法


变量使用中的注意事项

  • 变量定义后不赋值不能使用
    • 不使用该变量的时候不会出现编译错误
    • 使用该变量是会出现编译错误
  • 变量有自己的作用范围,作用范围是自己定义的一对花括号以内
  • 变量不允许重复定义

数据类型转换

自动转换

  • 范围小的数据类型转换为范围大的数据类型时
    byte -> short -> int -> long -> float -> double
  • boolean不参与类型转换

强制转换

  • 范围大的数据类型转换为范围小的数据类型时
    被转后的数据类型 变量名= (被转后的数据类型)原数据
  • 转换过程中会造成不可避免的数据损失
  • 强制转换没有具体的需求时不允许做

运算符

运算符 运算规则 + 加法,连接 - 减法 * 乘法 / 除法 % 取模,获取余数 ++/– 自增一/自减一

赋值运算符

运算符 运算规则 = 赋值 += -= *= /= %= * **byte b = b + 1** 会报错 * 1是**int**类型,在加法运算式b会进行类型提升 * **b + 1**此时是一个占有四字节的**int**类型数据 * 大范围转换为小范围,无法自动转换,需要强制转换* **byte b += 1**不会报错 * 因为该表达式等同于**byte b = (byte)(b + 1)*** 推荐使用赋值运算符

比较运算符

  • 比较运算符的返回值都是boolean类型
运算符 运算规则 ==
=
<= != > <

逻辑运算符

运算符 运算规则 & 有false则为false 1 有true则为true ! 取反 ^ 两边相同则为false,不同则为true &&(短路与) 一边是false,另一边不运算 11(短路或) 一边是true,另一边不运算

* 短路与短路或可以提升运算效率
* 日常编程中用三个,分别是取反短路与短路或

三元运算符

布尔表达式? 结果1 : 结果2 ;

#基础语法


Scanner

  • Scanner类可以允许用户在命令行中接受键盘的输入

Random(随机数类)

  • 随机数是伪随机数
  • 随机数是JVM根据写好的算法生成出来的
  • 不存在真正的随机数

步骤:

  1. 导入包(java.util.Random)
  2. 创建Random类型的变量
  3. 通过”变量.”的方式调用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无法解决)

面向对象

  • 面向过程:我该怎么做
  • 面向对象:我该让谁来做

面向对象的好处

  • 更符合人们的思考习惯
  • 面向过程更多体现的是执行者,面向对象更多的体现是指挥者(指挥对象做)
  • 面向对象的思维将复杂的问题简单化

举例

  • 将大象装进冰箱
    1. 冰箱.openDoor();
    2. 冰箱.save(大象);
    3. 冰箱.closeDoor();

类和对象的关系

  • 类是对某一类事物的抽象描述
  • 对象用于表示现实中该类事物的个体

封装的概述

面向对象有三大特征:
* 封装
* 继承
* 多态

封装表现

  • 方法就是一个最基本封装体
  • 类其实也是一个封装体

封装的好处

  • 提高了代码的复用性
  • 隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。
    这是核心之一,也可以理解为就是封装的概念
  • 提高了安全性
0 0