Java-软考总结

news/2024/11/30 4:57:04/

软考总结目录

  • 宏观
    •   学习感受
    •   阶段划分
  • 微观
    •   1.自己看书和看视频:
    •   2.学习的知识点和课后题进行结合
    •   3.做往年的软考真题
    •   4.提炼出相对来说难以攻克的问题组织分享和讨论
    •   5.小组讨论做错的题并进行结构化
  • 总结
    • 学习时间上
    • 学习方法上
    • 学习形式上

宏观

  学习感受

  第一次参加软考,感觉一切还是非常顺利的。软考相较于自考来说准备的还是比较充分的。对于学习软考的整个周期当中进行了模块形式的划分,把软考整体的内容进行了逐步学习和总结。和软考小组的伙计们一起讨论。公共性的问题和其他组进行讨论,这个过程是十分重要也是让我们深入学习和很好的理解一个知识点的重要组成部分。

  阶段划分

  学习软考的过程分为以下几个阶段:自己看书和看视频的学习、学习的知识点和课后题进行结合、做往年的软考真题、提炼出相对来说难以攻克的问题组织分享和讨论、小组讨论做错的题并进行结构化。

微观

  1.自己看书和看视频:

  这个阶段是我们丰富我们的知识面,对于一些基本概念的熟悉和掌握。由于软考中的大部分内容在学习自考的时候都有接触过。所以这个阶段进行的速度非常的快。结合三遍读书法和思维导图的学习方法很快的就进行完了软考书和软考视频的学习。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
  软考的每个部分都进行了思维导图的绘制。对于每个思维导图中还会有每个章节的思维导图。因为三遍读书法每一遍的侧重点都是不一样的。

  2.学习的知识点和课后题进行结合

  对于在视频中接触到的知识点或者是在书中学习到的知识点和课后题进行结合,在晚上找一些相关的资料进行更加容易的去理解。
在这里插入图片描述
在这里插入图片描述

  3.做往年的软考真题

  把书中的知识点和课后题目对应完毕之后,明确了每一道题想要考的知识点以及想要我们具体掌握哪些知识了。但是我们最后还是需要考试的。我们需要知道具体考试的时候,题型是什么样子的。有没有一些固定性的格式或者套路在里面。这些是需要我们通过做往年的真题获取到的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  对于一些经常出错的问题进行了记录,并且以软考小组为单位进行了讨论。大家都不清楚的问题,把问题进行划分。划分到每个人的身上进行深入的学习。

  4.提炼出相对来说难以攻克的问题组织分享和讨论

  大家的问题基本上集中在下午题的设计模式和算法当中,对于每个设计模式之间的区分使用场景等内容都不是很清楚。对于每种算法的时间复杂度和空间复杂度也不是很清楚。针对这些内容进行了针对性的学习和分享。知识最怕的就是你研究和讨论,你会发现通过不断的学习和反复的研究你会非常的明白。
在这里插入图片描述
  写了每个算法对应的代码,根据代码分析了时间复杂度和空间复杂度
在这里插入图片描述
  这是堆排序的代码实现

