- 博客(52)
- 收藏
- 关注
原创 李建忠设计模式——享元模式
1.享元模式(Flyweight)1.动机在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要值内存需求方面的代价。 入额在避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地使用面向对象的方式来进行操作?2.模式定义运用共享技术有效地支持大量细粒度的对象——《设计模式》GoF3.结构图...
2021-12-14 09:12:19
200
原创 集合框架详解
1、Collection接口1.1 Collection与Collections的区别collection是集合类的上级接口,子接口主要有Set、List、Queue,提供了对集合对象进行基本操作的通用接口方法。是个java.util下的接口。 Collections是针对集合类的一个帮助类,提供了操作集合的工具方法:一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。此类不能实例化,就像一个工具类,服务于Java的Collection框架。是个java.util下的类。 2...
2020-08-06 22:30:42
317
原创 十种排序算法详解
1.排序算法 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 1、相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b前面,而a=b,排序之后a可能会出现在b的后面。 时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现
2020-07-27 21:39:28
234
原创 java基础知识整理(牛客网做题遇到的)
1.覆盖和重写覆盖:又叫重写,是子类和父类之间的,重写就是子类重写基类的方法,方法名,参数列表和返回值都必须相同,否则就不是重写而是重载。权限修饰符不能小于被重写方法的修饰符。重写方法不能抛出新的异常或者是比被重写方法声明更加宽泛的检查型异常。 重载:重载就是同一个类中,有多个方法名相同,但参数列表不同(包括参数个数和参数类型),与返回值无关,与权限修饰符也无关。调用重载的方法时通过传递给它们不同的参数个数和参数类型来决定具体使用哪个方法,这叫多态。2.java中的堆Java中的堆是JVM...
2020-07-09 22:01:01
204
原创 「java学习」类Class
1.概念1.类对象java用new来新建对象,它会存放在堆中String参考:https://www.cnblogs.com/yanggb/p/11613042.html2.类和数组的区别类是方法和变量的集合体数组时相同类型的无序数据的集合java 中数组属于一种原生类吗?不是,属于引用数据类型,因为声明数组需要分配堆栈空间2.内部类1.静态内部类在定义的内部类前加static修饰符,此时的内部类就是静态内部类。1.静态内部类中可以写哪些内容:匿名代码块
2020-07-09 18:03:48
188
原创 springboot传参方式
参考:https://blog.csdn.net/RickyIT/article/details/70242218写的很详细,nice
2020-06-20 16:41:05
199
原创 将本地图片放到远程服务器并在浏览器使用url查看
1.将本地文件复制到远程服务器首先因为ftp上传出错,而且没有找到出错原因(如下图所示,如果哪位高手看见,望指导)因此百度了其他方法,下面方法亲测好用:Windows系统 本地文件如何复制到远程服务器2.实现在浏览器访问远程服务器的图片想要在浏览器访问一个文件,那么这个文件肯定是在web服务器上的,基于这个,我们只需要将我们的文件放在远程服务器的web服务器上,之前做过网站有放在远程服务器,只需要将现在的文件添加到网站上就可以了,也不会影响网站本身的运行。...
2020-06-16 22:12:54
3766
原创 使用命令行导入sql文件到mysql数据库
1.基本操作show dattabases; use tiku1; set chatset utf8; sourceC:\Users\zy\Desktop\chuyi1\chuyi1.sql2.遇到问题 若是新建库,一定要设置数据库的字符集和序列规则。 命令行运行sql脚本出错:MySQL server has gone away;ERROR 1231 (42000): Variable 'sql_mode' can't be set to the value of '...
2020-06-12 17:39:15
1254
原创 java调用python并传递参数
目录1.前言2.Runtime 调用Python脚本(可传参)3.需要注意的问题4.参考1.前言在写项目时,整体项目使用java写的,而算法是用python写的,所以需要在java程序中调用python代码,关于在Java中调用Python程序的实现,根据不同的用途可以使用多种不同的方法,目前我是用了直接利用Runtime来调用。2.Runtime 调用Python脚本(可传参)//调用python程序,执行推荐算法public class RunPyrhon..
2020-05-26 16:29:46
2393
原创 李建忠设计模式——桥模式
目录1.桥模式1.动机2.模式定义3.结构图4.模式的组成2.实例1.描述2.代码实现要点总结参考:1.桥模式1.动机由于某些类型的固有的实现逻辑,使得他们具有两个变化的维度,乃至多个维度的变化。 如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂度2.模式定义将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。——《设计模式》GoF3.结构图4.模式
2020-05-12 15:02:07
463
原创 李建忠设计模式——装饰模式
1.“单一职责”模式在软件组件的设计中,如果责任划分不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 典型模式Decorator Bridge2.装饰模式(Decorator)1.动机在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增大(扩展功能的增多),各种子类的组合(扩展功能的组合),会导致更多子类的膨胀。 如何使“对象功能的扩展”能够根据需要
2020-05-12 12:29:24
188
原创 李建忠设计模式——观察者模式
1.观察者模式(Observer/Event)1.动机在软件构建过程中,需要为某些对象建立一种“通知依赖关系”——一个对象(目标)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。 使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系,从而实现软件体系结构的松耦合。2.模式定义定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的所有对象都得到通知并自动更新。——
2020-05-11 17:29:05
330
原创 李建忠设计模式——策略模式Strategy
目录1.策略模式定义1.动机2.模式定义3.结构2.实现例子1.问题描述2.代码实现3.要点总结4.参考1.策略模式定义1.动机软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。 如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题2.模式定义定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得
2020-05-10 22:56:30
238
原创 李建忠设计模式-组件协作模式-模板方法模式
1.前言现代软件专业分工后的第一个结果是“框架与应用程序的划分”、“组件协作”模式通过晚期绑定,来实现框架与程序之间的松耦合,是二者之间协作时常用的模式。典型模式:Template Method Strategy Observer/Event2.模板方法模式(Template Method)1.动机软件构建过程中,它常常有稳定的整体结构,但各个子步骤却有很多改变的需求或者由于固定的原因而无法和任务的整体结构同时实现。 如何确定稳定操作结构的前提下,来灵活应对各个子步骤的变化或者晚
2020-05-09 19:17:16
245
原创 李建忠设计模式(二)
1.23种设计模式的分类1.GOF-23模式分类从目的来看:创建型模式、结构型模式、行为型模式 从实现手段:类模式(类与子类的静态关系)、对象模式(对象间的动态关系)2.从封装变化校对对模式分类组件协作:Template Method、Strategy、Observer/Event 单一职责:Decorator、Bridge 对象创建:Factory Method、Abstract Factory、Prototype、Builder 对象性能:Singleton、Flyweigh...
2020-05-09 17:57:06
204
原创 李建忠设计模式(一)
1.软件设计的目标软件设计的金科玉律:复用如何解决复杂性:分解:即分而治之,将大问题分解为小问题,复杂问题分解为简单问题 抽象:由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化了的对象模型2.面向对象设计原则变化是复用的天敌,面向对象设计最大的优势在于抵御变化1.重新认识面向对象理解隔离变化:宏观来看,能将变化所带来的影响减为最小 各司其职:微观来看,更强调各个类的“责任”;由于需求变化导致的新增类型不应该影响原来类型的实例即就是各负其责 对象是什
2020-05-09 12:34:17
547
转载 面向对象五大原则
面向对象三大特性五大原则 + 低耦合高内聚面向对象的三大特性是"封装、"多态"、"继承",五大原则是"单一职责原则"、"开放封闭原则"、"里氏替换原则"、"依赖倒置原则"、"接口分离原则"。什么是面向对象面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系...
2020-05-05 10:10:23
296
原创 C#中的事件与委托
目录1.引言2.委托delegate例子:3.事件例子1.引言学习和使用C#有一段时间了,但是对于事件和委托一直一直没有跨过去,到底是怎么一回事呢,今天好好探索一下。2.委托delegatedelegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。与其它的类不同,delegate类能够拥有一个签名(signature),并且它"只能持...
2020-05-04 18:24:32
318
原创 asp.net mvc项目部署到阿里云ECS上
目录1.前言2.HTTP 错误 403.14 - Forbidden( Web 服务器被配置为不列出此目录的内容。)3.HTTP错误500.21-Internal Server Error4.阿里云服务器项目部署好后内网可以访问但外网无法访问1.前言因为之前将项目部署到过本地IIS上,所以往ECS上部署的时候比较快,大体部署过程都是一样的,但还是遇到了一些问题,下面整...
2020-04-30 18:28:49
1544
原创 C#中封装 继承 多态 接口 抽象类
目录1.封装2.继承3.多态1.静态多态性1.函数重载2.运算符重载3.可重载和不可重载运算符2.动态多态性1.虚拟(virtual)和重写(override)2.隐藏3.抽象类4.接口参考1.封装封装被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。C# 封装根...
2020-04-25 20:48:33
780
原创 iis部署相关功能总结
目录1.前言2.托管管道模式3.身份验证1.ASP.NET模拟验证2.匿名身份验证4.IIS_IUSRS用户5.浏览站点 -- 操作文件1.前言今天第一次去在iis部署网站,按照网上给的步骤来的。遇到了很多问题,但一一解决得到了想要的结果。目前还有些问题,例如托管管道模式,身份验证方式等,再学习一下2.托管管道模式托管管道模式有两种:经典和集成。集成...
2020-04-20 21:14:51
411
原创 VS2013 中C#的ASP.NET.MVC项目发布并部署到本机的IIS过程所遇到的问题总结
1.前言这两天主要就看ASP.NET.MVC项目如何发布和上传到,感觉别人才过的坑没踩得坑我好像都遇到了,也是第一次做啦,不过结果还是好的呀。今天就好好把遇到的问题整理下,可能有些问题为啥得那样解决还不清楚,后面慢慢再了解积累了。首先对于部署到本机的IIS在网上搜索很多,就不具体写了,这里放个别人的链接,步骤很清楚参考:https://blog.csdn.net/qingka...
2020-04-20 17:23:01
783
原创 IIS网站:应用程序中的服务器错误——访问被拒绝
目录1.错误2.解决方案3.感想参考:1.错误将本地ASP.net.MVC项目部署到本机的IIS上,出现如下错误:2.解决方案百度搜索有很多关于解决该问题的方法,但是一直就是和我的不匹配(头大),最终如下解决了:操作:在IIS该网站右键——编辑权限——安全——高级——添加IIS_IUSERS并设置权限——确定3.感想这个问题困扰了一晚上,疯了...
2020-04-20 10:16:57
3810
原创 C#中using的用法
1.前言遇到过很多次using,但对于using到底有哪些用法一直没有去了解过,通过学习,了解到using的三种用法,下面一一介绍2.using的三种用法1.using指令使用using导入命名空间,这是一种最常见的用法了。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间如:using System;2.using别名...
2020-04-17 22:54:36
973
原创 springboot中Date类型数据作为参数在postman进行接口测试出错
1.错误描述遇到一个问题,springboot中,后台接口参数是date类型,使用postman去测试该接口,参数格式为:'2018-6-24 21:39:58',出现错误表示传的参数是字符串,而要传的是date.2.解决方案错误原因:错误的意思是不能将String类型转换为Date类型,真正的错误是参数格式不正确。解决方案:参数格式写错了,修改为:2018/7/7 11:11...
2020-04-17 22:05:15
1055
原创 c# 垃圾回收
目录1.前言2.垃圾2.为什么要使用GC3.垃圾回收机制GC1.简介2.代3.托管资源与非托管资源4.对于非托管资源的释放方法5.通过代码感受三种方法的区别1.前言上一篇了解了C#的两大数据类型--值类型和引用类型以及它们的内存管理相关内容,本篇根据上篇内存管理进一步了解一下其垃圾回收机制2.垃圾.Net类型分为两大类,一个就是值类型,另一...
2020-04-16 21:32:41
939
原创 C#值类型与引用类型的学习
目录1.前言2.概念值类型引用类型string的探索3.通用系统类型(CTS)4.值类型和引用类型在内存中的部署栈和堆的了解栈堆值类型和引用类型在栈和堆中的分配5.值类型与引用类型适用场合参考1.前言学习C#也快两年了,之前接触过C,C++,都不深入,但是知道基础,所以在C#学习并没有在基础上用过多时间,后来跟项目,遇到问题,现学现卖,快...
2020-04-12 21:13:29
265
原创 npm install 出错
1.错误信息在运行时中间还遇到了其他一些问题,百度搜索后解决,最终所有矛头都指向了这个问题,百度搜索找到了解决方案2.解决(亲测有效)git config --global url."https://".insteadOf git://参考:https://blog.csdn.net/Linzsong/article/details/100579883...
2020-04-12 18:57:15
248
原创 C#中字符串删除最后一个字符的几种方式
1、使用TrimEnd,public string TrimEnd(params char[] trimChars);参数为字符数组 string str = "abcde"; str = str.TrimEnd('e');string s = " from table union all ";s = s.Trim().TrimEnd("union all".ToCharArr...
2020-04-10 19:25:20
2546
原创 svn向码云提交出错:both sides of the move must be committed together
1.问题描述项目推送到码云仓库中,在使用svn对代码进行更新和上传,今天遇到一个问题,有个.cs文件,之前因不小心在update的时候移除了,所以后来又建了一个和它名字一样的.cs文件,然后提交出错,我就把它名字进行重命名,结果还是出错,具体错误如下:Cannot commit 'C:\Users\zy\Desktop\jiaxun\MvcApplication4\Helpers\Send...
2020-04-09 10:07:54
1758
原创 web端上载文件的访问,实例:web端使用formdata进行文件的提交
目录1.前言2.HTML5 FormData 方法介绍以及实现文件上传步骤:1.问题描述2.例子3.HttpPostedFileBase 类参考1.前言在做MVC框架下一个项目,web端使用form表单提交信息给后台,在提交的信息中有文件,一开始不知道如何处理,后来在在博客上看到别人发的解决了我说遇到的问题,在此进行整理并延伸。2.HTML5 FormDat...
2020-04-07 13:03:03
251
原创 C#中图片存入数据库和从数据库取出图片遇到的问题
目录1.前言2.操作数类型冲突: nvarchar 与 image 不兼容问题描述问题出现原因解决方案3.C#中参数化查询 '(@PERSONAL_PHOTO image,@SURNAME nvarchar(4000),@MIN_NAME nvarcha' 需要参数 '@PASSPORT',但未提供该参数。问题描述出现问题原因解决方案4.在从数据库获取图片数...
2020-04-06 23:28:23
513
原创 将excel文件导入mysql数据库
1.前言因需要向mysql数据库手动写入大量数据,且为了大家能够分工去做,本地数据库直接写入无法满足需求,而将excel文件导入mysql数据库就解决了这个问题,大家分别将数据写入excel中进行合并,最后导入mysql数据库中2.将excel文件导入数据库流程别人写的很全,直接拿过来参考,资源共享啦https://blog.csdn.net/weixin_38437243/art...
2020-04-03 22:29:58
212
原创 .net framework基础知识
目录1.什么是.Net平台、.NET框架2..NET版本3.CLR(公共语言运行时)4.BCL(基础类库)5.FCL(框架类库)3..NET的运行机制6.为什么说.NET是平台无关的7.术语参考:1.什么是.Net平台、.NET框架“平台”(这里指软件技术平台,下面都指的是这个)就是能够独立运行并自主存在,为其所支撑的上层系统和应用提供运行所依赖的环境。...
2020-04-03 20:39:15
1277
原创 C/S与B/S的区别
1.前言一直在说C/S和B/S架构,但到底二者之间的区别是什么,之前一直没有去探究,今天有空,在网上搜索查看,了解到一些内容,进行整理一下2.C/S架构C/S:C/S是client/server的缩写,一种典型的两层架构,即客户端服务器架构。该模式是建立在局域网基础上的,同时客户端需要安装客户端软件才能够使用(其客户端包含一个或多个在用户的电脑上运行的程序,因此客户群稳定)。服务器端有...
2020-04-02 13:47:15
845
原创 C#操作mysql数据库,sql语句在navicat里面运行很正常,但是在C#里面执行,死活没有结果
目录1.问题描述及原因2.解决方案(测试有效)1.问题描述及原因C#操作mysql数据库,其他查询都没有问题,但是涉及到"select SYSTEM from companycode where CHP_NAME=@CHP_NAME",而CHP_NAME字段中存储的是中文,在navicat里面运行很正常 ,结果很正确但是在C#里面执行,死活没有结果。2.解决方案(测试有效)...
2020-03-30 13:26:52
1174
1
原创 C#中调用mysql数据库出错:“给定关键字不在字典中”,解决方案
C#中连接mysql数据库出错:“给定关键字不在字典中”,解决方案1.出现该问题的原因2.解决方案1.出现该问题的原因用C#连接MySql数据库报错:给定关键字不在字典中,是由于连接所用的字符集编码和数据库所用的字符集编码不一致导致的;2.解决方案方案一:MySQL的官网已在6.0.8 版本中修改了bug,升级 MySql.Data.dll为最新的组件即可。(测试成功)方案二:数据库编码...
2020-03-29 22:09:52
13445
1
原创 mybatis中mapper.xml文件增删查改
1.mybatis工作原理2.查询<select id="方法名" parameterType="方法参数类型" resultType="方法返回值类型,全类名" >select 表中字段名 AS 结果字段名 from 表名 where 条件<!--注意:结果字段名与属性名保持一致,区分大小写--></select>3.插入<...
2020-03-09 19:02:04
470
原创 第一次写java代码遇到的问题和感想
目录前言使用postman测试Mybatis中的mapper前言:首先框架已经搭建好了,所以并没有搭建框架,只是写了后台的一个小功能,调试了半天才调好(真的是半天),遇到了几个问题,整理一下使用postman测试1.当请求中的参数含有数组时如何处理以数组名字为key,数组长度是多少,就写多少,后面跟对应的值,timeConsumes和answers分别为两个数...
2020-03-08 22:34:16
409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人