- 博客(20)
- 收藏
- 关注
原创 三层结构和MVC!!!
Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。
2025-02-27 20:42:57
926
原创 Spring IoC和DI
IoC: Inversion of Control (控制反转), 也就是说 Spring 是⼀个"控制反转"的容器.控制反转是⼀种思想, 在⽣活中也是处处体现.:⽐如⾃动驾驶, 传统驾驶⽅式, ⻋辆的横向和纵向驾驶控制权由驾驶员来控制, 现在交给了驾驶⾃动化系统来控制, 这也是控制反转思想在⽣活中的实现.⽐如招聘, 企业的员⼯招聘,⼊职, 解雇等控制权, 由⽼板转交给给HR(⼈⼒资源)来处理需求: 造⼀辆车DI: Dependency Injection(依赖注⼊)
2025-02-25 09:58:50
364
原创 数据结构:链表进阶
LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。在集合框架中,LinkedList也实现了List接口,具体如下:【说明】LinkedList实现了List接口LinkedList的底层使用了双向链表LinkedList没有实现RandomAccess接口,因此LinkedList不支持随机访问。
2024-11-24 00:00:32
3204
66
原创 反射、枚举以及lambda表达式
Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。反射的意义反射重要的几个类: Class类 、Field类、 Method类、 Constructor类学会合理利用反射,一定要在安全环境下使用。
2024-11-21 20:34:04
976
28
原创 数据结构:泛型
一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。----- 来源《Java编程思想》对泛型的介绍。泛型是在JDK1.5引入的新的语法,通俗讲,泛型:**就是适用于许多许多类型。**从代码上讲,就是对类型实现了参数化。方法限定符 <类型形参列表> 返回值类型 方法名称(形参列表) { … }
2024-11-19 22:00:12
1010
70
原创 Java数据结构与算法-------Map
Map常用Map:Hashtable、HashMap、LinkedHashMap、TreeMapHashMapLinkedHashMapTreeMapHashTable常用Map:Hashtable、HashMap、LinkedHashMap、TreeMapHashMap1)无序; 2)访问速度快; 3)key不允许重复(只允许存在一个null Key);LinkedHashMap1)有序; 2)HashMap子类;TreeMap1)根据key排序(默认为升序); 2)因为要排
2024-11-16 18:58:04
1375
36
原创 java数据结构与算法:队列
为了避免当只有一个元素时,对头和队尾重合使得处理变得麻烦,所以引入两个指针:front指针指向队头元素,rear指针指向队尾元素的下一个位置,这样的话,当front指针等于rear时,此队列不是还剩一个元素,而是空队列。队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其另一端进行删除操作。队列的插入操作通常称作入队列,队列的删除操作通常称作出队列。链式队列其实就是特殊的。
2024-11-13 17:13:30
779
43
原创 java数据结构与算法:栈
根据栈后进先出的特性,我们实现了单词逆序以及分隔符匹配。所以其实栈是一个概念上的工具,具体能实现什么功能可以由我们去想象。栈通过提供限制性的访问方法push()和pop(),使得程序不容易出错。对于栈的实现,我们稍微分析就知道,数据入栈和出栈的时间复杂度都为O(1),也就是说栈操作所耗的时间不依赖栈中数据项的个数,因此操作时间很短。而且需要注意的是栈不需要比较和移动操作,我们不要画蛇添足。
2024-11-12 21:37:53
976
53
原创 java数据结构与算法:二叉树
二叉树是树这种数据结构的一员,后面我们还会介绍红黑树,2-3-4树等数据结构。那么为什么要使用树?它有什么优点?前面我们介绍数组的数据结构,我们知道对于有序数组,查找很快,并介绍可以通过二分法查找,但是想要在有序数组中插入一个数据项,就必须先找到插入数据项的位置,然后将所有插入位置后面的数据项全部向后移动一位,来给新数据腾出空间,平均来讲要移动N/2次,这是很费时的。同理,删除数据也是。
2024-11-04 21:36:03
563
12
原创 数据结构单向链表的插入和删除(一)
对于链表实现,Node类是整个操作的关键,但是首先来研究一下之前程序的问题:Node是一个单独的类,那么这样的类是可以被用户直接使用的,但是这个类由用户直接去使用,没有任何的意义,即:Node这个类有用,但是不能让用户去用,只能让LinkList类去调用,内部类Node中完成。单链表是由一个一个结点组成的,因此,要设计单链表类,必须先设计结点类。上图中,如果采用带头结点的单链表结构,算法实现时,p指向头结点,改变的是p指针的next指针的值(改变头结点的指针域),而头指针head的值不变。
2024-10-20 22:46:50
2137
5
原创 学习JAVA中的Spring MVC常用注解及三层架构,这一篇就够了
Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为SpringMVC.(Servlet 是⼀种实现动态⻚⾯的技术. 准确来讲Servlet是⼀套 Java Web 开发的规范,或者说是⼀套Java Web 开发的技术标准. 只有规范并不能做任何事情,必须要有⼈去实现它. 所谓实现 Servlet 规。
2024-10-18 10:44:34
1397
16
原创 数据结构Java线性表与顺序表(一)
注意第11行的注释:第一个参数list.size代表的是:我每次都是在顺序表的最后一个位置(当前线性表的长度的位置)进行插入操作;我们来看一下第54行的插入操作insert()方法:如果需要在index位置插入一个数据,那么index后面的元素就要整体往后移动一位。Java内存中,栈内存和堆内存占了很大一部分空间:栈内存的存储是顺序结构,堆内存的存储是离散结构。(1)除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素;an-1,每个数据元素的数据类型可以是任意的类型。
2024-10-16 22:37:14
1024
24
原创 StringBuilder和StringBuffer
由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。这两个类大部分功能是相同的,这里介绍 StringBuilder常用的一些方法,其它需要用到了大家可参阅 https://docs.oracle.com/javase/8/docs/api/String变为StringBuilder: 利用StringBuilder的构造方法或append()方法。StringBuilder变为String: 调用toString()方法。
2024-10-07 19:34:00
447
2
原创 掌握java中的String 类这一篇就够了
在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字符串应用又非常广泛,因此Java语言专门提供了String类。value被修饰被final修饰,表明value自身的值不能改变,即不能引用其它字符数组,但是其引用空间中的内容可以修改。: 由于字符串是不可变对象, 替换不修改当前字符串, 而是产生一个新的字符串.字符串的比较是常见操作之一,比如:字符串排序。
2024-09-28 23:01:19
1166
24
原创 java中的接口
注意事项: 对于 sort 方法来说, 需要传入的数组的每个对象都是 “可比较” 的, 需要具备 compareTo 这样的能力. 通过重写 compareTo 方法的方式, 就可以定义比较规则.如之前写的 Animal 例子. 此处的 Animal 中包含一个 name 这样的属性, 这个属性在任何子类中都是存在的. 因此此、处的 Animal 只能作为一个抽象类, 而不应该成为一个接口。抽象类和接口都是 Java 中多态的常见使用方式. 都需要重点掌握. 同时又要认清两者的区别(重要!
2024-09-24 21:53:33
1080
16
原创 java中的多态
在这个过程当中,我们不应该在原来老的类上进行修改,因为原来的类,可能还在有用户使用,正确做法是:新建一个新手机的类,对来电显示这个方法重写就好了,这样就达到了我们当今的需求了。当类的调用者在编写 eat 这个方法的时候, 参数类型为 Animal (父类), 此时在该方法内部并不知道, 也不关注当前的a 引用指向的是哪个类型(哪个子类)的实例. 此时 a这个引用调用 eat方法可能会有多种不同的表现(和 a 引用的实例相关), 这种行为就称为 多态.重写的好处在于子类可以根据需要,定义特定于自己的行为。
2024-09-10 16:26:27
728
原创 详细讲解java类和对象
Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等)在java中定义类时需要用到class关键字,具体语法如下// 创建类 class ClassName {field;
2024-09-06 10:08:43
914
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