自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 设计模式之工厂模式

工厂模式工厂模式要素Java示例Python示例工厂模式工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建功能对象的方法, 允许工厂子类决定实例化对象的类型要素一是抽象的工厂类,定义抽象的方法,在抽象方法中创建具体的功能对象二是功能类的接口,根据实现类的不同从而实现不同的功能抽象工厂类是用于子类继承的,子类继承后要重写其中的创建方法,不同的子类可以生成不同的接口实现者的实例对象Java示例1.功能类的接口public interface Animals { voi

2021-03-23 19:42:30 109

原创 Java中Integer和int值的比较

intint是基本类型的一种== 对于基本类型比较的是值IntegerInteger是引用类型的一种,是int类型的包装类== 对于引用类型比较的是内存地址int 与 Integer 的比较Integer i = 50;底层调用了Integer的valueOf方法public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high

2020-07-04 14:18:50 581

原创 Java——XML解析

XMLXMLXML的解析方式dom4j解析XMLXMLxml是可扩展的标记语言,语法与HTML类似,但是HTML的标签元素是固定的,xml的标签元素是由用户自定义的xml是HTML的补充,一般用于编写配置文件引入本地xml的约束<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">命名空间:解决元素与属性的名称冲突问题,例如引用了多个schema文件,这些文件中定义多个同名称元素时就会出现名字冲突<web-app xmlns="http:

2020-05-11 23:17:23 160

原创 Java连接数据库——JDBC

JDBCJDBCJDBC中的接口使用JDBC的步骤SQL注入封装功能代码JDBCJDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问通过数据库厂家提供的Driver接口,连接数据库,通过不同数据库的驱动操作数据库JDBC中的接口常用接口:1.Driver接口:用于注册驱动 装载MySql驱动:Class.forName("com.mysql.jdbc.Driver"); 利用反射注册

2020-05-11 17:55:27 162

原创 数据库——MySQL(二)

MySQL存储引擎默认存储引擎存储引擎存储引擎:使用特殊的存储机制、索引技巧、锁定水平并且最终为数据库提供广泛的不同的功能和能力通过选择不同的存储引擎,能够获得额外的功能,从而改善你的应用的整体功能数据库引擎是用于存储、处理和保护数据的核心服务查看当前mysql默认引擎: show variables like '%engine%';查看mysql支持哪些引擎:show engines;set default_storage_engine=innodb;修改引擎(会话级别),重启失效默认存

2020-05-10 17:15:34 228

原创 数据库——MySQL(一)

MySQL

2020-05-09 17:23:51 346

原创 python并发编程(七)——IO模型

IO模型IO操作的时间IO模型阻塞IO(blocking I/O)非阻塞IO(noblocking I/O)信号驱动IO (signal blocking I/O)IO多路复用(I/O multiplexing)异步IO(asynchronous I/O)IO操作的时间一个进程中IO的read操作发生时会经历两个阶段的时间:1.进程去系统中获取数据时的等待数据准备时间2.系统接收到发送来的数据,复制后从内核拷贝到进程中的时间如果要想提高IO效率,常见的就是将第一步等待数据的时间降低IO模型I

2020-05-09 11:40:22 126

原创 python并发编程(六)——协程

并发编程协程协程进程是资源分配的最小单位,线程是CPU调度的最小单位

2020-05-08 23:21:59 116

原创 python并发编程(五)——线程(二)

并发编程线程中的信号量Semaphore线程中的事件Event线程中的Condition定时器线程中的队列线程池线程中的信号量Semaphorethreading模块中Semaphore就是信号量semaphore本质就是一个内置的计数器每当调用acquire()时,内置计数器-1每当调用release()时,内置计数器+1计数器不能小于0,当计数器为0时,acquire()将阻塞线程...

2020-05-07 22:49:15 91

原创 Java框架——SpringMVC(三)

SpringMVCSpringMVC的拦截器SpringMVC的拦截器拦截用户的请求,拦截时间在处理器映射器映射出要执行的处理器类,并且找到对应的处理器适配器,在适配器执行处理器之前拦截;拦截器会和处理器绑定在一起,作为一个处理器执行链,返回给中央调度器1.自定义拦截器需要实现HandlerInterceptor接口,重写其中3个方法:preHandle方法在处理器执行前调用 有一个...

2020-05-07 16:55:20 108

原创 Java框架——SpringMVC(二)

SpringMVCSpringMVC的重定向与转发SpringMVC的重定向与转发1.使用String作为返回值的时候,直接在字符串前添加redirect:表示当前字符串为重定向的请求路径forward:表示为转发的请求路径@Controller@RequestMapping("/test")public class MyController { @RequestMapping...

2020-05-06 18:01:51 169

原创 Java框架——SpringMVC(一)

SpringMVCSpringMVCSpringMVC的简略流程第一个MVC程序SpringMVCSpringMVC是一种基于Java,实现了Web MVC设计模式的轻量级Web框架SpringMVC的简略流程简略流程:1.服务端接收到用户发送请求2.中央调度器dispatcherServlet拦截请求3.将请求发送到处理对应业务的处理器Handlet上4.处理器返回处理结果给中...

2020-05-06 18:01:40 236

原创 Java数据结构与算法——快速排序

排序算法快速排序快速排序将一个无序的数组分为两个无序的数组其中一个数组的最大值小于等于另一个数组的最小值两个数组各自进行排序后拼接在一起就是完整的有序的数组...

2020-05-03 11:56:01 88

原创 Java框架——Mybatis(三)

MybatisMybatis实体类属性与数据库表名不一致Mybatis实体对象属性的封装动态SQLSQL片段批量插入Mybatis实体类属性与数据库表名不一致在SQL映射文件中使用resultMap 标签完成映射 public class Student {//实体类的属性 private Integer sid; private String sname; private int ...

2020-04-30 17:41:24 114

原创 Java框架——Mybatis(二)

MybatisMybatisMybatis

2020-04-28 15:56:27 100

原创 Java框架——Mybatis(一)

MybatisMybatisMybatis的架构第一个Mybatis程序Mybatis的接口式编程Mybatis的全局配置文件Mybatismybatis是一个优秀的持久层框架支持自定义SQL,存储过程以及高级映射MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和 Java POJO(Plain O...

2020-04-27 14:20:25 131

原创 python并发编程(四)——线程(一)

并发编程线程线程与进程的区别为什么学线程全局解释器锁GIL线程的使用线程线程是CPU调度的最小单元进程是资源分配的最小单位每一个进程最少有一个线程python 提供了几个用于多线程的模块(thread,threading,Queue等)thread,threading提供了创建和管理线程的方法thread提供了对基本线程和锁的支持,不支持守护线程threading提供了级别更高,功...

2020-04-26 23:53:48 206

原创 Java框架——Spring(三)

SpringSpring中JDBC与事务Spring中JDBC与事务spring对于JDBC模板的应用实际是IoC的应用,将JDBC模板对象注入给了Dao层的实现类Spring对于事务的管理实际是AOP的应用,将事务作为切面织入到Service层的业务方法中1.导入jar包spring-framework-4.3.2.RELEASE\libs\spring-jdbc-4.3.2.RELE...

2020-04-24 14:32:58 129

原创 Java框架——Spring(二)

SpringSpringSpring

2020-04-20 18:50:27 116

原创 Java框架——Spring(一)

SpringSpringSpring

2020-04-19 12:50:54 278

原创 常用jar下载地址

常用jar下载地址https://mvnrepository.com/search

2020-04-18 21:47:30 655

原创 JavaWeb(十一)——Listener监听器

ListenerListenerservletContextListenerservlet3.0的ListenerServletContextListener监听器的主要作用其它监听器HttpSessionBindingListenerHttpSessionActivationListenerListener监听器就是监听某个对象的的状态变化的组件事件源:被监听的对象 ----- 三个域对...

2020-04-18 21:41:19 107

原创 JavaWeb(十)——Filter过滤器

filter过滤器Filter一个自定义的简单Filterservlet3.0后的Filter过滤器Filter过滤器Filter是Servlet技术中最实用的技术之一对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目 标资源访问前后进行逻辑处理一个自定义的简单Filter1)自定义的简单MyFilter类实现Filter接口2)实现接口中尚未实现的方法(着重实现...

2020-04-18 20:49:27 142

原创 JavaWeb(九)——AJAX

AJAXAJAX的运行原理AJAX应用获取响应数据AJAX提交中参数的携带问题AJAX中数据类型Jquery的Ajax技术AJAX是一种异步数据交互技术或者局部刷新技术它可以在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容AJAX的运行原理同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待状态异步现象:客户端发送请求到服务器端,无论服务器是否...

2020-04-18 11:42:35 322

原创 Java数据结构与算法——希尔排序

排序算法希尔排序希尔排序希尔排序也是一种插入排序,是插入排序经过改进的版本,也称为缩小增量排序将列表根据一定的增量分组,对每组组内元素进行直接插入排序将增量减少,再次分组,再次对组内进行排序;当增量为1时,整个列表就是一组再次进行直接插入排序,这样得到的就是有序列表希尔排序不需要大量的数据移动就可以完成列表的排序例如10个元素的列表,增量为10/2 = 5所有将列表分为5组,下标...

2020-04-16 17:02:00 106

原创 Java数据结构与算法——直接插入排序

排序算法插入排序插入排序一个序列中只有1个元素那它一定是有序的取原序列第一个元素作为子序列,这个子序列一定是有序的取出原序列第二个元素赋值给哨兵,将哨兵的值与子序列最后一个元素进行比较 如果子序列最后一个元素大于哨兵的值,将子序列扩大一位,将子序列最后一个元素后移一位 循环遍历哨兵与子序列前一位的值的大小,直到当前值小于哨兵的值,就将哨兵的值放在子序列当前下...

2020-04-16 15:22:45 137

原创 Java数据结构与算法——简单选择排序

排序算法简单选择排序简单选择排序假定一个临时变量存储最小元素的下标,int temp = 0;假定一个临时变量来存放最小元素的值 int min = arr[temp];将这个临时的最小元素int min与无序数组的元素一一比较,如果无序数组的元素小就将替换最小元素的值int min = arr[index];int temp = index;一轮下来就找到了最小元素如果最小元素...

2020-04-15 15:45:05 74

原创 Java数据结构与算法——冒泡排序

排序算法冒泡排序冒泡排序创建一个无序的数组1、指定一个临时指针指向第一个元素,比较相邻的下一元素。如果第一个比第二个大(小),就交换他们两个。2.临时指针自增1,比较第二个元素与相邻的下一元素当指针等于数组长度 - 2 时,当前数组最大的数就在数组最末尾重复上述流程,当指针等于数组长度 - 3 时第二大的数就在数组倒数第二个位置public static void bubbleSo...

2020-04-15 14:53:43 144

原创 Java数据结构与算法——算法简要概念

算法时间频度时间频度的比较时间复杂度时间复杂度的计算常见的时间复杂度空间复杂度数据结构是程序的基础,算法就是程序的灵魂时间频度一个算法执行时间与执行语句次数,用T(n)表示int sum = 0;for(int i = 0 ; i <= 100 ; i++){ sum += i;}//以上代码的T(n) = n + 1;int sum = (1+100)*100/2;...

2020-04-15 14:33:49 84

原创 JavaWeb(八)——JSP(三)实际应用

页面数据增删改查简易版

2020-04-13 17:19:36 215

原创 设计模式——装饰器模式

设计模式装饰器模式Java实现实际应用python实现装饰器模式在不改变源代码的基础上对一个对象的功能进行增强可以对一个对象装饰多个功能Java实现1.实现和原对象一样的接口2.重写需要增强的方法原始未增强的代码接口public interface MyInter { public void print();}原始类public class Source imple...

2020-04-12 23:18:37 76

原创 JavaWeb(七)——JSP(二)

JSPEL表达式EL表达式的查找域空间EL表达式获取不同类型的参数EL中的运算符EL的内置对象EL 的标签库MVC与三层架构JSTL表达式JSTL常用标签EL表达式EL表达式:在JSP页面中获取数据的简单方式只能从四大域中获取只能在JSP静态页面通过${域对象中的参数名}的形式来获取 1.使用java代码块来存放数据<% String name = "bjpowernode;...

2020-04-07 17:01:02 140

原创 JavaWeb(六)——JSP(一)

JSPJSP注释JSP运行原理Java代码块JSP的声明语句块JSP的表达式块JSP的内置对象域对象域对象—ServletContext域对象—HttpSession域域对象—ServletRequest域域对象—PageContext域JSP指令page指令include指令taglib指令JSP动作JSP(Java Server Pages):java服务器页面它是一个简化的Servlet...

2020-04-07 16:15:27 99

原创 前端——Bootstrap框架

BootstrapBootstrapBootstrapBootstrap是Twitter开源的基于HTML、CSS、JavaScript的前端框架可以使得代码规范化,命名,页面风格都统一中文下载地址:http://www.bootcss.com/...

2020-04-01 22:21:19 117

原创 JavaWeb(五)——Session和Cookie

会话技术会话过程cookiecookie流程cookie应用Cookie的持久化时间Cookie的携带地址设置获取cookie参数将用户最后访问时间封装到cookie中SessionSession应用会话过程一次简单请求过程:浏览器发送请求到服务器,服务器解析请求创建request和response对象将请求转给对应的servlet对象,调用service方法,处理业务,产生响应数据封装响...

2020-04-01 22:16:41 98

原创 JavaWeb(四)——response

responseresponse设置响应信息接收到一个请求后,Tomcat会创建一个request和response对象作为doGet/doPost方法的参数request表示客户端请求的信息response表示服务器响应的信息在doGet方法内调用response.getWrite().write("xxx")来给response对象写入数据,这些数据存放在response缓冲区To...

2020-04-01 21:16:17 123

原创 生产者/消费者模式

设计模式生产者/消费者模式python实现改进版生产者/消费者模式生产者:产生数据的模块消费者:处理数据的模块两者通过内存缓冲区进行通信python实现生产者生产数据过快,消费者处理数据太慢? 可以设置一个容器(队列)存放生产数据,用容器的大小限制生产速度,容器满了就不在生产生产者生产数据过慢,消费者处理数据过快? 多增加几个生产源如何判断生产者生成数据完毕? a.判断队列...

2020-03-31 15:45:32 79

原创 Java数据结构与算法——链表

链表模拟链表链表是一种常见的基础数据结构,元素是链式的,以节点的形式存储数据元素节点之间不一定是连续的链表可以动态的进行存储分配可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点链表都有一个头指针,一般以head来表示,存放的是一个地址。链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的链表中每个节点都分为两部分,一个数据域存放数据,一个是指针域指向下一个...

2020-03-30 21:14:25 93

原创 python并发编程(三)——进程间的控制

并发编程信号量Semaphore事件Event进程的控制锁Lock:加锁后,同一份资源只能一个进程去调用信号量Semaphore:同一时间某一个资源可以同时允许指定个数的进程去访问事件Event:通过信号来控制所有的进程同时执行或进入阻塞信号量Semaphorefrom multiprocessing import Semaphore利用锁的原理实现的,内置了一个计数器,同一时间只...

2020-03-30 16:38:32 141

原创 python并发编程(二)——进程间的通信

并发编程进程间的通信队列进程间的通信用文件共享数据可以实现进程间通信,但也有如下的缺点:1.效率低(共享数据基于文件,而文件是硬盘上的数据)2.需要自己加锁处理进程异步是为了提高效率,但是为了数据安全加锁后,将之改为同步又降低的效率 因此我们需要一种解决方案能够兼顾:1、效率高(多个进程共享一块内存的数据)2、数据安全问题的处理。这就是mutiprocessing模块为我们提供...

2020-03-30 16:14:27 203

空空如也

空空如也

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

TA关注的人

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