20165228 2017-2018-2 《Java程序设计》第2周学习总结

时间:2022-08-07 17:31:38

20165228 2017-2018-2 《Java程序设计》第2周学习总结

教材学习内容总结

  • 标识符:名字

    组成:字母/下划线/美元符号或数字

    注意:标识符的第一个字符不能是数字字符,且标识符不能是Java关键字以及ture、false和null
  • Unicode字符集
  • 关键字:有特殊用途,例如int、double、float、class

    基本数据类型:
  • 逻辑类型:boolean(只有true或者false)
  • 整数类型:byte、short、int、long

    其区别:取值范围不同,占有内存空间不同。

    byte -128~+127 1字节

    short

    int

    long 8字节
  • 字符类型:char

    赋值:char c = ‘ XX ’ ; XX需要时unidode字符集里的字符

    转化:(int)‘c’ 指的是将字符c转化为int类型表示

    转义:“\u+地址(16进制)”表示位置上的字符

    浮点类型:float(8位有效)、double(16位有效)

    赋值:float m =12.123456f;

    double n =12.12345678901234;

    注意:精度从低到高的排序是:byte、short、char、int、long、float、double

    低精度赋值给高精度时需要转化,高精度赋值给低精度时则不用,但会损失精度

    具体程序中的java:
System.out.println("汉字:"+chinaWord+"的位置:"+(int)chinaWord);

“+”表示首尾相接,输出的结果为“汉字:X的位置:xxxx”

  • 输入

    步骤(1)创建一个Scanner对象
Scanner reader = new Scanner(System.in);

步骤(2)Scanner对象调用方法读取用户键盘输入的数据(等待用户键盘输入)

int m =reader.nextInt();

红标的字类型应一致

  • 输出
System.out.println();
System.out.printf("格式",值列表)

-数组:一些类型相同的变量组成的集合

声明数组:

类型  []  数组名;

类型  数组名[]

例:int [] a

创建数组:

数组名 = new 类型[整值];
a = new int [5]

计算一维数组长度(对二维数组使用该命令时显示的是一维数组的个数):

数字名.length

-数组的初始化

一维数组的初始化:

int [] 数组名 ={a,b,c,...};

二维数组的初始化:

int [] [] 数组名 ={ {...}, {...}, {...}, {...}};

在数组生成的同时就已初始化

-数组的引用

即数组本身存放的值

两个类型相同的数组,一旦二者具有相同的引用,那么二者就具有一样的单元

  • 运算符与表达式

    如果表达式中有双精度浮点数(double型数据),则按双精度进行运算

    如果表达式中最高精度是单精度浮点数(float型数据),则按单精度进行运算

    如果表达式中最高精度是long型整数,则按long精度进行运算

    如果表达式中最高精度低于int型整数,则按int精度进行运算

    Java允许把不超过byte,short和char的取值范围的算术表达式的值赋给byte,short和char型变量

    通过变量给另一变量赋值时例如x = m + 'a';应写成
x = (byte)(m + 'a');

instanceof运算符: 类+对象

对象+instanceof+类

检验对象是不是该类,若是则输出ture,若不是则输出false

-语句概述

方法调用语句:例如System.out.println("Hello");

表达式语句:由一个表达式构成一个语句,即表达式尾加上分号

复合语句:可以用{ }把一些语句复合起来构成复合语句

空语句:一个分号则是一跳空语句

控制语句:控制语句分为条件分支语句、开关语句和循环语句

package语句和inport语句:与类、对象有关

  • 条件分支语句
if(条件表达式) {
//if操作
}
if(条件表达式) {
//if操作
}
else {
//if操作
}
if(条件表达式) {
//if操作
}
else if(条件表达式){
//else if操作
}
  • switch开关语句(单条件多分支)
switch(表达式){
case 常量值1:
若干个语句
break;
case 常量值2:
若干个语句
break;
case 常量值n:
若干个语句
break;
default:若干语句
  • 循环语句
while (表达式) {
//循环体
}
  • break和continue语句

    break和continue使用在循环体中。

    break:运行到break时立刻结束整个循环语句

    循环体运行到满足表达式为止

    continue:运行到continue直接跳出本次循环,进入到下一一次循环中
  • 数组与for语句

    传统方式:
for(int n=0;n<a.length;n++) {
System.out.print(a[n]+ " ");
}
System.out.println();
for(int i:a) {
System.out.print(i+" ");
}
for(声明循环变量:数组的名字) {
...
}

教材学习中的问题和解决过程

  • 问题1:高精度变量赋值给低精度变量为什么可能会损失精度?
  • 问题1解决方案:高精度变量能够赋值的数更多,当其值将大于低精度最大可存储数值时,低精度变量储存的值其实是循环值
  • 问题2:为什么1.5f与1.5不相等?
  • 问题2解决方案:1.5是double型数据,而1.5f是float型数据,1.5与1.5f仅前面float型数据的位数相等,后面的double型比float型数据高的精度就不等了

代码调试中的问题和解决过程

  • 问题1:在编译某个程序时,提示“错误:需要class,interface或enum”
  • 问题1解决方案:检查程序时发现把"{"输成了中文符号"{"导致调试失败

代码托管

20165228 2017-2018-2 《Java程序设计》第2周学习总结

本周我调整了代码的文件夹,根据不同单元和另外找的代码分到不同文件夹里,所以本周的代码数应为统计的代码数459减去上周的235,本周实际敲的代码总行数为224.

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 错题及原因,理解情况

    错题:带包的代码编译运行测试

    原因:敲代码的时候出错,然后一直编译失败。当时没有检查出原因

    理解情况:已经掌握带包的代码编译及运行

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 25篇 400小时
第一周 235/235 1/1 15/15
第二周 224/459 2/3 15/30