提高代码重用性(相同的代码,不用多次编写)
代码可读性(编程规范性,便于自己及其他程序猿的阅读和理解)
可扩展性(当需要增加新的功能的时候,非常的方便,可维护)
可靠性(程序不容易出错,可靠性高 )
使程序呈现高内聚,低耦合的特性
提高代码重用性(相同的代码,不用多次编写)
代码可读性(编程规范性,便于自己及其他程序猿的阅读和理解)
可扩展性(当需要增加新的功能的时候,非常的方便,可维护)
可靠性(程序不容易出错,可靠性高 )
使程序呈现高内聚,低耦合的特性
程序(program): 是为完成特定任务,用某种语言编写的一组指令的集合。即值一段静态代码,静态对象。
进程(progress):是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它的产生、存在和消亡的过程。–生命周期
进程作为资源分配的单位,系统在运行时为每个进程分配不同的内存区域
线程(thread):进程可进一步细化为线程,是程序内部的一条执行路径。
并行和并发
同步和异步
多线程的优点:
合适需要多线程时机
AOP: 面向切面编程:基于OOP基础之上的新的编程思想
指的是在程序运行期间,将某段代码动态的切入到指定方法的指定位置进行运行的这种编程方式,面向切面编程
场景:计算器运行计算方法的时候进行日志记录
通过17个实验来了解SpringIOC的基础知识
新项目的开始需要的步骤是:
导包、配置、测试
1 | <dependencies> |
回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就 “回溯” 返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为 “回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。
回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。
解决一个回溯问题,实际上就是一个决策树的遍历过程。
1、路径:也就是已经做出的选择。
2、选择列表:也就是你当前可以做的选择。
3、结束条件:也就是到达决策树底层,无法再做选择的条件。
回溯算法最经典的问题是八皇后问题
问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
数组 {1,3, 8, 10, 11, 67, 100}, 编程实现二分查找, 要求使用非递归的方式完成.
1 | private static int binarySearch(int[] arr, int target){ |
最好使用[]
的区间,使用(]
或[)