- 博客(20)
- 收藏
- 关注
原创 多线程------线程与进程/线程调度/创建线程
线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程线程调度分时调度所有线程轮流使用 CPU 的
2020-12-31 01:13:41 218
原创 集合------Map集合(HashMap/LinkedHashMap)
Map集合概述Java提供了专门的集合类用来存放具有一一对应的映射关系的一对元素,即java.util.Map接口。Map中存放的是两种对象,一种称为key(键),一种称为value(值),它们在在Map中是一一对应关系collection与Map的区别:Collection中的集合,元素是孤立存在的,向集合中存储元素采用一个个元素的方式存储。Map中的集合,元素是成对存在的。每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection中的集合称为单列集合,Map中的集合称为双
2020-12-31 00:06:35 124
原创 集合------Collections集合工具类(Comparable和Comparator)
Collectionsjava.utils.Collections是集合工具类,用来对集合进行操作。Collections常用功能部分方法如下:public static <T> boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素。public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序。public static <T> void s
2020-12-30 22:56:55 171
原创 集合------Set集合(HashSet/LinkedHashSet)
Set接口java.util.Set接口和java.util.List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,与List接口不同的是,Set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。Set集合有多个子类,这里介绍其中的java.util.HashSet、java.util.LinkedHashSettips:Set集合取出元素的方式可以采用:迭代器、增强for。...
2020-12-30 11:56:08 289 2
原创 集合------List集合(ArrayList/LinkedList/Vector)
List集合List接口介绍java.util.List接口继承自Collection接口,是单列集合的一个重要分支习惯性地会将实现了List接口的对象称为List集合在List集合中允许出现重复的元素所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致总结,List接口特点:它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、3
2020-12-30 00:39:49 248 1
原创 泛型
泛型泛型概述泛型定义:可以在类或方法中预支地使用未知的类型。tips:一般在创建对象时,将未知的类型确定具体的类型。当没有指定泛型时,默认类型为Object类型。前因:集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当取出每一个对象,并且进行相应的操作,这时必须采用类型转换。Collection虽然可以存储各种对象,但实际上通常Collection只存储同一类型对象。例如都是存储字符串对象。后果:因此在JDK5之后,新增了泛型(Generic
2020-12-29 02:12:35 441
原创 集合------集合框架Collection/Iterator迭代器/增强for循环
集合框架Collection集合概述集合是java中提供的一种容器,可以用来存储多个数据。集合框架集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.MapCollection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。List接口的主要实现类有
2020-12-29 01:45:38 205
原创 快速排序
归并排序简述过程-简图时间复杂度// 任何情况都要比较 NlogN 次 //待甄别时间复杂度:O(NlogN) (以2为底)核心代码1)递归分解 序列public static void merge_sort(int a[],int first,int last,int temp[]){ if(first < last){ int middle = (first + last)/2; merge_sort(a,first,middle,temp);//
2020-12-29 00:43:32 100
原创 归并排序
归并排序简述归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。1)首先考虑下如何将2个有序数列合并:只要比较2个数列的第一个数,谁小就先取谁。取了后就在对应数列中删除这个数。然后再进行比较。如果有数列为空,那直接将另一个数列的数据依次取出即可。2)再来看归并排序:其的基本思路就是将数组分成2组 A 和 B。如果这2组组内的数据都是有序的,那么就可以很方便的将这2组数据进行 合并和排序。
2020-12-27 00:13:58 83
原创 希尔排序
希尔排序简述思想:希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。过程:选择一个增量序列 t1,t2,……,tk,其中 ti > tj, tk = 1;按增量序列个数 k,对序列进行 k 趟排序;每趟排序,根据对应的增量 ti,将待排序列分割成若干长度为 m 的子序列,分别对各子表进行直接
2020-12-25 01:53:36 98
原创 插入排序
插入排序简述将第一待排序序列第一个元素看做一个有序序列;把第二个元素到最后一个元素当成是未排序序列;从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置(关键!!!);如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素之后;每轮比较前,记录好下标为 i 的待插入元素的值,i从1开始将下标为 i 的元素与前 (i - 1)个有序元素 从后往前 依次比较每次比较,设置条件:若 被比较的元素的值 大于 待插入元素的值,则 被比较的元素 值后移直到条件不成立
2020-12-25 01:38:00 108
原创 选择排序
选择排序简述N个长度的数组总共要经过 N-1 轮比较每轮需要比较的次数 N-i,默认下标为 i 的元素为当前轮的最小值每次比较,记录当前的最小值的下标/索引为 min每轮结束,替换下标 i 和 下标 min 处的元素全部完成 N-i 轮后,排序完毕核心代码public static int[] sort(int[] sourceArray) { // 对 arr 进行拷贝,不改变参数内容 int[] arr = Arrays.copyOf(sourceArr
2020-12-25 00:38:29 78 1
原创 冒泡排序
冒泡排序简述N个长度的数组共比较 N-1 轮第 i 轮,比较 N-i 次当某一轮的比较次数为0,说明已完成排序,比较结束核心代码public static int[] sort(int[] sourceArray) { // 对 arr 进行拷贝,不改变参数内容 int[] arr = Arrays.copyOf(sourceArray, sourceArray.length); for (int i = 1; i < arr.lengt
2020-12-25 00:12:21 70
原创 Java虚拟机的内存划分
Java虚拟机的内存划分为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。JVM的内存划分:
2020-12-24 01:07:35 162
原创 SpringMVC调用流程
SpringMVC调用流程问题: 用户发起请求 /xxx 是如何匹配到真实的业务方法???相关组件:前端控制器 所有请求的中转站处理器映射器 将用户的请求与执行的业务方法进行映射(绑定)处理器适配器视图解析器
2020-12-24 00:09:44 145
原创 Http------请求转发(forward)和重定向(redirect)的区别?
请求转发(forward)和重定向(redirect)的区别?区别如下:(1)请求转发是一次请求,一次响应; 而重定向是两次请求两次响应(2)请求转发前后地址栏地址不会发生变化; 而重定向前后地址栏地址会发生变化(3)请求转发前后的request对象是同一个,可以配合request域对象带数据到目的地; 而重定向前后的request对象不是同一个, 不能结合request域对象在重定向前后带数据.(4)请求转发要求两个资源必须属于同一个Web应用; 而进行重定向的两个资源可以是同一个Web应用,也
2020-12-23 23:50:50 854
原创 Http------GET与POST的区别
HTTP中GET与POST的区别最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。一个看上去的“标准答案”:GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。GET请求在URL中传送的
2020-12-23 23:38:46 75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人