自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

是小D吖!的博客

一名学生党,写好每一篇博客。

  • 博客(89)
  • 资源 (3)
  • 收藏
  • 关注

原创 JVM垃圾回收算法以及垃圾回收器看这一篇就够了!

MinorGC,MajorGC, FullGCMinorGC 清理整合新生代: eden 的清理,幸存者区的清理Minor GC触发条件:当Eden区满时,触发Minor GC。MajorGC清理整个OldGen的内存空间FullGC 清理整个堆空间—包括年轻代和永久代。Full GC触发条件:(1)调用System.gc时,系统建议执行Full GC,但是不必然执行(2)老年代空间不足(3)方法区空间不足(4)通过Minor GC后进入老年代的平均大小大于老年代的可用

2021-01-13 12:06:55 223

原创 Synchronized锁及其原理(内有思维图)

Sychronized锁

2020-11-07 10:01:35 524

原创 SpringMVC流程动态图

2020-09-22 18:45:42 213

原创 Java关键字小记

本篇是Java关键字的一个小总结static,final,abstract,extends,throw,throws,volatile等Staticstatic翻译为静态的可以修饰①类②变量③方法④导入一个包⑤代码块静态内部类在java中如果一个类被声明为静态的,那么只有一种情况,即这个类是内部类,外部类不能被声明为静态的。静态内部类只能访问静态的成员变量和方法,不能访问非静态的方法和属性。静态内部类可以声明普通成员和方法,而普通内部类不能声明静态成员和方法。静态内部类可以单独初始化。

2021-08-18 09:19:55 297

原创 8-17小记

