自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (3)
  • 收藏
  • 关注

原创 Java中try-catch-finally含return语句的执行情况

在Java中, 1、如果try语句中有return,那么finally语句(没有return)是否执行? 执行。 2、如果try语句,finally语句块中都有return,怎样执行? 从try->catch->finally依次执行(如果异常执行catch),并返回最后一次return的结果。 3、如果try语句中有return而finally语句中没有,finally中代码是否会影响try中return返回值的结果? 不会情况一:publi...

2021-12-11 12:07:50 715

原创 二叉树结点的两种写法

定义结点typedef struct BTNode{ int data; struct BTNode *lchild; //指向左孩子结点指针 struct BTNode *rchild; //指向右孩子结点指针}BTNode;以上述二叉树结点为例,有两种写法①BTNode BT;②BTNode *BT;BT=(BTNode*)malloc(sizeof(BTNode));①就是制作一个结点。②的执行过程:先定义一个结点的指针BT,然后用函数malloc.

2021-01-13 15:08:53 711

原创 线性表中的元素循环位移问题

线性表中的元素循环位移问题算法设计思想循环位移问题中,会将左移过程中越界的部分置于原线性表的尾部。同理,右移过程中则会将越界部分置于原线性表的首部。以左移为例做下列分析:1、线性表的元素循环左移,越界部分为A,为越界部分为B。原序列即为AB。2、这样循环左移就可以视为是将原序列(AB)转换成序列(BA)3、先将A序列置为逆序,即(-A)4、再将B序列置为逆序,即(-B)5、此时原序列转化为了((-A)(-B))6、最后将整个序列在置为逆序,最终得到(BA)问题概述设将n(..

2021-01-12 20:17:20 524

原创 针对顽固dll后缀文件删除

从网上查了好多都,要么要用管理员身份开CMD,要么要结束explorer.exe然后再删除。作为一个手残党,我尝试并没有成功。然后,从网上找到一个简单粗暴的方式:把要删除的dll后缀文件的后缀名改程.mp4然后重启,就可以直接删除了!(至少我这样做十分有效!不过记得不了解相关dll后缀的文件不要乱删,可能会系统崩溃。。。害怕)...

2020-09-19 23:48:53 1284

原创 线程------初识

进程和线程算是操作系统内两个基本而且重要的概念,进程是操作系统中进行保护和资源分配的基本单位,操作系统分配资源以进程为基本单位。而线程是进程的组成部分,它代表了一条顺序的执行流。目录线程和进程:创建线程:方式一:(使用Thread类)方式二:(使用接口Runnable)线程和进程:多进程:在操作系统中能(同时)运行多个任务(程序)多线程:在同一应用程序中有多个顺序流(同时)执行创建线程:方式一:(使用Thread类) 定义一个线程类,它继承类Thre...

2020-06-18 11:49:05 98

原创 Android------布局(Layout)

布局是指页面的控件的摆放样式。在Android中使用.xml格式来控制布局。一、布局分类: 1、线性布局 2、相对布局二、布局的优化技巧: 1、比例划分(线性布局特有) 2、布局嵌套一、布局分类:1、线性布局(LinearLayout):内部的控件全部横向或者纵向一字排布。这里只介绍几个基本的属性设置,刚开始学也没有贪多。设置方向:android:orientation="horizontal"//横向...

2020-06-15 21:04:59 445

原创 设计模式------访问者模式(Visitor)

设计模式------访问者模式(Visitor)1、访问者模式的本质:预留通路,回调实现。2、访问者模式的目的:封装一些施加于数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变(即把处理从数据结构分离出来)。3、访问者模式的倾斜的可扩展性设计: 访问者模式支持对访问者的扩展而不支持对数据结构(或元素)的扩展。 访问者模式提供了倾斜的可扩展性设计:方法集合的可扩展性和类集合的不可扩展性。(即如果系统的数据结构是频繁变化的,则不...

2020-06-14 10:21:47 273

原创 设计模式------享元模式(Flyweight)

享元模式在编辑器系统中大量的使用。享元模式以共享的方式高效的支持大量的细粒度对象。享元对象能够做到共享的关键是区分内部状态(Internal State)和外部状态(External State)。内部状态是存储在享元对象内部并且不会随环境改变而改变。因此内部状态可以共享。外部状态是随环境改变而改变的、不可以共享的状态。享元对象的外部状态必须由客户端保存,并且在享元对象被创建之后,在需要使用的时候再传入到享元对象的内部。外部状态与内部状态是相互独立的。享元模式设计的重点就在分离变与不

2020-06-13 09:44:12 154

原创 策略模式——工资支付

下面代码中添加了两种新的方式:1、扩展上下文的方式:优点:(1)所有策略的实现风格统一,策略需要的数据都统一从上下文来获取,这样在使用方法上也很统一(2)在上下文添加新的数据,别的相应算法也可以用得上,可以视为公共的数据缺点:(1)如果只有一个特定的算法来使用这些数据,那么这些数据有些浪费(2)每次添加新的算法都去扩展上下文,容易形成复杂的上下文对象层次2、在策略算法的实现上添加自己需要的数据的方式:优点:比较好想,实现简单缺点:(1)跟其他策略实现的风格不...

2020-06-04 12:13:05 392

原创 策略模式——写日志

//日志策略接口public interface LogStrategy { public void log(String msg) throws FileNotFoundException, Exception;}public class DbLog implements LogStrategy { public void log(String msg) { if(msg!=null&&msg.trim().length()>5) ...

2020-06-04 10:30:46 324

原创 Java Web应用开发技术(6)------Java操作Excel文档

在Web开发中,如果需要将Excel文档的信息导入到数据库或者将数据库的信息导出到Excel文档中,这就需要应用程序访问Excel文件。目前操作Excel文档的Java组件主要有Jxl和POI两种。我今天介绍的是Jxl的用法。1、读取Excel表读取的操作过程:(1)一般需要由电子表工作簿创建Workbook对象(2)然后,基于Workbook对象获取工作簿的工作表,形成Sheet对象(3)最后由Sheet对象获取工作表的行、列,并基于行、列值对工作表的单元格实现读操作Work

2020-06-04 00:24:37 162

原创 Java Web实用开发技术(5)------文件的上传与下载

文件的上传与下载是一个Web应用程序的常见模块。通过文件上传可以将资源传到服务器上保存或供大家共享;通过文件下载可将网络上的资源保存到本地离线查看。1、常见文件上传下载组件使用Java技术实现文件上传下载,需要借助于输入输出流类实现,比较复杂。而借助于一些上传下载组件来实现则非常简单,而且效率比较高。常见的上传下载组件有FileUpload、jspSmartUpload、Cos等,在这里我选择使用Cos组件来实现文章的上传和下载。Cos是一个性能优秀的上传下载组件,使用非常容易的实现文件

2020-06-03 21:47:28 321

原创 C#连接并对MySql进行基本操作

如果不清楚怎么用C#连接MySql数据库,这里可以直达哦https://blog.csdn.net/qq_43236424/article/details/106487710创建C#的Windows窗体应用程序,然后连接好MySql数据库然后在Form窗体中添加需要的组件,我使用了Label、Button、TextBox和DataGridView。在这里墙裂推荐学习一下DataGridView的使用,真的特别方便,可以直接导入数据库中的信息并自己生成对应的表格!简直就是懒癌患者的福音!在下列添加

2020-06-02 09:39:42 365

原创 C#连接MySql数据库操作步骤

我用的是VS2019,对于C#连接MySql数据库刚开始走了好多弯路,今天把自己的总结分享给大家。1、准备工作:(1)、VS连接数据库,SQL Server是必不可少的。我用的版本是mysql-5.5.20-win32.msi。(2)、然后就是需要两个驱动包,mysql-connector-net和mysql-for-visualstudio。(这里不用担心下载的版本问题,如果版本低的话VS会检测到然后提醒你去更新的)2、添加MySql.Data扩展程序包:(1)、在解决方案资源管理器中

2020-06-02 09:16:10 1123

原创 Java Web实用开发技术(4)------在线编辑器

在线编辑器是一种通过浏览器等对文字、图片等内容进行在线编译修改的工具,让用户在网站上获得“所见即所得”效果。例如:实现诸如留言板、论坛、新闻发布等Web模块时,经常用到在线编译器,它使得我们可以像Word一样在线编译我们的留言或新闻内容。在线编译器一般具有如下基本功能:(1)文字的编辑(2)文字格式(如字体、大小、颜色)的设置(3)表格的插入和编辑;图片、音频、视频等多媒体的上传、导入和样式修改等常见的在线编辑器有:FreeTextBox、CKEditor(其旧版本为FCKedito

2020-06-01 09:23:15 1057

原创 设计模式——桥接模式(Bridge)

总结面向对象实际上就两句话:一是松耦合(Coupling),二是高内聚(Cohesion)。面向对象系统追求的目标就是尽可能地提高系统模块内部的内聚(Cohesion)、尽可能降低模块间的耦合(Coupling)。然而这也是面向对象设计过程中最难把握的部分。耦合&脱耦:(1)耦合,就是两个实体的行为的某种强关联。而脱耦是将它们的强关联去掉,就是耦合的解脱。(2)脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。 ①将两个角色之间的继承关系...

2020-05-31 11:12:01 241

原创 设计模式——单例模式(Singleton)

单例模式是设计模式中最为简单、最为常见、最容易实现,也是最应该熟悉和掌握的模式。公司企业在招聘的时候为了考察员工对设计模式的了解,考的最多的就是单例模式。设计模式——单例模式(Singleton)保证一个类仅有一个实例,并提供一个访问它的全局访问点(1)该模式拥有一个私有构造函数(确保用户无法直接通过new直接实例化它)。(2)该模式包含一个静态私有成员变量instance(为了使这个类的所有对象共享这一个成员变量)。(3)该模式包含一个静态公有方法GetInstance(不通过

2020-05-30 23:46:49 182

原创 Java Web实用开发技术(3)------MD5加密

在一个Web系统中,如果注册用户的密码可以直接以明文存储,则数据库管理员可以查看所有用户的密码;而且如果数据库被黑客入侵,则会造成用户信息的泄露。 为了避免这样的情况发生,通常采用加密技术对用户密码加密后再存储到数据库中,现在比较流行的加密算法是MD5。MD5加密(Message Digest 5):是一种加密算法,能够对字节数组进行加密。1、特点:(1)不能根据加密后的信息(密文)得到加密前的信息(明文)(2)对于不同的明文,加密后的密文也是不同的2、...

2020-05-30 10:10:45 391

原创 Java Web实用开发技术(2)------生成二维码

二维码 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。 通常可以将一个URL生成一个二维码,用户通过“扫一扫”功能快速跳转到该地址。二维码的生成方法: 生成二维码的方法有很多,可以使用Google的ZXing组件、Denso公司的QRCode组件或Jquery插件等。 这里介绍的...

2020-05-29 23:30:51 389

原创 Java Web实用开发技术(1)------图形验证码

图形验证码1、简介:在Web应用的登录功能中,主要通过对用户密码进行验证来识别用户。验证码就是在用户界面上以图形的方式显示的一些符号,通常是字母、数字或汉字组成的一个随机字符串。它通常是由服务端程序(如Servlet)产生并保存的(保存在session范围内),登陆或注册时将用户输入的验证码和服务器端保存的验证码进行比对。2、实现:(1)图形验证码的生成: 可通过一个Servlet完成该任务,也可通过JSP或JavaBean,以Servlet为例,核心代码如下:p...

2020-05-28 21:42:07 451 1

原创 设计模式——策略模式(Strategy Pattern)

类的划分原则面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同功能和属性的对象的抽象集合才是类。设计模式——策略模式(Strategy Pattern)策略模式是对算法的包装,是把使用算法的责任和算法本身分割开,委派给不同的对象管理。策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。环境(Context)角色:持有一个Strategy类的引用(上.

2020-05-28 12:18:03 207

原创 设计模式——简单工厂模式(Simple Factory)

首先要先明白面向对象编程区别于面向过程(结构化)编程的特点:易维护、易扩展、易复用另外在设计模式中,用抽象类或者接口做父类是一个很常见的操作。而这么做对于设计模式方面的最直接的好处有两点:(1)规范(2)隔离实现隔离实现的意义是:接口(这里的接口是抽象类、接口的一类统称)用来封装隔离具体的实现,目标就是不让客户端知到封装体内部的具体实现。使客户端通过一些抽象类、接口来访问程序的一些信息,从而避免了使得客户直接接触到一个程序的实现部分(子类)设计模式——简单工厂模式(Simple

2020-05-27 00:24:20 176

原创 ArrayList集合的缺点和解决办法

在ArrayList眼中所有的元素类型都是Object,所以ArrayList不是类型安全的。ArrayList集合在使用值类型数据时,其实就是在不断地做装箱和拆箱工作,需进行大量的计算。 装箱:把值类型打包到Object引用类型的一个实例中 拆箱:指从对象中提取值类型例如:foreach(Animal item in arrayAnimal)在这行代码执行(拆箱)时,只会输出Animal类型的对象。如果在此时ArrayList中有其它类型的对象,在运行(Run)过程...

2020-05-26 16:00:56 332 1

原创 封装、继承、多态的优缺点

封装:每个对象都包含它能进行操作所需要的所有信息,这个特征成为封装。封装的好处:(1)良好的封装能够减少耦合(代码与界面)(2)类内部的实现可以自由修改的(3)类具有清晰的对外接口(确定内容的访问属性,是公有还是私有;字段是只读、只写或者是可读可写等)继承:使子类拥有父类非private的属性和功能,子类还具有自己的属性和功能,同时子类还可以改写父类中的功能(方法重写、与多态有关)继承的好处:(1)代码共享,减少创建类的工作量(每个子类都具有父类的属性和方法)。提高了代码的重用性

2020-05-26 09:23:02 4208

原创 敲开“设计模式”的大门

什么是设计模式?设计:(1)设计一定是有原则的(2)设计的最后结果,一定能体现出它的优点模:就是模式、模板的意思式:就是方式、方法的意思模式,就是可以作为模型或者模板的方式或方法,类似于范例。(就是提供一种已经为我们搭好的框架,是我们进而去完善我们的内容)设计模式(Design pattern):是指在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、

2020-05-24 23:11:52 109

原创 算法设计与分析11——回溯算法

回溯算法回溯法是一种组织搜索的一般技术,有“通用的解题法”之称,用它可以系统的搜索一个问题的所有解或任一解。有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。可以系统地搜索一个问题的所有解或任意解,既有系统性又有跳跃性。回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。这种以深度优先的方式系统地搜索问题的解的方法称为回溯法。2n皇后问题在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可

2020-05-08 23:19:55 216

原创 算法设计与分析10——贪心算法

鱼塘钓鱼问题约翰有h(1≤h≤16)个小时的时间,在该地区有n(2≤n≤25)个湖,这些湖刚好分布在一条路线上,该路线是单向的。约翰从湖1出发,他可以在任一个湖结束钓鱼。但他只能从一个湖到达另一个与之相邻的湖,而且不必每个湖都停留。假设湖i(i=1~n—1),以5分钟为单位,从湖i到湖i+1需要的时间用ti(0<ti≤192)表示。例如t3=4,是指从湖3到湖4需要花20分钟时间。已知在最初5分钟,湖i预计钓到鱼的数量为fi(fi≥0)。以后每隔5分钟,预计钓到鱼的数量将以常数di(di≥0..

2020-05-08 22:41:55 301

转载 算法设计与分析——拦截导弹

问题描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系...

2020-05-07 09:48:13 490

原创 算法设计与分析9——贪心算法

木棒加工问题现有n根木棒,已知它们的长度和重量。要用一部木工机一根一根地加工这些木棒。该机器在加工过程中需要一定的准备时间,是用于清洗机器,调整工具和模版的。木工机需要的准备时间如下:(1)第一根木棒需要1min的准备时间;(2)在加工了一根长为l ,重为w的木棒之后,接着加工一根长为l ' (l ≤ l' ),重为 w' ( w≤w')的木棒是不需要任何准备时间的,否则需要一分钟的准备...

2020-05-05 09:48:15 251

原创 算法设计与分析8——贪心算法

1、删数问题给定n位正整数a,去掉其中任意k≤n个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n位正整数a和正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。输入第1行是1个正整数a,第2行是正整数k。输出对于给定的正整数a,编程计算删去k个数字后得到的最小数。思路:采用贪心算法求解,最近下降点优先的贪心策略。参考代码如下:string ...

2020-05-05 08:14:44 258

原创 算法设计与分析7——贪心算法

从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。从贪心算法的定义可以看出,贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而由问题自身的特性决定了该题运用贪心算法可以得到最优解。...

2020-05-04 16:40:02 268

原创 算法设计与分析笔记6——动态规划

动态规划之0—1背包问题分析:背包容量为j,可选物品为i,i+1,…,n时0-1背包问题的最优值。则建立计算p(i,j)的递归式如下:参考代码如下:#include<bits/stdc++.h>using namespace std;#define NUM 50#define CAP 1500int w[NUM];int v[NUM];...

2020-04-26 19:51:08 156

原创 算法设计与分析5——动态规划

动态规划(该算法常用于求解具有某种最优性质的问题)1、基本思想:将待求解问题分将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。注:该问题分解得到的子问题往往不是相互独立的。在动态规划法中:我们可以用一个表记录所有以解的子问题的答案。不管这些子问题的解之后有没有被用到,只要它们被计算过就...

2020-04-26 19:35:34 323

原创 算法设计与分析4——分治法

分治法: 思想:将一个难以直接解决的大问题,划分成一些规模较小的子问题,以便各个击破,分而治之。 求阶过程:(1)划分 (2)划分子问题 (3)合并启发式规则:1. 平衡子问题:最好使子问题的规模大致相同。也就是将一个问题划分成大小相等的k个子问题(通常k=2),这种使子问题规模大致相等的做法是出自一种平衡(Balancing)子问题的思想,它几乎总是比子问题规模不等...

2020-04-22 14:51:35 411

原创 算法设计与分析3——递归分治策略

分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。可行性:如果原问题可分割成k个子问题(1<k≤n),且这些子问题都可解,并可利用这些子问题的解求出原问题的解,那么这种分治法就是可行的。一、递归算法:程序直接或间接调用自身的编程技巧1、优点:一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大...

2020-04-16 15:17:25 350

原创 算法设计与分析2——递推算法

​​

2020-04-15 22:50:11 259

原创 算法设计与分析1——绪论

一、算法理论的两大论题:算法设计、算法分析1. 算法设计---对于一个问题如何设计一个有效的算法2. 算法分析---如何评价或判断一个算法的优劣二、为什么要学习算法理由1:算法——程序的灵魂问题的求解过程:分析问题→设计算法→编写程序→整理结果程序设计研究的四个层次:算法→方法学→语言→工具理由2:提高分析问题的能力算法的形式化→思维的逻辑性、条理性三、...

2020-04-15 20:13:54 803

原创 数据结构10——排序

排序(插入排序、交换排序、选择排序、归并排序、分配排序)排序算法的稳定性:假定待排序的记录集中,存在多个具有相同键值的记录,若经过排序,这些记录的相对次序仍保持不变,则称这种排序算法是稳定的;否则,称为不稳定。排序的分类根据排序数据在内存中还是外存中: 内排序:在排序的整个过程中,待排序的所有记录全部被放置在内存中 外排序:由于待排序的记录个数太多,不能同时放置在内存,而需...

2019-12-23 11:14:42 202

原创 数据结构9——查找

查找 静态查找:不涉及插入和删除操作的查找 适用于查找集合一经生成,便只对其进行查找,而不进行插入和删除操作;或经过一段时间的查找之后,集中的进行插入和删除等修改操作; 动态查找:设计插入和删除操作的查找 适用于查找与删除操作在同一个阶段进行,;例如当查找成功时,要删除查找到的记录,当查找不成功时,要插入被查找的记录。查找的结构:面...

2019-12-21 19:18:06 199

原创 数据结构8——图(2)

1、最小生成树(最小代价生成树)Prim法:(加点法) 时间复杂度:O(n*n)——适用于稠密图 辅助数组:lowcost(=arc[0][i])和adjvex(=0)(0是始点)void prime(MGraph G){ for(int i=1;i<G.vertexNu;i++){//若有n个点,需要执行...

2019-11-29 22:16:56 164

eclipse 黑色主题插件.zip

eclipse老版本里面没有Dark主题,这对习惯了黑色界面的程序员不是很友好。这个还算是一个相对不错的黑色主题的替代品。

2020-06-17

jxljar .zip

Java读取Excel所需的驱动,下载后将其粘贴在WebContent——WEB-INF——lib下并Add Build Path即可使用

2020-06-04

SpaceSniffer.zip

小巧好用的磁盘空间清理工具。占内存不到2M,无需安装,解压即用。以块状树平铺直观展现磁盘空间占用情况的软件,使用简单,功能直击痛点,而且通过这个软件可以真实删除所要删除的文件或文件夹。

2020-05-25

空空如也

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

TA关注的人

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