自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringMVC的DispatcherServlet如何从HTTP Servlet中接收信息

本文概述:从简述 Tomcat 如何处理请求, 然后去探究 SpringMVC 如何去接收请求并通过 Dispatcher 进行派发。

2023-03-18 23:51:16 425

原创 Class文件的静态常量池到底存储哪些变量

(如果你好奇, 具体如何存储的, 看上一篇文章), 这里简单说一下, 当创建一个对象引用, 在代码运行的时候, 引用指向的就是对象实例. 但是在文件中无法指向, 在 Class 文件中,对象引用指向的就是一个字符串, 这个字符串就是对象实例的全限定名, 通过这个全限定名, 在真正运行的时候就可以去寻找目标类了,总而言之, 引用类型, 字面量, final 变量, 静态引用都是存储在这里的, 不过需要注意的是, 不要觉得静态常量池中存储的是真正的引用, 实际上这里的"引用", 只是一个序号。

2023-03-16 23:52:04 245

原创 Class文件如何存储基本数据,引用类型

本文概述:在上一个文章我们谈论了关于字节码的信息.这里我们来看看 Class 文件是什么。

2023-03-15 12:48:50 256

原创 字节码是JVM的核心

上文说到,Java 是解释器+编译器并存的架构, 下面来看看在这个基础上, 字节码是什么样的存在.提示:上一篇讲述的是 JVM 是编译器+即时编译架构的下一篇将要讲述 Class 文件本文很短, 最好的阅读顺序是这三篇一起看其实 Java 的解释器+编译器并存的架构, 其实还有些需要注意的地方!这里的编译器+解释器, 指的是 Java 解释器以及即时编译器. 这对应的是将字节码转换成底层代码的两种方式.

2023-03-14 14:26:55 136

原创 JVM采用解释器和编译器并存的架构

本文概述:编译型语言和解释型语言分别是什么, 形象理解其特点JVM 为什么需要解释器和编译器并存的架构。

2023-03-12 14:13:03 176

原创 关于wait,notify,notifyall,sleep方法的思考

这里有些前缀知识, 我会简要说明.如果你了解过 syncrhonized 关键字, 那么就了解, 他可以修饰普通方法, 静态方法, 代码块.synchronized 底层实现是由 Monitor 来实现的, 如果你不懂, 也只需要看我这里说的即可.!当一个线程进入 synchronized 之后, 底层的 Mointor 对象的 _owner 会记录拥有锁的线程, 其他线程查看的时候都不会进入同步代码块, 这就是锁的原来. 而其可重入性, 也是基于这个原因。

2023-03-12 13:42:27 74

原创 为什么重写 equals 方法 () 就要重写 hashCode ()

本文概要:讲述为什么需要重写 equals 方法, 又为什么重写了了 equals 就要重写 hashCode 方法.然后讲述这样做的好处。

2023-03-11 16:26:47 229

原创 String为什么是不可变的

起码, 我们了解到, 如果使用自定义对象作为 Key, 那么就要注意, 是否存储在外部能直接修改内部的值并且会导致 hashCode 改变的任何操作.比如说我们回顾一下 String 能不能在外部修改因为不可变性, 无法修改比如说,Integer 方法Integer 方法无法直接修改. 直接修改, 也是一个新的对象, 不会影响到存入到 HashMap 中的Key。

2023-03-10 20:56:25 503 2

原创 你了解线程的状态转换吗

本文概述:讲述线程的六种状态.你可能已经了解了六种状态, 但是你知道 sleep 被唤醒之后, wait ()被 notify 之后进入了什么状态吗?本文只是开胃小菜, 你看看下一篇文章对你有没有帮助.我们需要了解, 一个线程任意时刻, 只会处于一种状态.

2023-03-09 20:37:58 333

原创 如何正确停止线程

本文概要:介绍如何去正确停止一个线程为什么用 volatile 标记的停止方法可能是错误的?—生产者消费者。

2023-03-08 09:35:42 245

