自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

算法与编程之美

微信算法类排名前十、加V认证公众号,腾讯云+社区“人气作者”优秀专栏,CSDN博客专家,全网累计阅读量100万++人次。

  • 博客(28)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 Tomcat源码分析之 doGet方法(四)

欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。 1目标 本次源码分析目标了解客户端请求在StandardContextValve中做了哪些工作。 2分析方法 根据第一讲的堆栈信息,结合Intellij Id...

2018-02-26 11:47:00 294

原创 Tomcat源码分析之 doGet方法(四)

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。 1 目标本次源码分析目标了解客户端请求在StandardContextValve 中做了哪些工作。 2 分析方法根据第一讲的堆栈信息,结合 Intellij Idea 的堆栈视图、断点、单步调试等手段分析源码。 10. atorg.apache.catalina.core.Stand...

2018-02-26 11:45:19 455

原创 Tomcat源码分析之 doGet方法(三)

欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。 通过前面两讲我们知道,客户端的请求会经过一系列的过滤器,最终达到Servlet,我们深入理解了Tomcat过滤器的实现机制以及Servlet的相关处理。在了解这些之...

2018-02-25 10:14:00 322

原创 Tomcat源码分析之 doGet方法(三)

欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。 通过前面两讲我们知道,客户端的请求会经过一系列的过滤器,最终达到 Servlet,我们深入理解了Tomcat 过滤器的实现机制以及 Servlet 的相关处理。在了解这些之后,我们不禁要问,客户端请求在到达这一系列的过滤器之前发生了什么呢? 1 目标本次源码分析目标了解客户端请求在...

2018-02-25 10:09:00 467

原创 Tomcat源码分析之 doGet方法(二)

欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。 在第一讲我们介绍了当一个请求到达Servlet时,首先将ServletRequest和ServletResponse转化为HttpServletRequest...

2018-02-23 16:40:00 254

原创 Tomcat源码分析之 doGet方法(二)

欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。 在第一讲我们介绍了当一个请求到达 Servlet 时,首先将 ServletRequest 和 ServletResponse 转化为 HttpServletRequest 和 HttpServletResponse,然后获得 HTTP 请求的方法类型,最后根据不同的方法类型调用不...

2018-02-23 16:32:42 527

原创 50行代码实现简单的网站服务器 (三)

在上一讲我们针对需求提出了一种新的解决方案,经过分析我们发现这种方法虽然在某种程度上改善了代码的结构,但是本质上只是一种任务的转移,并未解决问题。本讲我们将提出一种新的解决方案。 1 问题描述对于之前的网站服务器,我们想要在启动之前打印"some operations before server start!",在服务器销毁之前打印"some operations before server de...

2018-02-22 21:22:37 382

原创 50行代码实现简单的网站服务器 (一)

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。本系列教程将和您一起探讨如何利用Java语言一步一步实现自己的web服务器。1需求描述第1讲我们要实现的效果是:当我们在浏览器的地址栏输入localhost:8080的时候,我们会看到"hello,this is my web server!"。如下:2实现做任何事情都不能...

2018-02-22 21:22:02 1009

原创 50行代码实现简单的网站服务器 (二)

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。50行代码实现简单网站服务器 1 https://my.oschina.net/gschen/blog/853408在上一讲我们介绍了如何利用java语言只用50行代码就可以实现一个简单的网站服务器,该服务器的功能是当我们在浏览器的地址栏输入localhost:8080的时候,我们会看...

2018-02-22 21:20:24 473

原创 浅谈Ruby中的block, proc, lambda, method object的区别

摘要: 本文主要介绍了ruby开发中的比较容易混淆的几个概念,并以简单示例的形式展现他们之间的区别,明白了这些区别之后,在今后的开发中可以准确并优雅的使用它们。前言当大家在百度中搜索“block proc lambda”的时候,会出来很多关于这几个概念之间区别的介绍,既然搜索结果中已经有了这些介绍,那为什么还要写这篇文章?相信看过百度搜索结果中排名靠前的几篇文章的同学,都会发现其实这些文章并没有很...

2018-02-22 21:14:48 421

原创 动态规划算法-凑硬币

