自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端页面设计 | 博客系统

——页面介绍博客列表页:显示了当前系统中都有哪些发布出来的博客导航栏:logo,标题,主页,写博客,注销左侧:当前用户信息,用户的头像+名字+其他的简单信息右侧:博客列表列表中的每一项,包含了,博客标题,发布时间,摘要信息,查看全文按钮博客详情页:显示了当前博客,详细正文导航栏:和博客列表页相同左侧:显示的是当前文章的作者信息右侧:显示当前文章的详细内容了登录页面:包含了一个登录框,输入用户名,密码,登录按钮博客登录页 :登录博客的界面输入用户名输入密码确认登录博客

2022-05-23 18:11:35 15159 16

原创 计算机是如何工作的,Java多线程编程

一、冯诺依曼体系现代的计算机,大多遵守 冯诺依曼体系结构 (Von Neumann Architecture)CPU 中央处理器: 进行算术运算和逻辑判断.AMD Ryzen 7 580OU with Radeon GraphicsGHz 叫做 CPU 的主频这个数字越大,CPU 就算的越快,表示 1s 执行 32 亿条指令存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)输入设备: 用户给计算机发号施令的设备.输出设备:计算机个用户汇报结果的设备针对存储空间硬盘 &

2022-03-27 13:40:57 12357 49

原创 ERROR | Web server failed to start. Port 8080 was already in use.

Description:Web server failed to start. Port 8080 was already in use.Action:Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.

2024-07-05 21:33:32 409

原创 Chrome | ERR_MANDATORY_PROXY_CONFIGURATION_FAILED

重置设置 / 创建新账户。

2023-10-13 15:57:59 664

原创 LeetCode 833. 字符串中的查找与替换

切披萨的每一刀,先要选择是向垂直还是水平方向切,再在矩形的边界上选一个切的位置,将披萨一分为二。如果垂直地切披萨,那么需要把左边的部分送给一个人,如果水平地切,那么需要把上面的部分送给一个人。给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: ‘A’ (表示苹果)和 ‘.’ (表示空白格子)。你需要切披萨 k-1 次,得到 k 块披萨并送给别人。输入:pizza = [“A…”,“AAA”,“…输入:pizza = [“A…”,“AA.”,“…

2023-08-17 20:58:45 414 1

原创 Python 基础语法 | 常量表达式,变量,注释,输入输出

a = 0创建变量的语句非常简单,其中a 为变量名,当我们创建很多个变量的时候,就可以用名字来进行区分= 为赋值运算符,表示把 = 右侧的数据放到 = 左侧的空间中注意:变量的名字要遵守一定规则——硬性规则(务必遵守)变量名由数字字母下划线构成数字不能开头变量名不能和 “关键字” 重复变量名大小写敏感,num 和 Num 是两个不同的变量名——软性规则(建议遵守)变量名使用有描述性的单词来表示,尽量表达出变量的作用一个变量名可以由多个单词构成,长一点没关系,但是含义要清晰。

2023-08-14 21:52:49 735 3

原创 搭建 Python 环境 | Python、PyCharm

要想能够进行 Python 开发,就需要搭建好 Python 的环境需要安装的环境主要是两个部分:运行环境:Python开发环境:PyCharm

2023-08-12 21:20:29 1251 4

原创 SpringBoot 日志文件

1).在一个类中先获取到打印日志对象(日志框架提供的日志对象,而日志框架默认已经集成到Spring Boot 里了);得到日志对象Logger ->Logger 对象是属于 org.slf4j 包下的,不要导入错包因为 Spring Boot 中内置了日志框架 Slf4j,所以咱们可以直接在程序中调用 slf4j 来输出日志2).使用日志对象提供的方法实现日志的打印在程序中获取日志对象需要使用日志工厂 LoggerFactory。

2023-08-05 19:56:11 898 2

原创 SpringBoot 配置文件

properties 是以 key=value 的形式配置的键值类型的配置文件,而 yml 使用的是类似 json 格式的树形配置方式进行配置的,yml 层级之间使用换行缩进的方式配置,key 和 value 之间使用“: ”英文冒号加空格的方式设置,并且空格不可省略。properties 为早期并且默认的配置文件格式,但其配置存在一定的冗余数据,使用 yml 可以很好的解决数据冗余的问题。

