自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (4)
  • 收藏
  • 关注

原创 设计原则——SOLID

设计原则SOLID

2022-12-03 13:14:52 3752

原创 3种工厂模式

简单工厂讲的是,通过构建一个生成指定类实例的工厂,来获取该类的实例。工厂方法模式构建一个生成实例的工厂,父类工厂决定实例的生成方式,但不决定所要生成的具体的类,具体的处理全部交给子类工厂。目的是将生成实例的框架(framework)和实际负责生成实例的类解耦。简单工厂是工厂方法在生成的类只有一个时的特例。抽象工厂模式中,不仅有“抽象工厂”,还有“抽象零件”和“抽象产品”,或者可以理解为“抽象产品”和“抽象产品族”。简单工厂通过一个具体的工厂获取一个具体的实例,目的是让获取实例的附属操作与实例的调用解耦;..

2022-08-01 01:48:45 205

原创 设计模式3-工厂方法 Factory Method

在“如何生成实例”这一方面,FactoryMethod模式提供了生成实例的“框架”和“具体加工”,用工厂去生产产品。如果想用相同的框架得到其他的产品和工厂,那么只需要添加“具体加工”,而无需对“框架”做任何改动,从而降低了代码耦合。httpshttpshttpshttpshttpshttpshttps。...

2022-07-18 00:43:42 217

原创 设计模式2-策略模式 Design Paterns 2 - Strategy

Strategy的意思是“策略”,在编程中,可以理解为“算法"。策略模式的目的是能够整体地替换算法,从而能让我们轻松地用不同算法解决同一类问题的不同场景。单纯用算法实现排序,只能对数字排序,只能从小到大排。 如果现在要对猫排序,那只能把sort()改成针对猫的算法。能不能只写一个sort(),同时支持对多个类排序?现在规定,任何类都可以通过sort()进行排序,前提是必须实现一个Comparable接口,并实现compareTo()方法。不管什么类,只要实现了Comparable接口,都能用这个sort()

2022-07-12 23:53:08 91

原创 设计模式1-单例模式 Design Paterns 1 - Singleton

单例模式的4种实现方式

2022-07-02 21:57:29 101

原创 msbSpringMVC-2

返回json给前端导包:controller方法直接返回对象或对象列表,要加@ResponseBody,表示以响应体的形式发送:controller获取请求体数据在参数前标识@RequestBody,表示把请求体以字符串的形式封装到参数中:post类型的表单:运行结果:注意:如果表单中有上传文件,那么文件名也会包含在这个字符串中;如果前端在请求体发送了json,controller方法参数用@RequestBody User user也可以吧json直接封

2021-08-13 14:58:32 77

原创 msbSpringMVC-1

SpringMVC介绍原始mvc处理过程Model指和数据和行为,包括dao层和service层。View是页面。Controller是控制器负责与前端交互,controller层。最经典的mvc就是javabean+jsp+servlet,这种模式是tomcat容器里有许多个servlet,还有一个wen.xml,当前端有请求过来,就会根据web.xml中的映射,找到请求路径对应的servlet,servlet执行完自己的逻辑把结果响应给前端。SpringMVC处理过程spri

2021-08-11 16:36:36 112

原创 Cookie、Session、JSP

会话技术一次会话包括多次请求响应,就像一通电话包括多次交流。CookieCookie有一个name,一个value,还有一些可选的属性。Cookie是一个Java类。Cookie的添加和获取:Cookie使用:Cookie注意事项:访问路径限制:/aaa/Servlet01设置了Cookie,/aaa/Servlet02可以获取到,/aaa/bbb/Servlet03可以获取到,而/bbb/Servlet04获取不到。Session..

2021-07-13 13:24:00 105

原创 Spring整合MyBatis、全注解开发

小插曲:连接数据库报错Can’t connect to local MySQL server through socket /tmp/mysql.sock,看了很多解决方法都跟自身情况不符,结果点了一下 系统偏好设置——下面MySQL服务——Initialize DataBase——Use Legacy Password——设置新密码——OK,就好了。。准备项目目录:dao层接口4个抽象方法:service层接口抽象方法同dao层。service层实现类,声明dao对象,定义

2021-07-10 11:52:30 1055 1

原创 Spring

框架作用:效率,重用性,规范,可维护性,解藕底层Spring分层:可以使用spring全部功能也可以使用一部分功能;full-stack:一站式解决方案,用spring全部功能的话会让开发效率更高;轻量级:内存消耗低,线程级非进程级;开源。架构体系:底层是核心容器,在核心容器上面提供了AOP等中间层技术,再往上就可以集成别人的一些技术,如dao层集成jdbc、mybatis等。Spring由工厂模式衍化而来耦合是不同模块之间掺和在一起,内聚就是一个模块中的