原创 从getBean()分析BeanFactory和ApplicationContext

注意了, loadBeanDefintions 方法并不会去实例化 Bean, 这里只是把我们定义的 Bean 的信息, 封装成 BeanDefiniton 而已, 并不会去实例化.注意, 这里是预加载, 预加载会加载所有的非懒加载的的单例的非抽象的 bean .而懒加载, 其实也是在 getBean ()的时候才会加载的.这是因为 ApplicationContext 的预加载机制, 会加载所有的单例的非抽象的以及非。看见懒加载, 那么懒加载的 bean 啥时候加载?还是 getBean ()方法。

2023-03-07 22:10:37 458

原创 针对于HashMap的(n-1) & hash的研究和拓展思考

本文概览:简单, 直白的看一看为什么 HashMap 中存在 (n-1) & hash 以及 n & hash.思考题: 在 HashMap 中 hash 和 HashCode 有什么关系, 他们是一个东西吗吗?HashCode 的两次扰动本文能解决你的哪些问题?

2023-03-06 19:41:39 293

原创 HashTable,ConcurrentHashMap,ArrayList,LinkedListHashtMap等值对存储null以及二义性的深入研究

本文从设计思路到源码进行讲解.下面是概述HashMap存在二义性 ----> ConcurrentMap,HashTable为什么不存在二义性 ---- > 二义性由 返回值 null ,不能代表元素的存在或者不存在引起 ----> 引申部分 : ArrayList,LinkedList 存在不存在二义性。

2023-03-05 21:10:19 186

原创 【Servlet】Servlet学习之基础篇(HTTP)

【Servlet】Servlet学习之基础篇(HTTP)

2022-09-04 23:04:23 168 1

原创 【Servlet】Servlet学习之基础篇

由浅入深的Servlet系列文章(一)Servlet基础

2022-09-04 20:09:36 104

原创 常见ArrayLIst面试题

将指定的元素添加到此列表的尾部。将指定的元素插⼊此列表中的指定位置按照指定collection的迭代器所返回的元素顺序,将该collection中的所有元素添加到此列表的尾部。从指定的位置开始,将指定collection中的所有元素插⼊到此列表中。移除此列表中的所有元素。返回此ArrayList实例的浅表副本。如果此列表中包含指定的元素,则返回true。如有必要,增加此ArrayList实例的容量,以确保它⾄少能够容纳最⼩容量参数所指定的元素数。返回此列表中指定位置上的元素。...

2022-07-22 22:22:04 904 1

原创 从BIO到实现简单多人聊天室功能--IO模型

从BIO到实现简单多人聊天室功能

2022-07-21 21:52:17 300 11

原创 webAPI第一弹---JS

webAPI介绍第一弹

2022-07-13 09:58:41 110

原创 Vue-router常见错误

Vue错误

2022-07-01 14:24:46 503

原创 ArrayList精讲(源码分析)---Java集合

ArrayList精讲+源码分析

2022-06-27 19:41:27 151

原创 【vue】通过cdn优化element-ui

通过cdn优化element--ui

2022-06-26 23:37:24 972

原创 【Vue】通过ChainWebpack自定义打包入口

vue通过chainWebpack自定义打包入口

2022-06-26 21:52:00 350

原创 处理Vue的语法警告(三种方法)

