手写简易MVC – IOC
耦合 在软件系统中,层与层之间存在依赖关系,我们称之为耦合。 我们系统架构设计的一个原则是:高内聚低耦合。层内部的组成应该是高度聚合的,而层与层之间的关系应该是低耦合的。 在上一篇中...
手写简易MVC – 引入三层架构
什么是三层架构 在实际工作中,业务是很复杂的。为了更好的降低各层之间的 耦合度(系统的复杂度,在三层架构程序设计中,采用面向抽象变成。即上层对下层的调用,是通过接口实现的。而下...
手写简易MVC-DispatcherServlet
这一篇不要过多的纠结代码质量,只要是思想。这一块不看对工作没有影响,但是为了往更高的方向发展,还是需要掌握的。 1. Servlet 优化 1.1 需求 假设我们有一个简易的水果店铺管理系统,对应的...
一、JVM与Java体系结构
尚硅谷JVM课程学习笔记,课程来源:尚硅谷宋红康JVM教程 字节码 我们平时说的java字节码,指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统...
Servlet 继承关系
1. 继承关系 2. 方法关系 3. service方法 当有请求过来时,service方法会自动响应(tomcat容器调用)。 在HttpServlet会根据请求类型(get、post等)调用对应的方法(doGet、doPost) 由于HttpS...
java中带参数的try(){}语法含义是什么
我们大多数用的是try{ }的形式 InputStream is = null; OutputStream os = null; try { //... } catch (IOException e) { //... }finally{ try { if(os!=null){ os.close(); } if(is!=null){ is...
三、运行时数据区概述及线程
运行时数据区概述 1. 前言 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载 –> 验证 –> 准备 –> 解析 –> 初始化,这几个...
Servlet 生命周期
1. Servlet接口 Servlet生命周期对应其中的三个方法:init()、service()、destroy() 2. 生命周期 2.1 验证 发起两次请求后关闭tomcat 2.2 打印结果分析 第一次请求时,Servlet会实例化(构造方...
Map.getOrDefault()
该方法是根据Map集合的key获取value,如果key不存在,就使用默认值。 代码演示: Map<String, Map> testMap = new HashMap<>(); Map<String,String> map = null; if(testMap.containsK...
四、程序计数器(PC寄存器)
介绍 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里,并非是广义上所指的...
Servlet 会话
HTT协议本身P是无状态的,服务器无法区分两次请求是否是同一个客户端发送过来的。所以两个用户操作时,便会产生数据错误。因此通过会话跟踪技术来解决这个问题。 1. Cookie 1.1 本质 在浏览器端...
原码、反码和补码
学过编程的小伙伴应该都知道,在计算机系统中,数值一律用补码来表示和存储。下面我们来看下为什么计算机要使用补码来表示数值。 一. 原码, 反码, 补码的基础概念 在探求为何计算机要使用补码之...