package com.wzl.Algorithm.HeapSort;import java.util.Arrays;/*** @BelongsProject: demo* @BelongsPackage: com.wzl.Algorithm.HeapSort* @Author: Wuzilong* @Description: 堆排序* @CreateTime: 2023-04-29 11:45* @Version: 1.0*/public class HeapSort {public static void heapSort(int[] arr) {int n = arr.length;// 构造大根堆for (int i = n / 2 - 1; i >= 0; i--) {heapify(arr, n, i);}// 交换堆顶元素和最后一个元素,并重新构造堆for (int i = n - 1; i >= 0; i--) {swap(arr, 0, i);heapify(arr, i, 0);System.out.println( Arrays.toString(arr));}}private static void heapify(int[] arr, int n, int i) {int largest = i;int left = 2 * i + 1;int right = 2 * i + 2;if (left < n && arr[left] > arr[largest]) {largest = left;}if (right < n && arr[right] > arr[largest]) {largest = right;}if (largest != i) {swap(arr, i, largest);heapify(arr, n, largest);}}private static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}public static void main(String[] args) {int[] numArray={4,6,3,5,9};heapSort(numArray);}
}

  我分享的内容是分治法:法治算法详解
                    欢迎大家的来访!!!

  针对设计模式进行了二维表的对比和总结:
在这里插入图片描述
每类模式都画了对应的二维表进行比较
在这里插入图片描述
每个模式都画了对应的类图
在这里插入图片描述

在这里插入图片描述
对于学习设计模式中有疑惑的点,也进行了分享。讨论和研究就是我们攻克难题的最好方式
在这里插入图片描述

  5.小组讨论做错的题并进行结构化

  进入到这个阶段大家对于软考的内容都已经有一个大致的了解了。剩余的就是对于一些概念性的内容进行结构化了。比如软件设计的各个模式、软件质量、UML图的对比等内容。这些内容都是需要我们进行结构化的,赋予一些自己理解起来比较容易的意义。结构化的方式有很多种。适合自己能够让自己印象深刻即可。举个例子来说,对于专利和商标权的申请。如果两个人都同时申请了专利不能够确定最终的专利权给谁,不采取抽签的形式。但是如果两个人同时申请了商标权不能够确定最终的商标权给谁,那么就采取抽签的形式来决定。通过结构化的方式印象深刻就是申请专利需要给你钱所以不抽签,申请商标权你需要交钱,所以采取抽签的形式来决定(结构化可能与实际不太符合,方便理解和印象深刻是我们的目的)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

总结

学习时间上

  1. 按时间安排一定要合理,不要快考试了才学习。要把时间划分到每一天的计划当中
  2. 每天学习的内容要和番茄进行结合,以番茄为单位进行。

学习方法上

  1. 和软考小组进行讨论是一个必不可少的部分。讨论的过程中会纠正我们的认识
  2. 将学习的内容进行结构化,结构化让我们的知识彼此之间有了联系。而且印象深刻。达到牵一发而动全身的效果。

学习形式上

  1. 确保每个阶段有输出的产物,比如思维导图、知识之间比对的二维表、博客总结等内容
  2. 学习是需要套路和模板的,每次学习新的内容按照我们一贯的套路学习,把知识点从多个维度去理解和划分就会变的很容易

  今天软考完事了,做题的过程中感觉还是非常简单的。有很多的内容是和软考小组的伙计们讨论的时候遇到的。考试整体下来还是非常顺利的。相较于自考来说也更加的放松。机会都是留给有准备的人的。付出是有回报的。期待软考成绩!!!

在这里插入图片描述

package com.wzl.Algorithm.HeapSort;import java.util.Arrays;/*** @BelongsProject: demo* @BelongsPackage: com.wzl.Algorithm.HeapSort* @Author: Wuzilong* @Description: 堆排序* @CreateTime: 2023-04-29 11:45* @Version: 1.0*/public class HeapSort {public static void heapSort(int[] arr) {int n = arr.length;// 构造大根堆for (int i = n / 2 - 1; i >= 0; i--) {heapify(arr, n, i);}// 交换堆顶元素和最后一个元素,并重新构造堆for (int i = n - 1; i >= 0; i--) {swap(arr, 0, i);heapify(arr, i, 0);System.out.println( Arrays.toString(arr));}}private static void heapify(int[] arr, int n, int i) {int largest = i;int left = 2 * i + 1;int right = 2 * i + 2;if (left < n && arr[left] > arr[largest]) {largest = left;}if (right < n && arr[right] > arr[largest]) {largest = right;}if (largest != i) {swap(arr, i, largest);heapify(arr, n, largest);}}private static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}public static void main(String[] args) {int[] numArray={4,6,3,5,9};heapSort(numArray);}
}
package com.wzl.Algorithm.InsertionSort;import java.util.Arrays;/*** @BelongsProject: demo* @BelongsPackage: com.wzl.InsertionSort* @Author: Wuzilong* @Description: 直接插入排序* @CreateTime: 2023-04-24 11:29* @Version: 1.0*/public class Insert {public static void insertionSort(int[] num){for (int i =1; i<num.length;i++){if (num[i]<num[i-1]){int temp=num[i];for (int j=i; j>=0;j--){if (j>0&&num[j-1]>temp){num[j]=num[j-1];}else{num[j]=temp;break;}}}System.out.println(Arrays.toString(num));}}public static void main(String[] args) {int[] num={2,8,1,4,9,5,7};insertionSort(num);}//    public static void main(String[] args) {
//        int arr[] = {2,6,5,3,1,4,9,8,7};
//        int temp;
//        for (int i=1;i<arr.length;i++){
//            //待排元素小于有序序列的最后一个元素时,向前插入
//            if (arr[i]<arr[i-1]){
//                temp = arr[i];
//                for (int j=i;j>=0;j--){
//                    if (j>0 && arr[j-1]>temp) {
//                        arr[j]=arr[j-1];
//                    }else {
//                        arr[j]=temp;
//                        break;
//                    }
//                }
//            }
//        }
//        System.out.println(Arrays.toString(arr));
//    }}
package com.wzl.Algorithm.Partition;/*** @BelongsProject: demo* @BelongsPackage: com.wzl.Algorithm.Partition* @Author: Wuzilong* @Description: 分治算法* @CreateTime: 2023-04-26 09:27* @Version: 1.0*/public class Client {/*** @Author:Wuzilong* @Description:写基本的逻辑,如何实现的方法* @CreateTime: 2023/5/8 9:36* @param1: value查找的元素* @param2: 数组* @param3: 查询的起始位置* @param4: 查询的结束位置* @return:**/public static int seek(int value,int[] numberArr,int start,int end,int key){if(start >end){return -1;}//用来接收折中元素的下标key=(start+end)/2;//判断查找的元素是否小于折中元素System.out.println("折中元素为:"+numberArr[key]);if(value<numberArr[key]){//递归调用,查找折中元素前面的内容return seek(value,numberArr,start,key-1,key);//判断查找的元素是否大于折中元素}else if(value>numberArr[key]){//递归调用,查找折中元素后面的内容return seek(value,numberArr,key+1,end,key);//查找的元素和折中元素相等}else{return key;}}public static void main(String[] args) {int numberArr[]={11,18,27,28,33,72,89,111,192};System.out.println("元素所在的位置是"+seek(192,numberArr,0,numberArr.length-1,0));}
}

http://www.ppmy.cn/news/95898.html

相关文章

计算机视觉:卷积核的运行过程

本文重点 我们前面从直观角度理解了卷积神经网络的卷积在特征提取的作用,本节课程我们从数学角度来看一下,卷积是如何计算的? 计算步骤 1. 将卷积核与输入图像的某一部分进行逐元素相乘。 2. 将相乘后的结果求和,得到卷积核在该部分的输出值。 3. 重复以上步骤,将卷积核…

ClickHouse安装部署

—仅供学习 如有侵权 请联系删除– 一、下载 选择Tgz安装包安装 下载地址&#xff1a;Index of /clickhouse/tgz/ 选择stable目录下的安装包&#xff0c;采用21.9.4.35版本&#xff0c;分别是&#xff1a; [roothadoop08 resources]# ll 总用量 1023548 -rw-r--r--. 1 root …

Radxa ROCK 5A 开箱

Rock5 Model A 是一款高性能的单板计算机&#xff0c;它采用了 RK3588S (8nm LP 制程&#xff09;处理器&#xff0c;具有 4 个高达2.4GHz 的 ARM Cortex-A76 CPU 核心、4 个高达 1.8GHz 的 Cortex-A55 内核和 Mali-G610 MP4 GPU。更重要的是&#xff0c;它还有一个高达 6TOPS …

202312读书笔记|《赶时间的人》——灰暗的从前会成为照亮未来的光,艰难的生活里,诗歌是那陡峭的另一面

202312读书笔记|《赶时间的人》——灰暗的从前会成为照亮未来的光&#xff0c;艰难的生活里&#xff0c;诗歌是那陡峭的另一面 《赶时间的人》 作者王计兵&#xff0c;一个外卖员的诗&#xff0c;饱含对生活的热情&#xff0c;向上的力量&#xff0c;仿若身在炼狱&#xff0c;心…

【Unity100个实用小技巧】世界Canvas自动隐藏,包含子物体

☀️博客主页&#xff1a;CSDN博客主页&#x1f4a8;本文由 萌萌的小木屋 原创&#xff0c;首发于 CSDN&#x1f4a2;&#x1f525;学习专栏推荐&#xff1a;面试汇总❗️游戏框架专栏推荐&#xff1a;游戏实用框架专栏⛅️点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd;&#…

2023 剑桥大学博士后/访问学者项目一览

作为全球知名的高等教育机构&#xff0c;剑桥大学一直致力于与世界各地的学者保持紧密联系&#xff0c;共同探索各个学科领域的前沿问题和挑战。为了加强国际间的学术交流和合作&#xff0c;剑桥大学开展了博士后访问学者项目&#xff0c;为来自不同国家和地区的优秀学者提供机…

倒置字符串、猜名次、猜凶手、杨辉三角

目录 例一&#xff1a;倒置字符串 例二&#xff1a;猜名次 例三&#xff1a;猜凶手 例四&#xff1a;杨辉三角 方法一 方法二 例一&#xff1a;倒置字符串 首先我们先来看一下题目具体要求 再来看一下我们所需要的效果 这里呢&#xff0c;博主给出两种思路&#xff0c;…

前端面试-React专题

目录 一.React1. React 的主要特性是什么2.React 的核心思想是3. 什么是jsx4. render()函数5. 函数组件和类组件的区别6. HTML和React中事件处理的区别7. React 中的合成事件8. 虚拟Dom&#xff1f;为什么使用&#xff1f;如何实现&#xff1f;9. 在 constructor 中给 super 函…