2023-08-04 20:52:45 572 1

原创 SpringBoot 项目创建与运行

新建的 Spring Boot 项目目录如下:src/main/java 为 Java 源代码。src/main/resources 为静态资源或配置文件:static:静态资源文件夹;templates:模版资源文件夹Spring Boot 是为了快速开发 Spring 而诞生的,Spring Boot 具备:快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。

2023-08-03 19:53:21 627

原创 Spring | Bean 作用域和生命周期

限定程序中变量的可用范围叫做作用域,或者说在源代码中定义变量的某个区域就叫做作用域而 Bean 的作用域是指 Bean 在 Spring 整个框架中的某种行为模式,⽐如 singleton 单例作用域,就表示 Bean 在整个 Spring 中只有⼀份,它是全局共享的,那么当其他⼈修改了这个值之后,那么另⼀个⼈读取到的就是被修改的值。

2023-07-31 21:33:58 412 1

原创 【Spring】更简单的读取和存储对象,五大类注解

经过前面的学习,我们已经可以实现基本的 Spring 读取和存储对象的操作了,但在操作的过程中我们发现读取和存储对象并没有想象中的那么 “简单”,所以接下来我们要学习更加简单的操作 Bean 对象的方法在 Spring 中想要,也就是我们接下来要学习 Spring 中的相关注解,来存储和读取 Bean 对象。

2023-07-28 19:35:28 653 4

原创 多线程案例 | 单例模式、阻塞队列、定时器、线程池

设计模式好比象棋中的 “棋谱”,红方当头炮,黑方马来跳,针对红方的一些走法,黑方应招的时候有一些固定的套路,按照套路来走局势就不会吃亏,也就发明了一组"棋谱",称为设计模式软件开发中也有很多常见的。

2023-07-26 16:52:27 1424 3

原创 Spring 的创建和使用

操作容器之前,先要有容器,所以先要得到容器存对象创建 Bean(普通类)将 Bean 注册(配置)到 spring-confing.xml 中取对象得到 Spring 上下文,并读取到 Spring 的配置文件获取某⼀个 Bean 对象使用 Bean 对象。

2023-07-23 20:57:00 784 1

原创 为什么要学框架?什么是Spring?

在传统的代码中对象创建顺序是:Car -> Framework -> Bottom -> Tire改进之后解耦的代码的对象创建顺序是:Tire -> Bottom -> Framework -> Car我们发现了⼀个规律:通⽤程序的实现代码,类的创建顺序是反的,传统代码是 Car 控制并创建了Framework,Framework 创建并创建了 Bottom,依次往下,而改进之后的控制权发生的反转,不再是上级对象创建并控制下级对象了,而是下级对象把注入将当前对象中,下级的控制权不再由上级类控制了。

2023-07-22 20:02:33 322

原创 Java 方法

进制转换

2023-07-16 23:28:23 81

原创 JVM 运行流程、类加载、垃圾回收

由于 JVM 的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现,因此在任何一个确定的时刻,一个处理器 (多核处理器则指的是一个内核) 都只会执行一条线程中的指令。因此为了切换线程后能恢复到正确的执行位置,每条线程都需要独立的程序计数器,各条线程之间计数器互不影响,独立存储。我们就把类似这类区域称之为 “线程私有” 的内存。这里的这个栈,其实不是只有一个,有很多个!!每个线程有一个,jconsole 查看 java 进程内部的情况,就可以看到所有的线程。

2023-07-16 21:42:20 1152

原创 搭建 Java 部署环境,部署 Web 项目到 Linux

为了进行部署,把写好的 java web 程序放到 Linux 上,需要先把对应的依赖的软件 (环境) 搭建好,安装一些必要的软件程序jdk 直接使用包管理器进行安装(基于yum安装)

2023-07-15 18:27:03 1244 1

原创 Linux 常用命令

