行至二部第三周工作总结
生活就是在不停的奔跑中,回首过去,有多少人在你身后,有多少人跑在你的前方,你的目标是什么,你的终点又在哪里?我们从哪里启航,又将在哪里靠岸?我的回答是,我将从双体启航,一路奔跑,不停的超越,直至跑到自己梦想的地方。无悔便好!
- 软件技术方面
(一)学习的内容
1.数组知识的回顾,数组的三种定义方法。
2.数组的最值讲解。
3.讲解创建方法,首先是方法名,里面放参数(形参),返回值。
4.讲解上周作业,强调了注释规范(对齐代码,注释在代码上方),以及命名要见名思意。
5.二分查找法、冒泡排序和选择排序。
6.String字符串教学,String有两种方式初始化:new String() 和直接双引号赋值。
7.面向对象的三项特征:封装、继承、多态。
8.方法重载:编译器根据参数的类型和数量来确定调用哪个方法。
(二)学会的内容
1. 二分查找法:找到数组的中间元素;如果目标元素等于中间元素,则查找结束;如果目标元素小于中间元素,则继续在左侧区域查找;如果目标元素大于中间元素,则继续在右侧区域查找;如果查找范围缩小到只剩一个元素,且这个元素不是目标元素,则查找结束。public static int binarySearch(int[] ay,int tagNum){
int min = 0,max = ay.length-1,middle;
while (min <= max) {
middle = (min + max )/2;
if(ay[middle]<tagNum){
min = middle + 1;
}else if (ay[middle]>tagNum){
max = middle - 1;
}else{
return middle;
}
}
return -1;
}
2.冒泡排序:数组的第一个元素开始,逐个比较相邻的两个元素,如果前面的元素比后面的元素大,则交换这两个元素的位置;继续比较下一对相邻的元素,直到最后一个元素,此时最后一个元素应该是数组中最大的一个元素;重复以上步骤,但是每次比较的区间缩小1个元素,直到没有任何一对相邻的元素需要交换位置。
public static void bubbleSort(int[] ay) {
/**
* 控制多少次
*/
for (int i = 0; i < ay.length - 1; i++) {
/**
* 负责交换位置
*/
for (int j = 0; j < ay.length - i - 1; j++) {
if (ay[j] > ay[j + 1]) {
int temp = ay[j];
ay[j] = ay[j + 1];
ay[j + 1] = temp;
}
} }
}
3.选择排序:从数组的第一个元素开始,设这个元素为最小值;
遍历数组,如果有比最小值更小的元素,则将该元素设为最小值;遍历完数组后,将最小值与数组的第一个元素交换位置;从数组的第二个位置开始,重复以上步骤,直到排序完成。
public static void selectSort(int[] ay){
/**
* 控制次数
*/
for (int i = 0; i < ay.length; i++) {
int minIndex = i;
//minIndex是当前要排序的位置
//应该和后面的那些数进行比较(j=j+1)
for (int j = i+1; j < ay.length; j++) {
if(ay[minIndex] > ay[j]){
minIndex = j;
}
}
if(minIndex != i){
int temp = ay[i];
ay[i] = ay[minIndex];
ay[minIndex] = temp;
}
}
}
4.方法:concat():将两个字符串连接在一起。
equals():比较两个字符串或对象是否相等。
indexOf():返回指定子串在字符串中第一次出现的位置索引。
contains():检查字符串中是否包含指定子串。
substring():从字符串中提取指定范围的子串。
String str = "HelloWorld";
String subStr = str.substring(5, 10);
// 结果为 "World"
5.字符串的拼接:/**
* 以下两个是专门用来拼接字符串的类
* 拼接过程中不创建新对象
* 节省内存,效率更高
* StringBuilder 非线程安全
* 作为局部变量时使用
* StringBuffer 线程安全
* 作为类成员变量时使用
*/
long t1 = System.currentTimeMillis();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 100000; i++) {
sb.append(i);
}
long t2 = System.currentTimeMillis();
System.out.println(t2 - t1);
6.面向对象编程的三个步骤:创建类 public class Car{};
创建对象 Car myCar = new Car();
指挥对象 myCar.方法();
面向对象:所有的类我们不写构造函数的时候,默认会有一个无参数的构造函数;当我们写了我们自己定义的构造函数后,无参的构造函数就会消失;构造函数没有返回值;方法名和类名一样;构造函数可以私有化
7.static:静态的 共享的 类变量(当类加载的时候,这个空间就分配了)
访问方式: 类名.变量名
static 还可以修饰方法
被修饰的方法被成为:静态方法,共享方法,类方法
静态方法只能使用静态的属性,不能使用实例的属性
静态的只能使用静态的方法和实例
实例的方法可以使用静态的方法和实例
静态的方法不可以使用实例的方法和属性
static方法中,不能使用this方法
(三)存在的问题
1.面向对象的课程中,相较于我这种从小白,理解知识与转换较为困难,吸收得较慢。
2.课前没有足够的预习,对于新的知识点很陌生。
3.IDEA使用不够熟练,包括快捷键的使用。
4.某些知识思维上理解了,但是实际使用达不到理想的效果。