Java自学练习

本周计划:课程的(1——20天)

firstday:学习了Day1——5

1、Java中的基本运算:加+、减-、乘*、除/、取余%,复合运算以及自增(a++)自减(a--);

其中要特别注意数值的类型,整数还是浮点数。

2、if语句:

(1)if and then

(2)if语句的嵌套:

if(布尔表达式 1){
 
}else if(布尔表达式 2){
  
}else if(布尔表达式 3){
   
}else {
 
}

3、switch语句:

(1)熟悉了switch、case、break、defalut的用法

(2) switch:值只能四种类型(byte、short、int、char)

本次练习判断成绩的等级,switch的参数为int型

    break:如果没有下边的都读取

    default:可以随便放置,都是最后执行

    switch结束两种方式:执行到break或者switch的}

最开始我在编写测试方法时,在0—59分的选择语句后忘记加break;导致运行后显示数据错误。所以一定需要注意!

重复的case值会报错。

4、掌握了判断闰年的方法:

年份对4取余为0并且对100取余不为0,或者年份对400取余等于0;

并且连接符号用&&,或||;

注意:

(1)main函数里的代码越少越好;

(2)方法或函数的调用可以增加代码的复用性

secondday:Day6—Day8

1、学习了for的用法:

格式:for(循环变量类型 循环变量名称:要被遍历的对象){

          循环体

}

2、矩阵相加:矩阵与数的相加,矩阵与矩阵相加

矩阵相加一定要注意分清楚行列,用for循环及其嵌套(二重循环)

3、矩阵相乘:

(1)for的三重循环,并且两个矩阵必须满足第一矩阵的行数等于第二个矩阵的列数

(2)在输入时,也要注意考虑异常数据的输入情况。

 注意:

1、Arrays.deepToString()主要用于数组中还有数组的情况,而Arrays.toString()则相反,对于Arrays.toString()而言,当数组中有数组时,不会打印出数组中的内容,只会以地址的形式打印出来。

例如:

thirdday:学习了Day9——10

1、学习了While语句:

while的使用:

(1)初始化条件

while((2)循环条件——boolean类型){

(3)循环体;

(4)迭代条件;

}

执行顺序:(1)——(2)——(3)——(4)——(2)——(3)——(4)......(2)

2、综合任务完成:

要求:矩阵存入学生和成绩,成绩利用随机函数生成,并找出成绩最高和最低的学生

(1)熟悉了随机数的生成:

主要语句是:

Random rand = newRandom();

rand.nextInt(100);//生成100以内的整数,【0,100)

最终的公式:

int randNumber =rand.nextInt(MAX - MIN + 1) + MIN; // randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数

(2)continue与break的区别:

continue, 它是指继续跳过本次循环后面的代码,直接进入下一次循环. 而 break 是跳出整个循环体.

例:

(3)在数组中找到最小值与最大值:

初始化最大值与最小值,遍历数组, 将最大值与最小值与其一一对比,更新最大值与最小值的值,并获取坐标,然后输出。

fourthday:

学习了Day11

主要学习了数据结构的顺序表:

 (1)顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中。

  1. 静态顺序表:使用定长数组存储。
  2. 动态顺序表:使用动态开辟的数组存储。

 顺序表的优点:便于随机访问查找

缺点:不便于插入、删除(末尾插入或删除比较方便,中间部分比较麻烦,时间复杂度为O(n))。

(2)算法效率的衡量——时间复杂度:程序总共要执行的基本运算步骤的总和。

时间复杂度的几条基本计算规则:
1.基本操作,即只有常数项,认为其时间复杂度为O(1)
2.顺序结构,时间复杂度按加法进行计算
3.循环结构,时间复杂度按乘法进行计算
4.分支结构,时间复杂度取最大值

5、判断效率时,只需找到操作数量的最高次项。

(3)toString方法:

toString()方法在Object类中定义,其返回值是String类型,返回类名和他的引用地址,

在进行与其他类型数据的连接操作时,自动调用tostring()方法。

fifithday:

学习了Day12

主要学习了顺序表中的增加、删除、查找。

顺序表的增加:

(1)注意异常情况,如顺序表已满无法插入,或顺序表需要插入的位置在边界外,均需要进行检测,注意程序的健壮性。

(2)顺序表的插入可分为头插、中间插入、尾插

头插:for(int i=size-1;i>=0;i--) {
        array[i+1]=array[i];
    }

arrray[0]=value;

size++;

尾插:

array[size++] = element;

中间插入:

for(int i = size-1; i >= index; i--) {

array[i+1] = array[i];

}

array[index] = element;

size ++;

主要为,位于插入位置之后的元素后移

顺序表的删除:

(1)也要注意异常情况,如位置超出边界,删除位置没有数据等。强调程序的健壮性。

(2)for(int i = index; i <= size-1; i++) {

array[i] = array[i+1];

}

size --;

主要为,后面的元素前移

顺序表的查找:

(1)注意不超过边界,从头开始遍历查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值