动态规划算法是计算机科学算法中最重要也是最常用的一个算法, 巧妙的利用它可以解决很多复杂的问题,另外也频繁的出现在各大互联网公司的面试中,因此掌握它是十分必要的。但该算法对于初学者来说,要想彻底的掌握理解它并非易事,本系列教程将带领大家一起来学习该算法,通过经典的案列介绍和解题分析,试图归纳出一套统一的方法来解决动态规划类题目。本系列重点介绍分析问题的思路和方法,而非直接告诉你答案,给您不一样的分...

2018-02-22 21:14:19 2037

原创 动态规划算法-LCS

本讲我们来探讨动态规划算法中一个常见的问题最长公共子序列即LCS(Long Common Sequence)。首先我们来看一下问题描述:有两个序列X和Y,其中X = {x1, x2, ..., xm}Y = {y1, y2, ..., yn}求X和Y的最长公共子序列长度。 例如:X={1, 3, 5, 9, 10}  Y={1, 4, 9, 10},则X和Y的最长公共子序列的长度为3,其中一个序列...

2018-02-22 21:13:51 1192

原创 SQL JOIN 简单介绍

摘要: join? left join? right join? inner join?outer join?太多join了,您是否了解各种join之间的区别和联系?本文以简单的示例描述各种join之间的区别和联系,希望对您有所帮助,同时本文有错误之处还请您不吝指出。1 前言本文还是秉持之前一贯的写作风格,以简单易懂的示例帮助大家了解各种join的区别。2 为什么需要join为什么需要join?j...

2018-02-22 21:08:53 487

原创 基于HTTPS的安全机制的研究(二)

欢迎点击 「算法与编程之美」 ↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注。摘要: 以简洁易懂的方式分析HTTPS背后的原理。基于HTTPS的安全机制的研究(一) 接上文。2.3 混合加密方式接下来我们探讨采用对称加密+非对称加密混合加密方式。通过2.1 对称加密方式 一节的分析,我们知道,此种方式最大的问题在于密钥的安全性,一旦密钥被攻击者获取,那么本次传输将变为明文传输。通过...

2018-02-22 10:59:26 348

原创 基于HTTPS的安全机制的研究(一)

摘要: 以简洁易懂的方式分析HTTPS背后的原理。欢迎点击 「算法与编程之美」 ↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注。1 问题提出现在广泛使用的HTTP协议采用的是一种明文传输的方式,因此通信双方的数据在网络上传输是十分不安全的。2 解决方案一种简单的解决方案就是对传输的数据进行加密处理。目前流行的加密方式有两种:对称加密和非对称加密。2.1 对称加密首先讨论对称加密方式...

2018-02-22 10:58:33 561

原创 聊一聊C语言的参数传递

欢迎点击 「算法与编程之美」 ↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注。本讲我们和大家一起来聊一聊C语言中有关参数传递的一些知识。1. 问题引入请写出以下程序的打印结果。#include <stdio.h>// 将某整数加10void add_by_10(int a){ a = a + 10;}int main(int ...

2018-02-22 10:56:58 280

原创 聊一聊C语言变量

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。我们知道每一个程序的运行都需要内存,那么C语言的变量的定义是什么含义呢?假如我花了200元买了一块4G内存条,然后我定义了一个inta ;就意味着从这4G的内存上要拿走4个字节,又定义了一个intb;那么b同样也要从4G的内存条上拿走4字节。这就是C语言变量的一般含义,每一个变量实质上...

2018-02-22 10:54:47 268

原创 聊一聊内存管理(二)

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。在上一讲我们给大家重点介绍了什么是内存管理,让大家对内存管理有了整体的认识。简单来说就是,程序的运行需要内存,你如何管理并给这些程序分配内存。 本节我们来给大家介绍最简单的一种内存管理方案:单一连续区分配。为什么说这种内存分配是最简单的呢?接下来我们就做详细的介绍。单一连续区内存分配的...

2018-02-22 10:52:32 324

原创 聊一聊内存管理(一)

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。“最近的电脑打开程序非常慢,而且运行的时候很卡,有没有什么解决办法呢?”“去京东买个4G 的内存条加到电脑里面吧!”在我们的生活中,经常会遇到这样的对话。当我们的电脑运行程序变得很慢很卡的时候,就会听到身边的朋友建议我们去增加电脑的内存。这是为什么呢?内存在计算机体系结构中起了什么样的...