Comparator比较器的使用435. 无重叠区间 - 力扣(LeetCode) (leetcode-cn.com)给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: [ [1,2], [1,2],

2021-08-18 09:18:55 268

转载 java8的ConcurrentHashMap为何放弃分段锁,为什么要使用CAS+Synchronized取代Segment+ReentrantLock

原文地址:https://cloud.tencent.com/developer/article/1509556今天突然被一个同事问到java8为何放弃分段锁,于是花了点时间针对这个问题进行了小小的总结。jdk1.7分段锁的实现和hashmap一样,在jdk1.7中ConcurrentHashMap的底层数据结构是数组加链表。和hashmap不同的是ConcurrentHashMap中存放的数据是一段段的,即由多个Segment(段)组成的。每个Segment中都有着类似于数组加链表的结构。关于Segme

2021-08-15 10:33:12 1964

原创 Java二进制整数与负数的取反

按位取反是对补码进行运算,当运算完后,再将补码变回原码。正数正数的补码、反码都是其本身。正数:9原码反码补码0000 10010000 10010000 1001对补码按位取反之后为:1111 0110,此时的二进制数为补码。此时的二进制数为补码,因为负数的补码是反码加1先减一变为反码 1111 0101反码再取反变为原码 1000 1010 (-10)所以9的按位取反结果为-10负数负数的反码是符号位不变,其余位取反。负数的补码是反码加1。负数:-9

2021-07-05 21:02:47 1325

原创 刘汝佳算法入门经典习题3-2分子量

给出一种物质的分子式(不带括号),求分子量。 本题中的分子式只包含4种原子,分别为C、H、O、N, 原子量分别为12、1、16、14(g/mol)。 例如:C6H5OH的分子package jingdong;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Stack;/** * Created with IntelliJ ID

2021-03-28 10:28:18 216 1

原创 设计模式-单例模式与反射破坏机制

文章目录懒汉式饿汉式DCL静态内部类枚举反射破坏单例模式与解决办法对饿汉式单例模式使用反射对懒汉式DCL使用反射首先什么是单例模式?单例模式指的是一个类只能有一个实例,该类负责创建自己的对象,同时确保只有一个对象被创建。注意:1. 单例类只能有一个实例2. 单例类必须自己创建自己的唯一实例3. 单例类必须给其他对象提供这一实例为什么需要单例模式?因为在默写情况下一个实例时非常重要的,例如线程池,数据库的连接池都需要用单例模式创建来保证只有一个。再举一个简单的例子Win10的任务管

2021-02-25 19:31:20 187

转载 阿里云轻量级服务器开放端口号

https://www.pianshen.com/article/1958836725/

2021-01-28 15:00:56 831

原创 JVM类加载子系统

JVM的整体结构类加载子系统类的加载指的是将类的.class文件中二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类加载的最终产品是位于堆区中的class对象,Class对象封装了类在方法区内的数据结构,并向Java程序员提供了访问方法区内的数据机构的接口. 我们可以通过类名.class来获取一个类的类型的引用,通过new 类名().getClass()来获取一个实例变量的类的引用类加载子系统分为三个

2021-01-11 22:32:27 224 2

原创 JVM运行时数据区

@TOC运行时数据区分为五个模块:方法区,堆,Java栈,本地方法栈,PC程序计数器。线程共享:方法区和堆线程私有:Java栈,本地方法栈,PC程序计数器。PC程序计数器PC程序计数器每个线程都有一份,PC寄存器用来储存下一条指令的地址,执行引擎读取其存储的指令地址所指向的指令并执行。可以想象成一个行号的指示器。使用PC寄存器存储字节码指令地址有什么用?为什么使用PC寄存器记录当前线程的执行地址?答:使用PC寄存器存储字节码指令地址保证CPU切换线程回来之后直到该从哪执行。​ JVM的

2021-01-11 22:31:31 337

原创 RabbitMQ中的WorkQueues模型

文章目录Work Queues模型循环调度1.开发消费者1(Accept1)2.开发消费者2(Accept2)消息确认1.开发消费者1(Accept1):2.开发消费者2(Accept2):3.测试结果:公平派送(能者多得,弱者少得)1.开发消费者1(Accept1):2.开发消费者2(Accept2):3.测试结果:Work Queues模型这种模型有一个生产者,两个消费者,一个队列。生产者向"hello"队列发送消息。消费者从该队列接收消息。https://www.rabbitmq.com/t

2021-01-02 13:20:30 311 2

原创 RabbitMQ中的Topic模型

Topic模型Topic模型是对Routing模型的一种改进,最主要的一点过就是Topic模型使用了通配符。*代表的是一个单词#代表的是0个或多个单词1.开发生产者package topic;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import util.RabbitMQUtils;import java.io.IOException;import java.uti

2021-01-02 13:18:42 788

原创 RabbitMQ中的Routing模型

Routing模型Routing模型是对Fanout模型的一种改进,Routing模型可以通过交换机给匹配对应的RoutingKey,也就是交换机可以选择相对应的队列名称来发送对应的消息,而不是Fanout模型中给所有队列发消息。需要注意的是在声明交换机时需要把类型声明为direct类型。1.开发生产者package direct;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import

2021-01-02 13:17:42 196 1

原创 RabbitMQ中的Fanout模型

fanout 模型(发布/订阅模型)生产者只能向交换机发送消息,关于交换机,一方面,它接收来自生产者的消息,另一边是将它们推送到队列中。交换机必须确切地知道如何处理它收到的消息。应该把它追加到特定的队列中吗?应该追加到许多队列中吗?或者它应该被丢弃。由交换类型定义的‎‎规则‎‎。‎Fanout模型非常的简单,就是交换机把消息广播给所有已知的队列。临时队列为什么需要创建临时队列呢?因为我们希望听到所有日志消息,而不仅仅是其中一个子集。也只对当前流动的消息感兴趣, 而不是旧消息。在 Java 客户端中,

2021-01-02 13:14:03 523

原创 RabbitMQ中的HelloWorld模型

RabbitMQ中的角色Producer:Producing means nothing more than sending. A program that sends messages is a producer :queue:A queue is the name for a post box which lives inside RabbitMQ. Although messages flow through RabbitMQ and your applications, they can onl

2021-01-02 12:56:03 143

转载 RabbitMQ的下载安装及运行

RabbitMQ的下载安装及运行安装Erlang由于RabbitMQ是基于Erlang(面向高并发的语言)语言开发,所以在安装RabbitMQ之前,需要先安装Erlang。yum -y install epel-release //安装完成之后你就可以直接使用yum来安装额外的软件包了yum -y update //安装任何软件包之前,建议使用以下命令更新软件包和存储库安装Erlangyum -y install erlang socat您现在可以使用以下命令检查Erlang版本。er

2020-12-31 13:29:29 398

原创 JVM整理思路框图,原创超详细!

自己记的笔记:原创不易,对你有帮助就点个赞吧。

2020-11-19 15:25:53 178

转载 多线程避免虚假唤醒为什么要用while而不能用if?

#多线程的判断为什么要用while而不能用if?

2020-11-18 15:39:59 1037

转载 idea中的maven模块变成灰色的可能原因

在使用idea的过程中,遇到其中一个maven模块变成灰色,如下所示:造成这个的原因可能是忽略了maven模块,可以尝试如下解决方法:在idea中maven的setting中找到ignored files,看右边的面板中是否将变灰的maven模块忽略了。我的模块变灰就是因为这个原因,如下图所示:...

2020-11-09 19:56:02 855 1

原创 Lock锁及获取锁的四种方法

Lock锁

2020-11-07 19:01:10 18762

原创 JUC概述

JUC是什么?JUC就是java.util.concurrent,java.util.concurrent.atomic和java.util.concurrent.locks三个工具类包,它们是处理线程的工具包,最开始出现是从JDK 1.5开始出现。(JUC就是java.util.concurrent工具类的首字母,简称JUC)JUC的三大部分JUC包括三大部分:Sychronized,Lock,线程池三大部分。...

2020-11-06 09:16:48 2008

转载 轻松学,Java 中的代理模式及动态代理

 代理代理是英文 Proxy 翻译过来的。我们在生活中见到过的代理,大概最常见的就是朋友圈中卖面膜的同学了。她们从厂家拿货,然后在朋友圈中宣传,然后卖给熟人。按理说,顾客可以直接从厂家购买产品,但是现实生活中,很少有这样的销售模式。一般都是厂家委托给代理商进行销售,顾客跟代理商打交道,而不直接与产品实际生产者进行关联。所以,代理就有一种中间人的味道。接下来,我们说说软件中的代理模式。代理模式代理模式是面向对象编程中比较常见的设计模式。 这是常见代理模式常见的...

2020-10-11 12:39:05 196

转载 秒懂,Java 注解 (Annotation)你可以这样学

转自: https://blog.csdn.net/briblue/article/details/73824058 文章开头先引入一处图片。 这处图片引自老罗的博客。为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的。至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明。好了,可以开始今天的博文了。 Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解。 我个人认为,比较糟糕的技术...

2020-10-11 10:42:14 273

转载 JdbcTemplate 和 mybatis 的对比

好处:1. jdbcTemplate 是spring对 jdbc操作数据库进行的封装,使得开发者可以直接在java文件中 编写sql,无需配置xml文件。2. 简单效率快缺点:1. 使用时创建连接,不使用时立即释放。频繁的连接开启和关闭造成资源的浪费,影响数据库的性能。解决办法:使用数据库连接池,管理数据库的连接。2. 将sql硬编码到java代码中,如果sql修改,需要重新编译java代码,不利于系统的维护。解决办法:把sql语句定义在 xml配置文件,静态资源3. 在stateme

2020-10-10 14:32:36 5440

原创 Spring - IOC Bean管理(XML方式)

Bean管理外部beanref内部bean与级联赋值集合类型注入集合里边设置对象,集合提取为公共部分单实例 多实例 scope生命周期

2020-10-10 13:46:21 87 1

原创 Spring - IOC 依赖注入(XML方式)

bean标签DI依赖注入1. setter方法注入2.使用有参构造注入3.注入null(使用标签)和带有特殊字符的属性值(使用<![CDATA[ ]]>)bean标签 <bean id="user" class="com.d.Spring.IOC.User"></bean> 常用属性: id:类的唯一标识 class:类的全路径名称 创建对象的时候默认的是执行无参构造方法来创建对象DI依赖注入1. setter方法注入User类:pub.

2020-10-05 18:08:55 201 1

原创 Spring - IOC 容器底层原理

IOC概念控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫**“依赖查找”(Dependency Lookup)**。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。-- 百度百科下面会用通俗易懂的话为大家解释IOC底层原理和什么是IOC容

2020-10-04 22:37:55 492 1

原创 SpringMVC和Spring是什么关系?

作者:庄胜文链接:https://www.zhihu.com/question/39678061/answer/312545961来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Spring Web框架基本流程知道了Spring MVC框架,现在来看看它的流程Spring MVC Framework大至流程如下:当web程序启动的时候,ContextLoaderServlet会把对应的配置文件信息读取出来,通过注射去初始化控制器DispatchServlet. 而当

2020-09-22 18:43:49 716

原创 2020/9/21日报 controller层接受ajax数据为null

项目场景:ajax中使用serialize()方法传参,controller层接到的值并插入数据库。问题描述:1. controller层接到的参数为null 2. Cause: java.sql.SQLException: Data truncated for column 'year' at row 1原因分析:1.input标签中的name和Thesis类中的字段不对应。(注释掉的是错误的,没注释的是正确的)2. year字段接受的数据过长,超出字节范围。解决方案:

2020-09-21 21:14:08 866

原创 Uncaught TypeError: $(...).modal is not a function

项目场景:ssm框架配合bootstrap和AJAX,点击按钮弹出模态框。问题描述:Uncaught TypeError: $(…).modal is not a function原因分析:没有引入bootstrap.min.js <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <link href="https://cdn.bo

2020-09-19 15:04:49 3738 4

原创 2020/9/19日报 $ is not defined $ 在 JQuery 里的意思< script >标签不生效Address localhost:8080 is already in use

项目场景:通过ajax向服务器发请求,然后通过获取到json数据,将其展示到页面。问题描述:html报错Uncaught ReferenceError: $ is not defined$ 在 JQuery 里的意思< script >标签不生效Error running ‘Tomcat’: Address localhost:8080 is already in use原因分析:未引用jquery库jquery.min.js文件无没有预前加载jquery库808

2020-09-16 23:14:17 335

原创 Jquery中的AJAX

querySelectorAll 和 getElementsByTagName区别get 请求$.get(url, [data], [callback], [type]) url:请求的 URL 地址。 data:请求携带的参数。 callback:载入成功时回调函数。 type:设置返回内容格式,xml, html, script, json, text, _default。post 请求$.post(url, [data], [callback], [type]) url:请求的 U

2020-09-14 21:23:29 78

原创 原生AJAX

AJAX的优缺点优点缺点http协议请求报文响应报文AJAX的优缺点优点可以无需刷新页面而与服务器端进行通信允许你根据用户事件濑更新部分页面内容缺点没有浏览历史,不能回退存在跨域问题对SEO(爬虫)不友好http协议请求报文重点是格式与参数行头空行体get请求,体为空,post请求,体可以不为空。响应报文行 HTTP/1.1 200,404, 403,401,500 状态码 头 空行体 html内容...

2020-09-13 21:35:31 83

原创 2020/9/3 日报:利用Ajax实现分页查询

学习目标学习内容学习产出Ajaxbug问题描述原因分析解决方案学习目标利用Ajax实现分页查询学习内容尚硅谷SSM框架实战,ssm整合教程学习产出•1、访问index.jsp页面•2、index.jsp页面发送出查询请求•3、Controller层来接受请求,查出数据•4、来到list.jsp页面进行展示上面这种方式只适用于浏览器和服务器之间的交互模型。AjaxAjax返回json数据适用于各种客户端例如andriod,ios等,它们解析起来也会更方便。Ajax的关键元素包.

2020-09-03 23:15:10 191

原创 2020/9/2 日报 debug:实现分页逻辑,二次调用接口时name为null。

项目场景:提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obta

2020-09-02 15:13:52 154

原创 2020/9/1 日报

项目背景实现增删改查功能问题描述:bootstrap的引入jsp文件下通过td标签跳转到controller层解决方案:1.bootstrap文档下载bootstrap然后放入项目的 web/WEB-INF/static 中<!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatib

2020-09-02 00:14:31 109

原创 2020/8/30 日报

项目场景:ssm框架的搭建项目场景:配置springmvc环境(第一步一定先要引入jar包)问题描述:手动创建xml文件时头标签报错<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co

2020-08-30 20:45:08 197

原创 Git的分支管理常用命令

文章目录分支管理git stashgitmerge与git rebasegit merge --squashcherry-pick分支管理命令作用git branch查看当前分支git checkout/git switch 分支名称切换分支git merge 分支名称将指定分支合并到当前分支git branch -d 分支名车删除指定分支git diff 分支名称1 分支名称2显示两个分支之间的差异git diff 分支名称1 分支名称2

2020-08-14 17:13:38 234

数码管频率测量.zip

1.第一个内容请详细说明单片机在你所选定的领域中的具体应用,包括单片机应用原理图,程序流程图,在此应用中用到了单片机的哪些具体功能(应尽可能将所有片内功能包器件的含进来),这些功能是如何应用的。原理图用proteus画出,流程图用word的画图工具或其他工具画,禁止手绘。不需要附程序代码。 2.报告第二个内容需给出单片机的应用原理图(Proteus)和程序流程图,在Proteus中接入信号频率发生装置和方波显示装置。详细说明此功能是如何实现的,并附上相应程序代码。

2020-07-26

课程设计:温度报警器和篮球计分器.zip

包含proteus原理图(proteus是8.7以上才能打开)和可以用kei4l运行的c语言程序,都能用,不能用你来打我。

2020-07-22

计算机网络历年试题.zip

好好复习才能不挂科。

2020-07-03

空空如也

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

TA关注的人

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