- 博客(47)
- 收藏
- 关注
原创 苍穹外卖——day5
下面图片很详细的介绍了redis我说一些主要的:redis也是一种数据库,他与mysql不同的是,MySQL的数据存储在硬盘,而redis的数据存储在内存里面,所以他的速率会更快,一般用于热点事件中Redis常用代码下面是redis的常用的五种数据类型和对应命令和通用命令每一种数据结构都有它的特点这些都罗列在下面图片了(看一眼就看的懂,十分简单)而下面都是一些在图形化界面工具实现的一些redis命令看一下知道就行。
2024-09-25 19:49:26 343
原创 苍穹外卖——day3
之后就是给mapper层的数据库操作是update,insert的作上注解标记就行了。我们在执行update或者insert数据库操作的时候,总是要给下面的一些属性赋值。简单来说就是把两个事物存在这个枚举类中,然后我们直接调用其中一个就是了。之前笔记有单独写的,自己去看,这个很重要,一定要掌握。我们在添加功能的时候常常要重复执行一些重复的操作。这个没什么好说的,这个挺复杂的,一下子肯定说不清。枚举,我们很熟悉,但是我们忘记如何使用。要实现这个功能我们要学会一些知识。然后在类中定义出我们要枚举的事物。
2024-09-23 19:11:23 259
原创 苍穹外卖——day2
我们在标注里面写上TODO,如//TODO记住后面一定要打空格,不然和后面的字符连在一起会被以为是字符串这个字符串的作用是:提醒我们就比如这里代功能尚未完善,我们可以在这里写上TODO,防止之后忘记。
2024-09-18 20:24:39 401
原创 JavaWeb后端开发总结(3)
首先我们要知道AOP是什么?看下图个人解析:AOP叫做面向切面编程,但是实际上就是面向方法编程图中下面一部分是一个AOP的案例。
2024-09-05 20:01:23 784
原创 JavaWeb(基于SpringBoot开发)全总结(1)
再到spring boot中去设置,当我们遇到报错不要紧,我们直接再复制我们在DG上面写的sql语句,到idea那个数据库那里再运行一次,2.由于使用不同开发工具开发出来的略有不同,导致不能够互通,所以国际规定,使用maven创建的项目为统一标准结构,也就是下图所示的结构。还有我们写的案例里面的mapper层写的sql语句的新增,删除,等等操作,都是基于mybatis来实现的。例如:传入的是路径参数,json格式的参数等等,根据不同的参数我们使用不同的注解。
2024-09-02 20:24:59 1063
原创 java-分层解耦
根据代码易得,先调用请求响应,然后调用逻辑处理,然后逻辑处理去调用数据获取返回到逻辑处理,最后逻辑处理返回到响应处理。了解了这个后,我们控制反转就不能都是使用@Component,要分类使用。对,就是只要调用一个注解即可完成控制反转,这代表该类交给容器管理了。因为@Component衍生出了3个功能一样的注解。要控制反转直接调用注解@Component。要想解耦我们就要断开他们之间的关系。代码设计需求为:高内聚低耦合。如下,根据下面情况来控制反转。controller层。首先要了解内聚和耦合。
2024-07-12 15:25:04 231
原创 Javaweb-http协议
1.请求行:数据第一行,由请求方式和资源路径和协议组成,如下图。1.响应行:第一行数据(由协议,状态码,描述三个组成)2.响应头:第二行开始(格式:key:value)2.请求头:第二行开始,格式key:value。如下图:也介绍了post ,get 两者的区别。就是服务器和浏览器之间数据传输的规则。3.响应体:最后一部分,存放响应数据。3.请求体(post特有)下图是常见的响应码和响应头。下图为特别常见的响应码。
2024-06-29 14:28:53 262
原创 Javaweb-初学
然后要在类里面进行标识@RequestMapping,他的作用是用来确定这个web程序在浏览器上的标识,如上图就是标为/hello。然后打开浏览器,搜索localhost:8080/xw(8080是本机端口号,/xw是我指定的搜索路径)然后,我们要来对这个请求处理类进行启动,而启动这个类的,有专门的启动类。首先顶部要标识@Restcontroller,表明这个类是请求处理类。2.如何创建一个springboot的项目,下面两张图片是重点关注。3.第一个简单的springboot应用的开发。
2024-06-29 13:59:41 262
原创 java-Stream流
首先我们要知道,Stream流思想它就好比一条流水线,在流水线上对,传入的数据进行操作了解下图的中间方法和终结方法,待会我们会对他们进行具体的分析。
2024-03-14 22:03:32 200
原创 java-可变参数
(int...a,int...b)这样是不行的,因为我第一个形参就可以接收无穷个,那么第二个形参到底接收多少个,我们不知道,所以就会报错。(int b,int...a)这样是可以的,这个是第一个被b接收,剩下的都是被a接收。(int...a,int b)这样也不行,还是那样,我们不知道形参b接收的是什么。当我们要传入大量的形参时,我们就可以用到可变参数了。可变参数就是指传入的参数个数是可变的,不是固定的。数据类型...变量名;例如int ...a;
2024-03-13 22:12:45 155
原创 java-单列集合-set系列
set集合继承collection,所以API都差不多,我就不多加介绍直接见图看他们的特点我们主要讲述的是set系列里的HashSet、LinkedHashSet、TreeSetHashSet它的底层是哈希表哈希表由数组+集合+红黑树组成特点:增删改查都性能良好哈希表具体是什么,我也不太讲的清,具体见java上册197集我们主要是了解它的去重他是如何去重的呢?通过的是HashCode方法和equals方法当我们储存的是自定义对象时,我们就必须要重写它们如上图,s1和s2名字和姓名重复了,我们认为是同一个人,
2024-03-12 22:27:28 361
原创 java-数据结构—树
规则:任意节点左右子树高度差不超过1如下图,你不能只看根节点,你还得看其他的所有节点,看看所有节点的左右子树高度差是否超过一;注意:没有左(右)节点时,我们认为该节点的左(右)节点的高度为0举例:左侧二叉树的10节点,他没有左节点,所以左节点高度为0,右节点高度为3,高度差为3,所以不是平衡二叉树(有点复杂,不好讲述,自行看图片介绍)是一个二叉查找树,高度不平衡,满足红黑规则红黑规则添加节点的规则。
2024-03-11 22:42:15 760
原创 java-泛型
泛型的格式:<数据类型>注意:数据类型只能是引用数据类型,所以如果想要用int的话,要用对他进行包装作用:限定形参范围细节:传入数据可以传入该泛型类型或者其子类类型,如下图所示当一个类,某个变量数据类型不确定的时候,我们就可以定义带有泛型的类具体代码如下图我们来如何理解这个呢?其实很好理解,我们就是把这个E当作为一种可以为任意数据类型的一种数据类型那如何创建对象呢?因为这个是泛型类,所以我们在创建对象的时候我们必须指定数据类型,如下图代码当我们创建这个MyArraylist对象是指定了泛型为String所以
2024-03-07 21:52:57 236
原创 java-List常见方法与五种遍历方式
它的写法和迭代器的方法是基本相似的,但是它在遍历过程中可以添加元素,这个元素添加在指定元素的后一个位置,因为迭代器获取元素后,指针后移。首先,我们知道list是collection的子类,所以自然父类的方法,它都继承下来了,所以我们主要看的是它的特有方法,如下图。同时它也和迭代器一样,不能用集合方法来进行添加,否则出现下面这种情况。因为这个继承了collection的方法,所以之前3个方法它都能用。同时list系列有索引,所以普通for循环遍历也可以用。通过看上图我们就知道如何使用这些方法了。
2024-03-06 22:02:44 254
原创 java-集合进阶-Collection的三种遍历方法
这个s就相当于一个第三方的变量,每循环一次,集合的元素数据就会存储在里面,然后下一次循环时,它又会被下一个集合元素替代,所以它和集合并没有联系,他只是一个暂时存储元素的第三方变量。答案是显然不会的,就如上面所说,它只是第三方变量,就如下面代码所示,qqq并没有改变集合元素数据。以及在这个迭代器遍历的方法体中,不能利用集合的方法进行删除和增加,只能使用迭代器的方法。那么我们就会有这样的疑问,如果在循环中我们改变s的值,集合会不会改变。首先是集合的方法进行删除(注意这个是错误的,代码会报错)
2024-03-06 21:42:53 289
原创 java-集合进阶—单列集合顶层接口Collection
3.contains判断是否包含该元素的细节:他依赖的是equals的方法进行判断是否存在,所以我们自定义类的对象,例如Student这种,如果也要用contains方法来判断,那我们必须对他进行重写。2.remove删除方法的细节:由于有些集合没有索引,但是这个Collection是共性的接口,所以不能通过传递索引去删除,只能传递具体的数据去删除。因为我们集合判断的是是否存在这个数据,当我们用自定义对象的时候,尽管数据是一样的,但是由于每个对象的地址不一样,还是会返回false。那么他的功能有哪些呢?
2024-03-05 21:43:21 189
原创 java-lambda表达式
注意:这个匿名内部类必须是函数式接口,也就是只有一个抽象方法的接口。简单来说就是简化匿名内部类的书写格式。lambda的标准格式为()->{}看下面图片就可知道要省略什么了。同时lambda还有省略的写法。如何理解这个的作用呢。
2024-03-05 21:18:56 190
原创 java-常见的算法API-Arrays
而这个规则是一个接口,但是我们只需要调用一次它就可以了,所以我们没必要为它单独创建一个类,这时候我们就要用到匿名内部类了。首先是倒数第二个没带规则的sort方法,这个就和我们写的快排算法是一样的,默认就是按照升序排列进行排列的。而最后一个带上规则的sort方法,我们可以改变它的规则,从而实现我们想要的排列方式,例如实现降序排序。这个匿名类里面的打印语句可以删掉,return o1-o2是升序,而改为o2-o1就是降序了。我们知道如果默认规则不能满足我们要求时,我们就可以对方法进行重写。
2024-03-05 21:10:32 170
原创 java-排序算法
注意递归函数一定要有出口,避免内存溢出,出口就是止提前终止程序的代码,和之前避免死循环的代码是类似的。给出一段数据为:3,44,38,5,47,15,36,26,27,2,46,4,19,50,48。首先引入递归这个概念这个之前学学过,反正就是函数反复调用本身不多加解释。,至于为什么,自己可以试试先start再end,会出现什么错误。给出一组数据为:6,1,2,7,9,3,4,5,10,8。如何来理解这个方法,我们举个例子来说明一下。这个不多做解释,比较简单,直接看图。利用快排进行排序的代码如下。
2024-03-05 20:53:37 273 1
原创 java-查找算法
如图中一串数据分成了4大块,可以看到这4大块,每一块里面的顺序是无序的,但是块2的最小值一定大于块1的最大值,所以块外是有序的。一段数据为16,5,9,12,21,18,32,23,37,26,45,34,50,48,61,52,73,66。举例:一组数据为7,23,79,81,103,127,131,147,现在我们要查找数据127。只需在块类里面加上一个min的成员变量就行,这是为了确定好数据在哪个块,剩下的就和上面的一样了。这个无需怎么介绍,简而言之就是,对数据进行遍历,然后找到对应的要查找数据。
2024-03-04 22:10:55 332 1
原创 Java-常用API-Runtime
补充:可能不理解5和6,我是这样理解的,就是虚拟机申请了254MB的内存,剩余251MB,意思是这段程序只用了3MB。运行结果最后是true,原因是,这个方法获取的是虚拟机对象,一般规定就是只有一个,所以r1和r2是同一对象。注意:字节缩写就是常见的B,上面除以两次1024是为了化单位为MB。第3、4、5、6个方法都是获取与虚拟机有关的内容,知道就可以。和之前System的停止也是一样的,看图就行,知道就可以。第7个方法,可能在某些时候很实用,而且还可以恶搞朋友。常见的方法有,如下图。
2024-03-02 19:41:09 192
原创 Java-常见API-System
该方法是测试当前所在代码运行的时间与时间原点的差值,所以我们可以一头一尾,相减就可以测试出当前这段代码所运行的时间。但是在遍历的时候记得强转,因为person比student大,所以将person的值赋给student时要进行强转。这个方法没什么好详细分析的,就是要注意它传入参数的意思,图片上已经有了详细的介绍了。arr1是子类student,arr2是父类person,也可以进行拷贝。注意:0是正常停止,非0是异常停止,如下图代码所示。它的作用很简单就是终止程序运行。第三个的作用就是拷贝数组。
2024-03-02 19:21:58 163
原创 Java-常用API-Math
以下就是基本上最主要的方法以及图片解析了,这个只需要知道就行。这个明白有这个就行,不用死记硬背。首先最常见的就是math类。
2024-03-02 18:58:17 92
原创 Java-匿名内部类
个人理解就是:首先我们写一个没有名字的类,也就是那个接口的实现类,也可能写的是一个继承其他类的类,这个类也就是大括号括起来的部分,然后我们要创建的是swim实现类的对象,所以肯定是new 类名 ();根据我的理解,那个类名就填父类的类名,也就是swim,但是在()后面就要写实现类,或者继承类的内容。根据这个三个图,看看看见的时候能不能想起,毕竟这个不好如何表达,如果真的不知道还是看一下网课。但是类名我们不知道啊,他是匿名的,但是它是有名字的,内部操作系统里有,但是我们不知道。下面是继承关系的内部类。
2024-02-21 21:53:25 195
原创 Java-静态内部类和局部内部类
第二点的理解:第一点的理解特别重要,你把这个内部类看作一个方法中的局部变量,就知道它是不能被外界调用的,只能在方法内部使用。这个内部类就相当于方法show中局部变量a一样的等级,它只在这个方法中起作用,并不能被外界测试类调用。第三点的理解:还是就是把这个局部内部类当作为一个方法中的局部变量,自然就能理解了。结合静态的知识与成员内部类的知识去理解下图绿字部分,应该很好理解。但是加上了静态的特性,所以静态内部类与普通成员内部类有所不同。静态内部类可以算是成员内部类的一种特殊的内部类。
2024-02-21 21:31:09 153
原创 java-成员内部类
解释:首先先看outer类属于一个外部类,然后创建了一个成员内部类叫做inner,在outer外部类里写了一个getInstance()的方法,它的作用是用来返回一个内部类的对象,所以返回值的类型应该为inter类所以public inner getInstance(){}它是写在外部类里面的,可以把他看作和外部类的一个成员,不过这个成员是一个整体,是一个内部类,因为它是相当于外部类的一个成员,所以内部类里面可以调用外部类的私有变量。这个间接创建内部类对象的方法一般使用在private修饰的内部类。
2024-02-21 21:14:20 235
原创 java-内部类基础
解决方法就是创建一个发动机的对象,然后用对象调用它,如下图。因为车和发动机属于包含关系,所以适合将发动机作为内部类。重点注意一下外部类不能直接调用内部类,如下图标红代码。为什么要学习内部类呢,内部类应用举例,如下。那内部类和外部类之间有什么关系呢?什么是内部类,外部类,外部其他类。
2024-02-21 20:29:22 203
原创 Java-接口拓展
我们可以新创建一个类来接收这个接口,并对该接口所有的方法进行空重写,然后原来的那个类直接继承这个后来创建的类,再根据自己的需求,想重写哪个就重写哪个就可以。但是我只需要用到这个接口中其中一个方法,但是还是要对所有10个方法进行重写,这样既影响了美观也影响了可读性,所有为了解决这个问题。为了不让别人修改log()这个方法,或者是修改这个方法没有用,该方法设置为私有就是为了只服务该接口,对其他类没有用。这个不是重写,只能说是这个类定义了另一个与接口中的方法相同的静态方法,是两个不同的方法。
2024-02-19 22:01:04 246 1
原创 Java-接口进阶
public static final是默认的,不需要自己写,他表示的是常量,不能改变,见图所示。但是注意,如果一个类中引入接口三的话,由于接口三继承了接口一,二,所以要重写接口一二三所有的方法。第一点是之前学过的知识,第二点是前面接口基础笔记中的一个类可以继承多个接口。举个例子就是现在有三个接口,分别为接口一,接口二,接口三。多继承就是接口三继承接口一和接口二;这次主要学习的是第三点知识。
2024-02-19 21:25:25 229 1
原创 java-接口基础
如图中游泳这个属于青蛙和狗的特性,并不是这三个动物的特性,因此不能提取到父类。因为这里就狗类有看家的功能,可以直接写在狗类里面,单独写一个接口太麻烦了。System.out.println("青蛙在吃虫子");System.out.println("青蛙在蛙泳");这个特有名称要牢记,也就是接口的子类,实现类要满足的要求如图所示。其中还要注意一下一个类可以接收多个接口,格式如图所示。所以我们引进接口,单独把游泳写成接口,然后去使用。如果不用接口,单纯用多态,无法实现我们的目的。这是父类animal的代码。
2024-02-19 17:27:28 384 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人