2021-07-08 08:36:00 171

原创 Maven

maven的作用管理jar包

2021-07-06 11:33:51 69

原创 JavaEE、Servlet

JavaEE介绍web概述资源分类系统结构CS结构:Client-Server,客户端-服务端,需要用户安装客户端,资源、网络占用小,但是维护成本大。BS结构:Browser-Server,浏览器-服务端,不需要安装客户端,只需要浏览器,维护成本小。JavaWeb服务器介绍重量级服务器:实现了全部的JavaEE规范;轻量级服务器:实现了一部分JavaEE规范,安装使用比较简单。Tomcat基本使用...

2021-07-05 07:49:08 205

原创 请求响应

Request对象获取各种路径getQueryString()获取的是url位于?后面的全部内容。uri是url中位于端口号后面的一串。Request对象获取请求头数据Request获取请求参数请求参数封装对象——手动封装请求参数封装对象——反射封装IO流获取请求参数(必须post)因为这两个流对象不是自己new的,是从Request对象获取的,因此不需要手动释放。中文乱码问题请求转发请求域请求转发一

2021-05-31 15:24:36 61

原创 算法四:链表问题

链表题方法论:笔试:一般不会要求空间复杂度,因为输入输出本身就很占空间,一切以时间复杂度为主,面试:因为要以解题思路吸引面试官,所以要顾及到空间复杂度。解题技巧:笔试:使用容器(哈希表、数组等),面试:使用快慢指针(省空间)。链表找中点问题:面试:四个问题思路都是快慢指针,但是题目要求不同,导致快慢指针初始值不同,但是接下来的循环遍历是相同的:while(fast.next != null && fast.next.next != null){ .

2021-05-12 17:13:33 198

原创 算法三:前缀树、桶排序、排序算法比较、稳定性、常见的坑

前缀树:设计一个容器,可以往里添加一个一个字符串,可以从里面删除字符串,可以查询一个字符串出现过多少次,可以查询一个字符串是多少个字符串的前缀:一个节点上有三个属性,pass表示有多少个字符串经过它,end表示有多少个字符串以他结尾,nexts[26]表示下一个路径,节点初始pass=0,end=0,添加abc时,指针指向根节点,pass++,看根节点有没有a方向的路,没有就在a方向增加一个节点,指针跳到新节点,pass++;有就直接跳到a方向下一个节点,pass++,再看有没有b方

2021-05-11 22:42:17 264

原创 算法二:归并排序、快排、堆、堆排序、堆应用

归并排序:想要这个数组有序,只需要令左半边有序,右半边也有序,再把两部分合并。归并排序递归实现:递归方法:f(arr,left, right),递归出口:如果left == right,即当前部分只有一个元素,直接返回,递归调用:中点mid = left +(right-left)>> 1,左边排序f(arr,left,mid),右边排序f(arr,mid+1,right),合并merge(arr,left,mid,right),其中merge不涉及递归,只是一个普.

2021-05-10 23:56:13 125

原创 MyBatis

框架ORM对象关系映射原始JDBC的缺陷:MyBatis介绍:小结:MyBatis封装了JDBC,是Java用来操作数据库的框架,只需要关注SQL语句本身,且能自动实现Java类和数据库的映射。...

2021-04-15 13:44:51 95

原创 JDBC

Java官方给出的JDBC规范只是些接口,具体的实现类由不同的数据库厂商实现。

2021-04-13 00:22:52 112

原创 Java多线程

Java多线程的3种实现方式1.继承Thread类2.实现Runnable接口,创建Thread对象3.实现Callable接口,创建FutureTask对象,创建Thread对象Callable的call()和run()一样被JVM调用,且call()有返回值,返回值是什么类型,Callable泛型就是什么类型。...

2021-04-11 15:43:59 148

原创 Java开发遇到的问题

Scanner报错NoSuchElementExceptionmain方法里一开始new了一个Scanner,最后退出的时候close(),而main方法中调用了其他方法,其他方法里也new了一个Scanner,方法结束的时候close(),这样该方法再main里被调用时,该方法内的close()会把main方法中的Scanner给close掉导致main中的Scanner不存在。PreparedStatement使用模糊查询 LIKE '% %';String sql = "SELEC..

2021-04-11 10:37:17 78

原创 Java类加载器、反射机制

类加载的过程.java文件编译后产生.class字节码文件,放在磁盘。加载根据包名+类名在磁盘种找到这个字节码文件;创建输入流;把字节码文件读取到内存;读到内存后不能随便放,在内存中创建一个java.lang.Class对象保存该类的信息。假设类中有String型成员,这时候不知道String类加载了没、如果加载了放在哪,因此这里的String用符号代替验证检查文件信息是否符合当前虚拟机规范、会不会危害虚拟机自身安全;准备为静态变量分配内存,并初始化一...

2021-04-07 20:07:05 91

原创 Java IO流

目录和文件都可以抽象成File类。获取File信息:创建目录:删除目录:获取目录中的所有子目录和文件:获取父级目录:序列化:将一个类的实例转成流的过程;反序列化:将一个流转成类的实例的过程。序列化ID:在序列化和反序列化的过程中作为Key来使用。可以默认指定,也可以根据代码自动计算生成,建议默认指定,因为代码改变后生成的ID也会改变。transient修饰符修饰的属性,不能被序列化。File构造方法:目录/文件路径名;...

2021-04-06 20:05:50 52 1

原创 MySQL

Linux下配置MySQL:SQL库名,表名,字段名在Win下不区分大小写,在Linux下区分大小写。设置在Win下也区分大小写:SQLyogCtrl S保存为.sql文件,Ctrl O打开.sql文件,选中一条语句,点击“执行查询”,左边面板按F5刷新数据库状态。...

2021-04-03 18:53:49 305 1

原创 Java StringBuilder、集合

StringBuilder:长度可变的字符串,可以方便地进行字符串拼接、反转。调用方法后返回对象本身:链式编程StringBuilder和String互相转换:集合泛型只能是引用数据类型。返回被替代的元素。...

2021-03-27 23:45:02 363

原创 Java基础、字符串、instanceof

一般情况下final和static结合使用,二者不分先后顺序类型提升:byte,short型变量在运算过程中会自动提升为int型。byte b1 = 15;short s1 = 20;b1+s1的返回值的类型是int因为大的数据类型有大的内存空间,小的数据类型有小的内存空间,把大类型赋值给小类型可能会造成数据丢失。从字符串中删除字母:转成char[ ],判断每一个char,如果不是数组就拼接到新字符串...

2021-03-27 22:14:41 172

原创 SSM框架

SSM框架:SpringMVC,Spring,MybatisSpringIOC,DI框架:IOC控制反转,DI依赖注入。Spring容器:1、生成Bean的实例(默认情况是单例)。2、完成依赖注入面向切片编程:面向对象是静态抽象,面向切面是动态抽象。把方法运行中相同的部分抽出来。SpringMVCMVC框架,完成前后台的交互。MyBatisorm框架,不是纯粹的ORM框架,纯粹的是Hibernate,但是H运行效率有一点差。对象关系映射,以面向对象的方式完成对数据

2021-03-27 22:14:18 91

原创 Java常用API

面试题:都是false。第一个,虽然String的equals比较的是字符串的内容,但是会先判断参数是不是String对象,不是的话直接返回false。第二个,StringBuilder没有重写equals方法,用的还是Object的,比较的是地址值。Objects常用方法:返回对象的toString(),如果对象为null,返回第二个参数。...

2021-03-27 22:13:21 62

原创 Java异常

异常处理方式——throw:throw异常对象,把异常抛给调用者处理。调用者方法名( ) throws 异常类名 { 方法体 },声明异常,表示方法体内部可能会有人抛出异常。Exception编译时异常,RunTimeException运行时异常为什么要抛异常,而不用if 判断错误后在控制台输出:调用者调用一个方法,方法执行过程中出现错误,就打印在控制台,这样调用者完全不知道发生了什么事,调用者不知道出现了错误。而抛出异常的话调用者就知道该方法运行出现错误。处理...

2021-03-27 14:41:17 67

原创 Java数组、方法重载、进制、强转损失精度、自动类型提升

数组的两种定义方式:int[ ] arr = new int[10]; //定义了一个int型数组,叫arrint arr[ ] = new int[10]; //定义了一个int型变量,叫arr,是一个数组数组的动态初始化:int[ ] arr = new int[10];arr[0] = 1;数组的静态初始化:int[ ] arr = {1,2,3};打印数组变量:@:分隔符[:当前空间是一个数组类型I:当前数组存储的数据类型int...

2021-03-26 22:20:01 115 1

原创 Java面向对象、抽象类、接口、多态、匿名内部类、Lambda表达式

类:类是对现实生活中一类具有共同属性和行为的事物的抽象。类是对象的数据类型。属性:对象有什么特征方法:对象能干什么垃圾回收:在堆内存中的对象或数组,其地址通过任何方式都不能被找到,就会被判定为内存中的垃圾。Java的垃圾回收器在空闲的时候会自动清理内存中的垃圾。成员变量:类中的位置:类中方法外内存中的位置:堆内存(对象在堆中)生命周期:随着对象的产生而产生,随着对象的消失而消失初始值:有默认初始值局部变量:类中的位置:方法内,内存中的位..

2021-03-25 23:58:03 146

原创 Git

一串字符是版本的的唯一标识符,HEAD指针指向masterreflog能查看所有分支的简要日志,log只能查看当前分支的日志。...

2021-03-19 14:23:24 241

原创 Java next()、nextInt()和nextLine()的问题

nextLine()错过一次输入:nextInt():从缓冲区取第一个数字,不读空格、制表符、回车换行,回车换行会使方法返回。next():从缓冲区读第一个字符串,不读空格、制表符、回车换行,回车换行会使方法返回。前面两个都会把空格、制表符、回车换行留在缓冲区内,如果接下来有nextLine()就会被nextLine()读走。nextLine():从缓冲区读取一个字符串,空格、制表符、回车换行都会读走,读到回车换行时方法返回。把其中一个nextLine()换成next()..

2021-03-18 13:25:05 284

原创 天天生鲜Django项目(六)

45、详情页商品数量前端<!-- templates/detail.html 底部代码块 -->{% block bottomfiles %} <script type="text/javascript" src="{% static 'js/jquery-1.12.4.min.js'%}"></script> <script type="text/javascript"> update_goods_amount()

2020-06-27 21:35:28 186

原创 天天生鲜Django项目(五)

42、列表页

2020-06-26 21:03:32 216

原创 天天生鲜Django项目(四)

37、详情页在后台添加数据为了显示方便,为每一个模型类添加__str__方法,否则后台只显示XXX_Object(n)不好看:# goods/models.pyfrom django.db import modelsfrom db.base_model import BaseModelfrom tinymce.models import HTMLFieldclass GoodsType(BaseModel): '''商品类型模型类''' name = m..

2020-06-24 21:41:35 121

原创 启动服务

Django运行runserver;python manage.py runserver开启redis服务(缓存、session、购物车):sudo redis-server /etc/redis/redis.conf开启fdfs_trackerd、fdfs_storaged服务(分布式文件存储系统,存图片);sudo fdfs_trackerd /etc/fdfs/tracker.confsudo fdfs_storaged /etc/fdfs/storage.conf开启

2020-06-23 22:46:05 151

原创 天天生鲜Django项目(三)

32、项目中上传和使用图片Django默认在admin页面上传文件后,保存到MEDIA_ROOT指定的目录下,由FileSystemStorage类的save()方法实现;我们要让文件保存在FastDFS,不需要改他源代码,Django已经准备好了扩展的方式:自定义一个文件存储类,继承Storage类(FileSystomStorage的父类),重写相应的方法;utils目录下新建fdfs目录:client.conf和配置FastDFS时用的客户端配置文件一样,python里创建Fa

2020-06-14 11:14:58 270

原创 天天生鲜Django项目(二)

21、父模板抽象怎样制作父模板:找一个典型的html(如主页index.html),把每个页面都一样的部分抽离出来(留下);把每个页面都有但不一样的部分预留出块;有的有有的无的部分放在块里;只有一个页面有的也就是特例的删掉;...

2020-06-12 16:12:55 189

原创 天天生鲜Django项目(一)

1、电上模式1、如果项目绑定的mysql在另一台电脑,那么该mysql不能绑定127.0.0.1,要ifconfig查看以太网inet,绑定具体的ip地址;但是mysql默认绑定127.0.0.1,修改:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf(Ubuntu)sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf(UOS)bind-address = 10.194.45.47sudo service m..

2020-06-12 11:12:37 246

原创 解决UOS个人版QQ、TIM、微信太卡,卡到没法登录

在应用商店看到的:经测试,真的不卡了,我现在风扇都不响了!sudo apt purge -y deepin-defender

2020-06-08 08:47:46 5730

npp.7.9.4.Installer.x64.exe

官网太慢

2021-03-19

Git-2.31.0-64-bit-win10.zip

官网太慢

2021-03-19

deepin_wechat2.6.8.65.zip

UOS应用商店里下载的微信打不开了,卸载重装也打不开,用这个安装就没问题。

2020-06-08

tcl8.6.10-src.tar.gz

tcl8.6.10,安装redis要求tcl8.5版本或以上,官网下载慢得很,下载下来分享之。

2020-05-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除