Linux 系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件 Linux 是一个树形目录结构。Linux 上没有盘符概念,不分 C 盘等,根目录 `\` 的地位相当与 Java 的 Object

2023-07-12 20:42:44 1483

原创 Linux 环境搭建

要想学习 Linux,需要先有一个 Linux 的环境主要有四种:直接安装在物理机上,重装系统,但是由于 Linux 桌面使用起来非常不友好 [不推荐].使用虚拟机软件,软件在你的机器上虚拟出一些硬件来,构成一个 “假的” 电脑,然后在虚拟的机器里 搭建 Linux,但是由于当前的虚拟机软件 (VMWare / Virtual Box…),存在一些 bug,会导致环境上出现各种莫名其妙的问题,比较折腾 [非常不推荐]使用 WSL (Windows Subsystem for Linux),这

2023-07-11 17:09:17 1352

原创 LeetCode 2679. 矩阵中的和

我们需要删除的最短子数组是 [10,4,2] ,长度为 3。剩余元素形成非递减数组 [1,2,3,3,5]。给你一个整数数组 arr ,请你删除一个子数组(可以为空),使得 arr 中剩下的元素是 非递减 的。输入:arr = [1,2,3,10,4,2,3,5]另一个正确的解为删除子数组 [3,10,4]。一个子数组指的是原数组中连续的一个子序列。请你返回满足题目要求的最短子数组的长度。

2023-03-25 22:13:07 366 1

原创 LeetCode 1616. 分割两个字符串得到回文串

例如,key = “happy boy”(实际的加密密钥会包含字母表中每个字母 至少一次),据此,可以得到部分对照表(‘h’ -> ‘a’、‘a’ -> ‘b’、‘p’ -> ‘c’、‘y’ -> ‘d’、‘b’ -> ‘e’、‘o’ -> ‘f’)。输入:key = “the quick brown fox jumps over the lazy dog”, message = “vkbs bs t suepuv”key 包含英文字母表中每个字符(‘a’ 到 ‘z’)至少一次。空格 ’ ’ 保持不变。

2023-02-01 15:02:25 622

原创 Loading class `com.mysql.jdbc.Driver‘. This is deprecated

不同版本的jdbc驱动包应该使用不同的驱动类名。点击清空 cache 后重启 IDEA。清理 IDEA 的缓存。

2022-09-10 22:06:22 760 1

原创 服务器版博客系统、前后端交互3

每一次,左侧都是同样的登录内容登录 ‘zhangsan’,但是当下用户信息,显示的是还是 “小吴的博客”实际登录的用户,是 “zhangsan”登录的用户 和 文章作者,可能是一个人,也可能不是一个人!!在博客列表页,期望显示的用户信息,就是当前登录的用户这里其实前面已经处理过了!!! (在检测用户登录状态的时候)注意,当前虽然已经让用户名正常了,但是用户的头像,github,文章的统计,这些都是没有变化的,当前在设计数据库的时候,就没考虑这些~~当前看到的是,博客详情页,用户名,也是成了 zhang

2022-09-10 17:05:44 5565

原创 服务器版博客系统、前后端交互2

写好博客列表页后,点击 “跳转全文”,正文出现的都是我们测试时写好的内容,点击 “跳转全文”:127.0.0.1:8080/blog_system/blog_detail.html?blogId=5这是获取博客详情页,发送的请求,此处希望得到的页面,页面里就能显示出当前这个博客的正文内容~~这个正文内容就要继续通过 来进行获取,在 blog_detail.html 页面加载的时候,触发 ajax 请求来访问服务器,获取到博客内容再次填充到博客详情页里面!请求:响应:和获取博客列表的区别:请求里面,带有

2022-09-09 20:51:08 8443

原创 服务器版博客系统、前后端交互1

博客列表页中,主要是显示都有哪些博客~~因此,就需要在这个地方把正文进行。

2022-07-22 13:14:43 1537 3

原创 Cookie 和 Session

HTTP协议自身是属于“无状态”协议但是实际开发中,我们很多时候是需要知道请求之间的关联关系的举例去医院~~就诊卡,去医院的挂号处,就会先获得到一个,就诊卡上就包含了当前患者的关键信息(就相当于cookie)在各个科室都能刷就诊卡,刷就诊卡的时候,就可以(不只是身份信息,还有以往病例之类的)这个机制最主要的用处就是医院的数据服务器上就保存着,也就是通过此时在服务器这边就需要记录令牌信息,以及令牌对应的用户信息,这个就是Session机制所做的工作sessionId。...

