1. 疑问
    1. day02
    2. day03
    3. day04
  2. 王克晶
    1. 每天内容
      1. PPT
      2. 经典案例
      3. 课后作业
  3. 刘苍松
    1. #二进制
    2. ##什么是二进制
    3. ##计算机如何处理二进制
    4. 16进制
    5. 二进制补码
      1. 补码:将二进制全排列分一半当做负数。
      2. -n=~n+1
      3. ~符号: ~n意为 n值的二进制中0与1互换 记住:0与-1补-->n与-(n+1)补
      4. 子主题 5
      5. 凑巧对称补码,注:对极值不生效
    6. 2进制运算
      1. ~取反运算
      2. &与运算 和 >>> 右移运算
        1. & :面具=掩码(1的交集)
        2. 数据截取
      3. |按位或运算(类似加法但不进位) 和 <<左移运算
        1. 数据拼接
      4. 移位运算的数学意义
        1. 移动小数点计算:
        2. 10进制小数点移动一次,数据变化10倍
        3. 2进制小数点移动一次,数据变化2倍
      5. >>与>>>
        1. 正数情况下一样!
        2. 负数情况不同:
          1. >>高位补1
          2. >>>高位补0
      6. 能用移位计算的时候用以为计算比乘法计算效率更高!
      7. 提示:没有<<<运算符,因为只有高位才有符号位
  4. day01
    1. 计算机分类
    2. 1.Linux系统
      1. 1)开源、免费
      2. 2)目录结构不同
        1. Linux系统
          1. /
          2. etc
          3. home
          4. soft01
          5. mnt
          6. sdcard
          7. cdrom
      3. 3)基于命令操作(快速)
        1. pwd:显示当前目录
        2. cd:改变当前工作目录
        3. ls:查看当前工作目录的内容
        4. cd .. :返回上级目录
        5. 相对路径和绝对路径
          1. 绝对路径:相对于根目录的位置,以/开头
          2. cd/m/n
          3. 相对路径:相对于当前目录的位置,无需以/开头
          4. cd m/n
        6. 练习
          1. 1.找/home/soft01/tts9/eclipse
          2. 2.逐级按照相对路径找/home/soft01/tts9/eclipse
    3. 2. Java开发环境
      1. 1)编译运行过程:
        1. 1.1)编译期: Java源文件.java--->javac编译--->.class
        2. 1.2)运行期: JVM加载.class并运行.class
      2. 2)名词解释
        1. JVM
          1. Java虚拟机(系统匹配) 加载.class并运行.class
        2. JRE
          1. Java运行环境: JRE=JVM+java系统类库(运行环境)
        3. JDK
          1. java开发工具包 JDK=JRE+编辑、运行等命令工具
        4. 运行Java的最小环境为JRE,开发Java的最小环境为JDK
      3. 3)配置环境变量:了解
        1. JAVA_HOME:只想Java JDK安装目录,
        2. CLASSPATH表示累的搜索路径,简单的可以使用(.),值
        3. PATH:只指向dk下的bin目录
    4. 3.eclipse IDE
      1. workspace 默认工作空间
      2. 开发步骤
        1. 新建Java项目/工程
        2. 新建Java包
        3. 新建Java类
      3. 注释:解释性文本
        1. 1)单行注释//
        2. 2)多行注释/* */
        3. 3)文档注释/** */
    5. 练习
      1. 1)新建Java项目MyProject
      2. 2)在MyProject项目中新建Java包mypackage
      3. 3)在mypackage包中新建Java类HelloWorld,main()中:输出HelloWorld
      4. 4)在mypackage包中新建Java类Test,main()中:
        1. 输出今天天气不错,不换行
        2. 输出心情也不错,换行
        3. 输出当日事当日毕,不换行
        4. 输出欢迎大家来到达内,换行
        5. 输出......
    6. 经典案例
      1. JDK及Eclipse目录结构操作
      2. JDK的安装及配置
      3. 控制台版的JAVA HelloWorld
      4. 使用Eclipse开发Java应用程序
  5. day02
    1. 1.变量
      1. 声明
        1. 包含:数据类型 变量名;
        2. 未声明变量不能使用
      2. 命名
        1. 1)符合标识符规则
          1. 数字、字母、_、$组成 且不能以数字开头
          2. 大小写敏感
          3. 不能用关键字
          4. 建议不使用中文
        2. 2)命名法
          1. 见名知意
          2. 驼峰命名法
          3. 变量命名: myScore
          4. 帕斯卡命名法
          5. 类命名:HelloWorld
      3. 初始化:第一次赋值
        1. 3.1)声明同时初始化:
        2. 3.2)先声明后初始化:
        3. 未经初始化不能使用
      4. 使用
        1. 4.1)对变量的操作就是对它所存的数的操作
        2. 4.2)变量的操作必须与数据类型匹配
        3. 4.3)变量使用前必须声明并初始化
      5. 练习:
    2. 2.基本数据类型
      1. 8种基本数据类型
      2. int 整型,4个字节,21亿
        1. 整数直接量默认为int,但不能超范围
        2. 整数相除,结果还是整数,小数位无条件舍弃
        3. 运算时若超出范围,则发生溢出,
      3. long:长整型,8个字节
        1. 长整型直接量需在数字后家L/l
        2. 运算时,右边的直接量为int,有可能溢出,建议在第一个数字后+l
        3. System.CurrentTimeMillis() 获取自1970.1.1零时到此时此刻的毫秒数
      4. double:浮点型,8个字
        1. 浮点数职的直接量默认为double型 若想表示float,需要加F/f
        2. double数据运算时会出现舍入误差, 精确场合不能使用
      5. boolean 布尔型,1个字节
        1. 只能存储true or false
      6. char 字符型,2个字节
        1. Unicode编码格式------固定16位, 每个字符(char)都对应一个编码(int) 0到65535
        2. 字符必须放在单引号''之内
        3. 特殊字符许通过"\"来转义
    3. 3.基本数据类型间的转换
      1. 1)两种方式
        1. 自动类型转换:从小类型到大类型
        2. 强制类型转化:从大类型到小类型
          1. 可能溢出可能丢失精度
      2. 2)两点规则
        1. 2.1)整数值直接量可以直接赋值给byte,short,char
        2. 2.2)byte,short,char类型 参与运算时, 会被转化为int后在参加运算(“+=”此类运算不会被自动转化为int)
    4. 4.Scanner的用法
      1. 1)在package下: import java.util.Scanner;
      2. 2)在main()方法中: Scanner scan= new Scanner( System.in );
      3. 3)在2之后: System.out.println("请输入年龄:") int age = scan.nextInt();
    5. 练习
    6. 经典案例
      1. 1.变量使用常用错误汇总
        1. 1.1 问题
        2. 1.2 方案
        3. 1.3 步骤
          1. 步骤一:使用未经声明的变量
          2. 步骤二:使用不符合Java标识符命名规则的变量
          3. 步骤三:使用未经初始化的变量
          4. 步骤四:变量的赋值与变量的类型不匹配
        4. 1.4 完整代码
      2. 2.整数类型(int、long)使用常见问题汇总
        1. 2.1 问题
        2. 2.2 方案
        3. 2.3 步骤
          1. 步骤一:整数直接量超出了整数的范围
          2. 步骤二:关于整数的除法
          3. 步骤三:整数运算的溢出
          4. 步骤四:表示long直接量,需要以 L 或 l 结尾
        4. 2.4 完整代码
      3. 3.浮点类型(float、double)使用常见问题汇总
        1. 3.1 问题
        2. 3.2 方案
        3. 3.3 步骤
          1. 步骤一:浮点数的直接量为double类型
          2. 步骤二:浮点数存在舍入误差问题
        4. 3.4 完整代码
      4. 4.对char类型变量的各种赋值方式汇总
        1. 4.1 问题
        2. 4.2 方案
        3. 4.3 步骤
          1. 步骤一:字符类型存储中文
          2. 步骤二:整数类型和char类型的关系
        4. 4.4 完整代码
      5. 5.类型转换常见问题汇总
        1. 5.1 问题
        2. 5.2 方案
        3. 5.3 步骤
          1. 步骤一:强制转换时的精度丧失和溢出
          2. 步骤二:数值运算时的自动转换
          3. 步骤三:byte、char、short转换为int的问题
        4. 5.4 完整代码
      6. 6.年龄判断程序
        1. 6.1 问题
        2. 6.2 步骤
          1. 步骤一:定义类及 main方法
          2. 步骤二:读取控制台输入
          3. 步骤三:判断年龄所在的范围
        3. 6.3 完整代码
  6. day03
    1. 1.运算符
      1. 1.1算术运算符
        1. 7个:+、-、*、/、%、++、--
        2. 1)%:取模/取余,余数为0即为整除
          1. 只能适用于整数及char类型
        3. 2)++/--:自增1/自减1,可在变量前也可在变量后
          1. 2.1)单独使用时,在前在后无差别
          2. 2.2)被使用时,在前在后有差别
          3. a++的值为a
          4. ++a的值为a+1
      2. 1.2关系运算符
        1. 1)六个:>、>=、<、<=、!=、==
        2. 2)关系运算只有两种结果: true或false (可直接输出也可赋值给boolean)
      3. 1.3逻辑运算符
        1. && :短路与(并且)
        2. || :短路或
        3. ! :逻辑非
        4. 短路逻辑!!
      4. 1.4赋值运算符
        1. =,+=,-=,*=,/=,%=
        2. a+=1 -->a=a+1
      5. 1.5连接字符串运算符+
        1. 两边都是数字,则做算术运算
        2. 出现字符串,则作字符串连接
      6. 1.6 三目运算符
        1. 1)语法:boolean表达式?数1:数2;
        2. 2)执行过程:
          1. 计算boolean的值:
          2. 若为true,则整个表达式的结果为数1
          3. 若为false,则整个表达式的结果为数2
    2. 2.分支结构
      1. 2.1 if...:(1路)
        1. 语法
        2. if语句的大括号不要省略
      2. 2.2 if...else...(2路)
        1. 语法
      3. 2.3 if...else if(多路)
        1. 语法
      4. 2.4 switch...case:(多路)
        1. 语法
        2. 优点:效率高、结构清晰
        3. 缺点:整数,相等
    3. 练习
    4. 经典案例
      1. 1.闰年判断程序
        1. 1.1 问题
        2. 1.2 方案
        3. 1.3 步骤
          1. 步骤一:定义类及 main方法
          2. 步骤二:读取控制台的输入
          3. 步骤三:闰年判断
          4. 步骤四:输出结果
        4. 1.4 完整代码
      2. 2.完成收银柜台收款程序V2.0
        1. 1.1 问题
        2. 1.2 方案
        3. 1.3 步骤
          1. 步骤一:定义类及 main方法
          2. 步骤二:读取控制台输入
          3. 步骤三:计算所购商品总价并判断是否打折
          4. 步骤四:计算找零并输出结果
        4. 1.4 完整代码
      3. 3.完成收银柜台收款程序V3.0
        1. 1.1 问题
        2. 1.2 方案
        3. 1.3 步骤
          1. 步骤一:使用if-else修改上一案例
        4. 1.4 完整代码
      4. 4.完成成绩等级输出程序
        1. 1.1 问题
        2. 1.3 步骤
          1. 步骤一:定义类及 main 方法
          2. 步骤二:读取控制台的输入
          3. 步骤三:使用 if-else 语句进行判断
        3. 1.4 完整代码
      5. 5.完成命令解析程序
        1. 1.1 问题
        2. 1.2 方案
        3. 1.3 步骤
          1. 步骤一:定义类及 main 方法
          2. 步骤二:读取控制台的输入
          3. 步骤三:使用 switch-case 解析命令
        4. 1.4 完整代码
  7. day04
    1. 1.循环结构
      1. **循环三要素**
        1. 1)循环变量的初始化
        2. 2)循环的条件(以循环变量为基础)
        3. 3)循环变量的改变(向着循环的结束改变)
        4. 循环变量:在循环过程中反复改变的那个量
      2. 1.1while
        1. 执行逻辑(语法)
        2. 先判断后执行,有可能一次都不执行循环体
        3. break跳出循环(结束循环)
        4. continue跳过循环(循环继续)
      3. 1.2do...while
        1. 语法
        2. 先执行,后判断,至少执行一次; 当第一要素跟第三要素一样时,更适用!
      4. 1.3for
        1. 语法
        2. 固定次数的循环首选for
        3. for表达式的3种特殊用法
          1. for语句实现循环时需要用分号;分隔
          2. 特殊方式1:表达式1位置内容为空
          3. 特殊方式2:表达式3位置内容为空
          4. 特殊方式3:表达式1,2,3位置内容均为空
      5. 1.4 break:跳出循环 continue:跳过剩余循环体,进入下一轮
        1. break一般跟if一起用
    2. 练习
  8. day05
    1. 1. 三中循环结构的更佳使用情况
      1. 1)while
      2. 2)do...while:一三要素(开始、递变一样)
      3. 3)for: 存户按次数固定
    2. 2. 嵌套循环
      1. 1)循环中套循环,常常多行多列时使用, 一般外层控制行,内层控制列
      2. 2)执行规则: 外层走一次,内层走所有次循环
      3. 3)建议:循环层数越少越好, 若超3层才能完成,说明效率低下
      4. 4)break只能跳一层循环, 在某种情况下,跳出多层循环的需求几乎没有
    3. 3.程序=算法+数据结构
      1. 1)算法:解决问题的流程、步骤(顺序、分支、循环)
      2. 2)数据结构:将数据按照某种特定的结构来保存数怎么存
      3. 设计良好的数据结构会一定程度上决定 算法的简易程度
      4. 做项目最开始先考虑做数据结构,最优化数据结构的设计
    4. 4. 数组:
      1. 1)概念:相同数据类型的元素集合
      2. 2)数组也是一种数据类型(引用类型)
      3. 3)数组的定义: int [ ] arr =new int [5];
      4. 4)数组的初始化 int [] arr=new int[4]; //0,0,0,0, int [] arr={1,3,5,7}; int [] arr=new int[]{1,3,5,7};
      5. 5)数组的访问:
        1. 5.1)通过(数组名.length)获得数组的长度
        2. 5.2)通过下标来访问数组中的元素arr[i] 下标从0开始,最大到arr.length-1 。
      6. 6)数组的遍历: 给数组所有元素逐个赋值/逐个输出;
      7. 7)数组的复制:
        1. System.arraycopy();
        2. Arrays.copyOf(类型[]orifinalArray,int newLength)
          1. 直接从从第一个元素开始复制
          2. newLength大于arr.length,则扩容
          3. newLength小于arr.length,则截取
      8. 8)数组的排序
        1. Arrays.sort(arr);
        2. 冒泡排序:
          1. 四个数冒三轮
          2. 每一轮都从第一个元素开始冒; 每一次都是和它的下一个元素比
          3. 冒出来的就不带它玩了
        3. 降序冒泡
    5. 练习