2018-02-22 10:51:58 433

原创 Volley源码分析(一)

摘要: 史上最简单清晰的 volley 源码分析系列。欢迎点击 「算法与编程之美」 ↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注。1 前言我们首先来看一下使用Volley执行一个简单的Http GET请求的案例。RequestQueue queue = Volley.newRequestQueue(getApplicationContext());StringRequest s...

2018-02-22 10:48:23 255

原创 一种基于状态机的 DOM 树生成技术(二)

摘要: 本文介绍了一种基于状态机的分词技术,设计了一个能够识别HTML 字符串中分词的状态机,并对状态机的运行流程做了细致的分析。欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。在上一篇https://my.oschina.net/gschen/blog/1618549我们给大家介绍了状态机的基本概念、设计思路以及基于 Java 语...

2018-02-22 10:47:27 479

原创 StringBuffer源码分析之 append 方法

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。StringBuffer 这个类是我们日常开发中经常会使用的一个字符串操作类,该类提供了非常多的关于字符串操作相关的类,尤其是 append 方法更为常用。1 目标本次源码分析的目标是深入了解 StringBuffer类中 append 方法的实现机制。2 分析方法首先编写测试代码,...

2018-02-22 10:46:29 4594 8

原创 Tomcat源码分析之 doGet方法(一)

摘要: 本文是《Tomcat 源码分析之 doGet方法》的第一篇文章,主要介绍了源码分析的目标以及主要任务有哪些,并对Servlet知识点做了非常细致的介绍,帮助大家更好的了解 Servlet,以及为什么用户自定义的 Servlet 需要继承 HttpServlet。欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。Servlet是...

2018-02-21 17:58:21 3798

原创 Tomcat源码分析之 doGet方法(一)

Servlet是 JavaWeb 开发中最常使用的一个接口,尤其是这个接口中的 doGet()和 doPost()方法。我们在做 web 开发的时候,经常会自定义一个 Servlet 如 HelloServlet,并且让这个类继承 HttpServelt,接着重写 doGet()方法就可以快速实现我们自己的请求服务。那么 doGet()方法的背后到底发生了什么?有些同学可能会说这个问题很简单啊, 就是HttpServlet 做了一次封装会判断 HTTP 请求的类型,如果是 get 请求就调用 doGe.

2018-02-18 22:25:00 1619

原创 StringBuffer源码分析之 append 方法

欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。 StringBuffer 这个类是我们日常开发中经常会使用的一个字符串操作类,该类提供了非常多的关于字符串操作相关的类,尤其是 append 方法更为常用。 1 目标...

2018-02-15 10:57:00 571

原创 一种基于状态机的 DOM 树生成技术(2)

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。在上一篇 Java 语言的实现,希望大家能够了解相关...

2018-02-08 17:29:39 317

原创 一种基于状态机的 DOM 树生成技术(一)

欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。DOM(Document Object Model)即文档对象模型,是一种非常重要的数据结构,用途非常广泛。对于浏览器的渲染引擎来说,需要将html字符串转换成 DOM树,再转换成渲染树,最后才进行渲染。对于数据采集来说,经常需要做的是解析已经下载的 html文档,而这种解析工作的前...

2018-02-05 14:45:57 756 1

原创 一种基于状态机的 DOM 树生成技术(1)

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。DOM(Document Object Model)...

2018-02-05 14:11:14 359

学生成绩管理系统(Python版).7z

学生成绩管理系统是各类程序设计课程的一个常见课程设计项目,包括了学生成绩信息的增删改查和排序功能。虽然学生成绩管理系统互联网上随处可见,但是大多数代码命名不规范、随意性大,而且代码质量较为糟糕,尤其是并未充分体现面向对象的设计理念。本资源针对上述问题进行了充分的设计,是一份非常难得的面向对象程序设计的入门教学案例。系统主要包括了Student、StudentManager、FileManager、MenuManager四个类,其中StudentManager是核心类,也是系统的入口所在。

2021-10-13

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

TA关注的人

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