2022-07-18 11:22:55 2610 1

原创 Servlet API 代码示例:服务器版表白墙

在实现这个程序的时候,就需要先考虑清楚,客户端和服务器之间该如何进行交互~约定前后端交互的接口~~(自定义应用层协议)既然是搞一个服务器,服务器就得提供一些服务,具体是提供啥样的服务? 以及这些服务该如何触发? 都需要去考虑清楚~~对于表白墙来说,主要要提供两个接口:1). 告诉服务器,当前留言了一条啥样的数据~~ (当用户点击提交按钮的时候,就会给服务器发送一个 HTTP 请求,让服务器把这个消息给存下来)请求:按照上述的思路发散开,有无数种方式来约定请求格式!!! 方法可以变,路径可以变,参数的

2022-07-14 15:38:23 3323 2

原创 LeetCode 剑指 Offer 26. 树的子结构 03

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为 1。注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。示例 1:输入:nu.......

2022-07-13 21:00:59 2606

原创 【JavaWeb】Servlet API 详解——HttpServlet

具体研究一下 Servlet 里面的关键APl~~主要介绍这三个类:通过继承这个类,重写其中的方法,来被 Tomcat 执行到的也就是多态! 举例:集合类:多线程:Servlet 这里也是一个很好的例子~~2、核心方法方法名称调用时机init在 HttpServlet 实例化之后被调用一次destory在 HttpServlet 实例不再使用的时候调用一次service收到 HTTP 请求的时候调用doGet收到 GET 请求...

2022-07-08 19:21:52 6171 6

原创 JavaWeb | 七个步骤,完成一个servlet的hello world程序

Servlet 是一种实现动态页面的技术,是一组 Tomcat 提供给程序猿的 API,帮助程序猿简单高效的开发一个 web app动态页面 vs 静态页面:构建动态页面的技术有很多,每种语言都有一些相关的库 / 框架来做这件事Servlet 就是 Tomcat 这个 HTTP 服务器提供给 Java 的一组 API,来完成构建动态页面这个任务Servlet 主要做的工作:简而言之,Servlet 是一组 Tomcat 提供的 API, 让程序猿自己写的代码能很好的和 Tomcat 配合起来,从而更简单

2022-07-05 12:08:11 7077 47

原创 Tomcat 与 maven 的安装与使用

谈到 “汤姆猫”,大家可能更多想到的是大名鼎鼎的猫和老鼠事实上,Java 世界中的 “汤姆猫” 完全不是一回事,但是同样大名鼎鼎Tomcat 是一个 HTTP 服务器HTTP 协议我们也可以认为是基于 TCPHTTP 服务器,就是在 TCP 服务器的基础上,加上了一些额外的功能:能够解析请求中的 HTTP 报文,把请求转换成结构化数据(对象),也能很方便的构造 HTTP 响应HTTP 服务器提供了一组 API,方便程序猿直接调用,来操作 HTTP 协议,从而简化程序猿的开发工程HTTP 服务器,是属于

2022-06-14 10:10:09 24134 22

原创 构造 HTTP 请求的方式、HTTPS 的工作过程

基于 HTML / JS (客户端构造HTTP请求,最常见的 HTTP 客户端,就是浏览器)基于 Java (这种方案是完全可行的,但是实际开发中用的不如上面的方式多)form 的重要参数:光有这一个 form 标签,还没法提交,也没什么东西可提交的还需要搭配 form 里面有一些其他的标签,比如 inputinput 的重要参数:假设用户在此处输入的用户名是 zhangsan,密码是 123此时 form 表单生成的要提交的数据,就形如:username=zhangsan&password=123光

2022-06-04 15:08:30 7073 60

原创 Java 笔试强训 牛客网选择编程题 03

先来先服务 (ECES, First Come First Serve)最简单的调度算法,按先后顺序进行调度。高响应比优先(HRRN,Highest Response Ratio Next)综合考虑作业/进程的 等待时间 和 要求服务的时间,在每次调度时先计算各个作业/进程的响应比,选择响应比最高的作业/进程为其服务。高响应比优先调度算法是介于 ECES (先来先服务算法) 与 SE (短作业优先算法) 之间的折中算法,既考虑作业等待时间又考虑作业运行时间,既照顾短作业又不使长作业等待时间过长,改进了调度性