项目:Vue项目1.关闭 eslint注释掉右侧的部分,并且注意,上语句后的逗号也要删除2.如果不想禁用eslint,方便规范代码,但是担心比较难debug下面是添加规范代码的文件根路径下新建文档.prettierrc文档,在文档内填写规则,更多规则可以网上查询{ "semi": false, // 使用分号, 默认true "singleQuote": true, // 使用单引号, 默认false(在jsx中配置无效, 默认都是双引号) "bracketSp

2022-05-27 15:09:05 1095 2

原创 String为什么无法在方法中修改原有string变量的值

题目public class Exam10{ String str=new String("good"); char[]ch={'a','b','c'}; public static void main(String args[]){ Exam10 ex=new Exam10(); ex.change(ex.str,ex.ch); System.out.print(ex.str+" and "); System.out.print(ex.ch); }

2022-04-23 17:40:38 727 1

原创 【Java数据结构】手写泛型数组

如何构建一个我们自己使用的泛型数组1.可以扩容2.接收“任何”类型(基本数据类型使用包装类型 )3.增删改查存储泛型数据private E[] data;private int size;构造函数 public Array() { this(10); } public Array(int capacity) { data = (E[]) new Object[capacity]; this.size = 0;

2022-04-17 23:28:43 172

原创 【Java数据结构】带有虚拟头节点的链表

虚拟头节点是什么?虚拟头节点就是,在原本第一个节点之前,增加一个节点。即在链表为空时,仅有一个节点。这样操作的好处时,不需要在添加和删除的时候判断是否待删除或者待添加的索引为0使用虚拟头节点有什么好处我们先来对比以下,使用和未使用对于添加元素方法未使用添加元素在理解上图后,要明白一个点,我们想在index插入节点,那么prev必须指向index的前一个节点!!,所以说,我们对于add方法内,要判断index是否为0但是加上了虚拟头节点呢???,加上虚拟头节点后,我们从虚拟头节点的位置开始移动,

2022-04-16 22:27:45 792 1

原创 【JavaScript】前端模块化操作

前言:准备前端的项目的时候,往往就需要模块化操作了模块化操作是什么让一个js文件内的方法可以被其他js文件使用1.es5准备两个文件01.js 02.js01.jsconst m = require('./02.js')console.log(m.subtract(1,2))console.log(m.sum(10,3))const sum = function(a,b){ return parseInt(a) + parseInt(b)}const subtrac.

2022-04-15 23:49:49 439

原创 【设计模式】单例模式精讲(上)

⭐️引言⭐️我将单例模式分为两部分单例模式(上):为什么需要单例模式+案例讲解实现单例模式破坏单例模式的情况及其解决方法反射序列化单例模式(下)- 容器单例- ThreadLocal线程单例- 使用单例处理资源访问冲突- 使用单例表示全局唯一类⭐️为什么需要单例模式⭐️防止重复创建对象而损耗性能在此情况下使用单例模式,好处有这些:1.在内存中只有一个对象,节省内存空间。2避免频繁的建立销毁对象,能够提升性能。3.避免对共享资源的多重占用。4.能够全局访

2022-03-23 09:26:07 119

原创 【数据结构】循环队列

/** * 队列的改良,使得删除元素的时间复杂度为o1 * @param <E> */public class LoopQueue<E> implements Queue<E>{ private E[] data; private int front,tail; private int size; public LoopQueue(int capacity) { data = (E[]) new Object[

2022-03-13 22:05:36 792

原创 【数据结构】平衡二叉树

/** * 平衡二叉树 * 对于 BST 节点元素,一定要实现 Comparable 接口 * @param <E> */public class BST<E extends Comparable<E>> { /** * 二叉树的节点 */ private class Node{ public E e; public Node left ,right; public Node

2022-03-13 22:04:30 1052

原创 Git-实战详解

很多时候,学习 Git 可能往往是为了保存自己的代码开发进度,管理团队的代码。所以很多时候,一般的学生或者是普通的程序员,也只需要了解该如何用ta。重要的不是你会多少条指令,而是你知道在何种情况下,该用哪一条指令,只有真正自己能用到的指令,才算自己真正学会了下面初次见面 — 快告诉我你的名字吧当我们创建项目和 Git 初次见面时,它不知道我们叫什么,第一步就是,告诉它我们的名字和邮箱,先让他知道我是谁 git config -- global user.name '你的名字' git con.

2022-03-06 15:34:14 382 17

原创 【Java多线程】带你用不一样的思维看创建线程的两种方式

创建线程的两种方式通过实现 Runnable 接口public class CreateThread {// 继承 Thread 类来 static class MyThread extends Thread{ @Override public void run() { System.out.println("Hello MyThread"); } }// 实现 Runnable 接口:这个方式更灵活,因为

2022-03-04 18:53:49 2088 1

原创 【Android】关于MediaProject截图的正确姿势(最新)

在使用 MediaProject 的过程种,遇到了N种错误,自己一直也没有解决下面来分享一个我找到的资料,我对作者的代码进行了小部分的修改来完成我的功能。在这里非常感谢作者,我在各种平台都搜集了很久,没有找到一个可用的 MeidaPorject 截屏代码,而网上的教程各式各样,但是实操都会遇到各种各样的问题。由于作者好像在除了 github 平台发布了代码之外,在其他平台并没有找到。特此,使用了作者代码截屏的部分,并修改了部分代码,作者的github仓库sdk 28MainActivity

2022-03-04 17:40:10 641

原创 【Spring】Filter生命周期、Servlet生命周期、bean的生命周期

[1]Servlet生命周期名称时机次数创建对象默认情况:接收到第一次请求修改启动顺序后:Web应用启动过程中一次初始化操作创建对象之后一次处理请求接收到请求多次销毁操作Web应用卸载之前一次[2]Filter生命周期生命周期阶段执行时机执行次数创建对象Web应用启动时一次初始化创建对象后一次拦截请求接收到匹配的请求多次销毁Web应用卸载前一次...

2022-02-28 11:39:03 214

原创 【Spring】基于XML管理bean---(下)---特殊值处理、p名称空间、bean属性赋值(集合)

特殊值处理声明一个类public class PropValue { private String commonValue; private String expression; public String getCommonValue() { return commonValue; } public void setCommonValue(String commonValue) { this.comm

2022-02-13 15:49:56 371 1

原创 【DEBU】java.lang.IllegalStateException: Not a JSON Object: “{\“income\“:\“[{\\\“id\\\“:1,\\\“phone\\\

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2022-02-13 15:41:22 403

原创 【Gson】SpringMVC+Gson/JackSon总结

本文会说在SpringMVC中,使用Gson和Jackson的一些使用过程区别。以及JackSon在spingMVC中的自动解析功能本文会用到1.postman:测试接口2.jackson:3.gson:jackson和gson依赖的导入 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jack

2022-02-13 15:34:53 424

原创 【JSON】Gson使用和踩坑

文章目录序列化和反序列化测试1.int2.double3.string4.Array5.Class6.List<>结果展示:下节:Spring+gson序列化和反序列化测试1.int @org.junit.jupiter.api.Test public void testInt(){ Gson gson=new Gson(); System.out.println("测试int序列化"+gson.toJson(1)); Inte

2022-02-13 14:45:58 343

原创 【Spring】基于XML管理bean---(上)

文章目录一.创建bean1.先创建组件类2.创建spring配置文件3.使用xml声明第一个组件4.创建测试类5.applicationContext.xml6.创建bean时需要注意:二.获取bean1.根据id获取2.根据类的类型#.指定的类型唯一#.指定的类型不唯一3.使用接口类型获取bean三.组件类的bean属性赋值四.引入外部bean1.声明新的bean3.在原来的组件中引用这个新的组件4.xml文件声明注意:五.内部bean六.级联属性7.构造器注入1.新组件类2.配置前言:本文在测试时,

2022-02-11 13:07:03 484 9

原创 【Java】异常处理、try...catch语句

文章目录1. 异常1.1 try...catch异常处理1.2 多catch并行处理1.3 throw和throws 关键字的使用1.4 finally代码块1.5 RuntimeException异常1.6 自定义异常1. 异常1.1 try…catch异常处理try catch的异常处理的格式写法 :try{ 被检测的代码 可能发生异常的代码}catch(异常类的类名 变量名){ 异常的处理方式 : 写什么都可以 定义变量,创建对象,调用方法,循环,判断.

2022-02-10 21:56:01 1509

空空如也

空空如也

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

TA关注的人

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