1.数组基础知识数组:数组是可以在内存中连续存储多个相同类型的数据元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。1.1 数组中需要注意的点:数组的本质是什么呢?数组就是一片地址连续且空间大小一致的存储空间(但是每个空间存的还是其他数据的地址)为什么空间大小是相等的呢?就是为了方便统一维护我们的数据,必须得保证数据之 …
arrays.copyof
一 什么是泛型Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。简单理解就是:泛型指定编译时的类型,减少运行时由于对象类型不匹配引发的异常。其主要用途是提高我们的代码的复用率。我们Java标准库中的ArrayList就是泛型使用的典型应用:public clas …
一、数据结构简介1.什么是数据结构简单地说,数据结构是以某种特定的布局方式存储数据的容器。这种“布局方式”决定了数据结构对于某些操作是高效的,而对于其他操作则是低效的。数据结构=逻辑结构+物理结构(顺序、链式、索引、散列)。逻辑结构:数据元素间抽象化的相互关系。物理结构:(存储结构),在计算机存储器中的存储形式。2.数据结构逻辑分类数据结构从逻辑上划分为三种 …
数组简介数组对于我们来说并不陌生,在内存中是一块连续的内存空间,通过下标可以随机访问数组元素 如图一所示,而在JDK中提供了功能更加强大的ArrayList其底层是基于数据实现的,为什么JDK已经提供了数据还要使用ArrayList呢?我们通过比较两者之间的差异来聊聊ArrayList的优势java数组中如何获取数组实际元素在面试中经常会问在java中数组长 …
目录十大经典排序算法江山图归并排序算法描述算法思想动图演示代码实现稳定性分析时间复杂度分析空间复杂度分析归并排序和快速排序对比十大经典排序算法江山图十大经典排序算法江山图冒泡,选择和插入排序,它们的时间复杂度都是O(n2),比较高,适合小规模数据的排序;希尔排序和快速排序都不稳定,这篇我们来说说稳定的归并排序。归并排序在数据量大且数据递增或递减连续性好的情况 …
字符串作为Java开发中比较常用的一种数据类型。在上篇文章中我们介绍了String类型的不可变的特性。既然是不可变的,那么我们如何对于字符串进行拼接呢?下面我们就来看一下关于字符串拼接相关的内容。字符串拼接什么是拼接,拼接的意思就是将两个或者多个字符串合成一个大的字符串的过程,但是由于String类型在Java中是不可变的也就是说它一旦被创建初始化之后,就是 …
提纲:1、方法的概念2、方法语法3、方法使用4、参数5、返回值6、方法的分类7、作业一、数组的概念1.1、为什么使用数组如果说程序中,需要存储大量的相同类型的一组数据,如果直接使用变量来进行存储,每个变量只能存储一个值,就需要大量的变量。1、代码过于臃肿2、程序的可读性差3、数据维护较差1.2、数组的概念数组的概念:就是一组相同数据类型的数据。内存上是开辟的 …
前言23种设计模式速记 单例(singleton)模式工厂方法(factory method)模式抽象工厂(abstract factory)模式23种设计模式快速记忆的请看上面第一篇,本篇和大家一起来学习建造者模式相关内容。模式定义将一个复杂对象的创建与他的表示分离,使得同样的构建过程可以创建不同的表示。用户只需要给出指定复杂对象的类型和内容;建造者模式负 …
基数排序介绍基数排序,是一种非比较型整数排序算法,先把所有元素补位,让所有元素的位数相同,然后把序列中的每个元素按照位数进行分桶的一种算法,基数排序的实现方法分为两种:MSD和LSD。MSD:最高位优先法(Most Significant Digit First),先比较最高位,最高位分到一个桶中的,再按照第二位进行分桶…,知道分到最后一位,然后再从最小的桶 …
什么是浅克隆和深克隆浅克隆(Shadow Clone)是把原型对象中成员变量为值类型的属性都复制给克隆对象,把原型对象中成员变量为引用类型的引用地址也复制给克隆对象,也就是原型对象中如果有成员变量为引用对象,则此引用对象的地址是共享给原型对象和克隆对象的。简单来说就是浅克隆只会复制原型对象,但不会复制它所引用的对象深克隆(Deep Clone)是将原型对象中 …