2022-06-03 18:49:02 4651

原创 JavaWeb | HTTP 协议请求与响应格式

一、HTTP 是什么计算机网络核心概念:网络协议网络协议种类非常多,其中一些耳熟能详的,IP,TCP,UD… 其中还有一个应用非常广泛的协议HTTP,HTTP 协议大概率是咱们日后开发中用的最多的协议HTTP : (全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议HTTP 处于 TCP / IP 五层协议栈的应用层HTTP 在传输层是基于TCP的 (不够严谨,HTTP/1,HTTP/2 是基于TCP,最新版本是 HTTP/3 是基于 UDP,但是当下互联网上绝大部分使用的 HTTP

2022-05-27 19:05:11 4235 38

原创 Java 笔试强训 牛客网选择编程题 02

一、选择单选将N条长度均为M的有序链表进行合并,合并以后的链表也保持有序,时间复杂度为()?A O(N * M * logN)B O(N*M)C O(N)D O(M)1、建立一个长度为 N 的最大 / 最小堆。将这 N 条链表的第一个元素拿出来建立最小堆,时间复杂度:O(N)2、依次从最小堆中取出元素(堆顶),此时堆顶就是当前集合的最小值,将链表的其他元素放入堆中。调整堆的时间复杂度:O(siftDown - N*M*logN),总共还需要入堆的元素个数,O(N*M*logN)3

2022-05-23 22:55:09 5066 2

原创 JavaScript | DOM API 操作元素

一、WebAPI 背景知识JS 分成三个大的部分:ECMAScript: 基础语法部分DOM API: 操作页面结构BOM API: 操作浏览器要想写实际的程序,光会语言是不够的,还需要掌握相关的 "生态”,配套的库 / 框架对于在浏览器上运行 JS 来说,最最核心的库,就是 DOM API就是浏览器给 JS 提供的原生接口基于这样的接口,就可以针对页面的上的元素进行操作了DOM => 文档 对象 模型HTML 中,会把每个 html 标签,都视为是一个 JS 中可以操作的对象

2022-05-22 18:30:05 3036

原创 JavaScript | 基本语法(书写形式,数据类型,数组,函数,对象)

一、初识 JavaScriptJavaScript (简称 JS)是世界上最流行的编程语言之一是一个脚本语言,通过解释器运行虽然 js 主要是用于前端页面的开发,但是实际上,也可以进行服务器开发 / 客户端程序的开发JavaScript 最初只是为了完成简单的表单验证(验证数据合法性),结果后来不小心就火了当前 JavaScript 已经成为了一个通用的编程语言JavaScript 的能做的事情:网页开发(更复杂的特效和用户交互)网页游戏开发服务器开发(node.js)桌面程序开发(

2022-05-19 19:11:05 3524 24

原创 【MySQL】条件判断函数 case when 求和计数,if 函数

1、case when:CASE 字段 WHEN 预期值 THEN 结果1 ELSE 结果2 ENDscore 表:mysql> select * from score;+----+----------+------+------+-------+| id | name | sex | age | score |+----+----------+------+------+-------+| 1 | zhangsan | 1 | 19 | 99 ||

2022-05-07 19:36:29 5369 44

原创 LeetCode 729. 我的日程安排表 I 02

描述:给你一个日志数组 logs。每条日志都是以空格分隔的字串,其第一个字为字母与数字混合的 标识符 。有两种不同类型的日志:字母日志:除标识符之外,所有字均由小写字母组成数字日志:除标识符之外,所有字均由数字组成请按下述规则将日志重新排序:所有 字母日志 都排在 数字日志 之前。字母日志 在内容不同时,忽略标识符后,按内容字母顺序排序;在内容相同时,按标识符排序。数字日志 应该保留原来的相对顺序。返回日志的最终顺序。示例 1:输入:logs = [“dig1 8 1 5 1”

2022-05-03 20:15:35 4218 4

空空如也

空空如也

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

TA关注的人

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