- 博客(111)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 JWT与Token
JWT (JSON Web Token) 和 Token 都是用来在用户和服务器之间传输信息的机制。但它们之间还是存在一些重要的区别。
2023-08-16 21:34:36
539
原创 SpringBoot配置文件
properties与yml的配置形式不同properties为早期的配置方式,存在冗余问题,yml可以很好的解决问题yml的通用性更好,在使用云服务器配置的时候可以使用一份yml配置文件用于不同的语言properties可以和yml共存,但一个项目中建议使用一份配置类型文件。
2023-04-24 14:51:51
584
原创 Bean作用域和生命周期
Bean 的作⽤域是指 Bean 在 Spring 整个框架中的某种⾏为模式,⽐如 singleton 单例作⽤域,就表 示 Bean 在整个 Spring 中只有⼀份,它是全局共享的,那么当其他⼈修改了这个值之后,那么另⼀个 ⼈读取到的就是被修改的值。
2023-04-22 20:53:12
841
原创 Spring更简单的读取和存储对象
Controller / @Service / @Repository / @Configuration 等注解是 @Component 的“⼦类”bean一般都是使用大驼峰命名,读取的时候首字母小写,但是遇到前两个字母都大写的时候就不能将首字母小写,而是要将两字母都大写。@Bean方法注解是添加到方法上,需要搭配类注解一起使用。通过注解来替代配置,依然需要配置扫描包的类对象。让程序员看到类注解可以直接了解当前类的用途。对象装配(对象注⼊)的实现⽅法以下 3 种。C. 获取bean对象中的user1。
2023-04-22 19:30:04
607
原创 Spring
Spring是包含了众多工具方法的IoCSpring最核心的功能就是将对象存入到Spring中,再从Spring中获取对象的过程。
2023-04-22 16:24:30
659
4
原创 JDBC
不同的数据库提供的API不太一样,这样导致使用不同的数据库就需要写多份代码。解决这个问题的办法就是把各种数据库的API再次抽象封装一层,封装出一套统一的API,其中Java里面,这样的封装就是由Java标准库来完成,此时这一套封装,就称为JDBC。各种编程语言都能够操作数据库,主要原因是因为数据库提供了各个语言版本的API,调用这些API就能操作数据库。这里下载的是对应的jar包,jar包相当于.class文件的压缩包。MySQL的JDBC驱动,不是系统自带的,需要额外下载。MySQL的JDBC驱动。
2023-03-22 11:05:56
291
原创 JVM简要概括
JVM 意为 Java虚拟机注意:每个线程都有一份栈和程序计数器,而整个进程有唯一的堆和方法区。加载类得到的类对象是在方法区中。同时static修饰的成员,是类属性(长在类对象身上),也是在方法区中。代码在创建变量的时候,变量位于那个区域取决于代码,和变量的类型没有关系。
2023-03-15 21:47:31
461
4
原创 Map和Set总结
已知哈希表的关键字个数是不可改变的,因此我们只能通过修改数组的长度来达到降低负载因子。Map中键值对的Key不能直接修改,Value可以修改,修改Key只能删除Key,然后重新插入。搜索的数据称为关键字(key),关键字对应的叫值(value),key-value键值对。Map中的Value可以全部提取出来,存储到Collection中的任何一个子集合中。哈希表,散列表:通过哈希函数使元素的存储位置与它的关键码建立一一映射的关系。:开放地址法,当发生哈希冲突的时候,将key存放到冲突的下一个位置。
2023-03-10 21:44:03
561
4
原创 文件和异常
如果你要给文件添加内容,而不是覆盖原有的内容,可以使用附件模式(a)打开文件。Python中有个pass语句,可在代码块中使用它来让Python什么都不做。方法readlines()从文件中读取每一行,并将其存储到列表lines。查找不到文件的时候,可以使用try-except代码块以直观的方式处理。使用附件模式打开文件,Python不会返回文件对象前清空文件。可以使用空格,制表符,空行来设置这些输出的格式。所以写入的文件内容都将添加到文件末尾。绝对路径:从根目录开始的路径。如果文件不存在,就创建该文件。
2022-10-11 21:50:17
891
6
原创 Java错题本
1: java 的字符类型采用的是 Unicode编码方案,每个 Unicode码占用( 16)个比特位。每个 Unicode码占用2个字节,每个字节是8个比特位,所以,这里是16个比特位。2:包装类指的是,基本数据类型对应的类类型。因为基本数据类型无法进行对象化处理,所以就引入了包装类。8种基本数据byte、short、int、long、 float、double、char、boolean。除了int对应的是Integer,char对应的是Character。其余都是首字母大写即可。
2022-10-04 21:38:58
1474
原创 数据库复习
数据库操作1.显示数据库show databases;2.创建数据库create database test;create database if not exists test;(没有就创建)3.选中数据库use test;4.删除数据库drop database test;drop if exists test;(库存在就删除,不存在就不删)数据表操作1.创建表create table table(id int,name varchar(20));2.查看
2022-05-11 22:17:13
428
11
原创 Vim总结
vim 是一个知名的文本编辑器1.创建文件/ 打开文件vim [文件名]2.进入插入模式vim打开文件后默认是普通模式使用字母 i 加入插入模式注:vim只有进入插入模式才可以进行文本编辑3.保存在插入模式下不能保存文件, 需要先回到 普通模式 . 按下 Esc 回到普通模式.在普通模式下输入 :w , 再按下回车, 即可保存文件.4.退出在插入模式下不能退出, 需要先回到 普通模式.在普通模式下输入 :q , 再按下回车, 即可退出.可以直接使用 :wq 同时执行保存和
2022-05-11 17:37:27
475
12
原创 Linux云服务器上部署Web程序
在Linux上部署web程序需要搭建相关环境JDKTomcatMySQL安装JDK首先列出JDK软件包的名称yum list | grep jdk安装指定版本的JDKyum install java-1.8.0-openjdk-devel.x86_64安装成功之后就可以使用 javac ,否则不能使用TomcatTomcat的安装非常的简单,只需要将本地的Tomcat的压缩包拖拽到Linux就可以了注:如果拖拽不成功就需要安装一个软件包yum
2022-05-11 16:30:27
298
12
原创 Servlet详解 3
HttpServletResponse对于服务器来说,请求是已知的(浏览器/前端传过来的),HttpServletRequest这个对象,里面都是getXXX这样的方法,来获取到信息对于服务器来说,响应是未知的,响应是程序猿的代码来构造出来的,相当于Tomcat只是构造出一个空的HttpServletResponse对象,传给了doXXX方法。程序猿在doXXX方法里,针对空的响应对象,来构造出一个完整的响应。HttpServletResponse提供的方法都是setXXX~~~一个服务器的关键操
2022-05-04 10:58:52
275
7
原创 Servlet详解 2
HttpServletRequest打印请求信息import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.
2022-05-03 21:36:34
499
4
原创 Servlet详解 1
ServletServlet是Tomcat所提供的一组APITomcat和浏览器进行交互,交互的手段就是HTTP协议Tomcat的工作就是解析HTTP请求,把请求交给Servlet的代码进行进一步处理Servlet的代码根据请求计算生成效应对象Tomcat把这个响应对象,构造成HTTP响应,返回给浏览器Servlet的代码,也是经常会和数据库打交道的。Servlet APIHttpServletHttpServletRequestHttpServletResponse面试
2022-05-03 09:03:46
531
22
原创 Linux基本使用
Linux是什么?Linux是一个操作系统,与Windows,mac,android都是“并列”的关系。Linux是全世界最主流的一个操作系统(没有之一)世界上安装Linux系统的设备是最多的,远远超过Windows系统Linux主要的应用领域服务器端:存在很多很多设备,普通用户看不到嵌入式设备:路由器,交换机,空调,冰箱…移动端:手机端Linux是作为一个程序员必须要知道的内容严格的说:Linux表示的是一个“操作系统的内核”一个完整的操作系统:操作系统内核+配套的应
2022-04-27 15:39:52
653
19
原创 Java多线程:控制线程的具体操作
1.创建线程 :start方法,在操作系统内部创建出一个新的线程start和run之间的区别调用 start 方法,才真的在操作系统的底层创建出一个线程run方法只是描述了线程要执行的任务,只是一个普通方法run方法应该由start内部来调用的,多线程编程应该用start方法在Thread中的子类中重写run方法,就会被start里面创建的新线程来执行start内部调用操作系统提供的api,创建线程。然后让线程执行run方法中的代码2.中断线程:让线程结束让run方法执行完,线程
2022-04-15 16:51:33
960
23
原创 链表(上):如何实现LRU缓存淘汰算法
缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的CPU缓存、数据库缓存、浏览器缓存等等。缓存的大小有限,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?这就需要缓存淘汰策略来决定。常见的策略有三种:先进先出策略FIFO(First In,First Out)、最少使用策略LFU(Least Frequently Used)、最近最少使用策略LRU(Least Recently Used)。开篇问题:如何用链表来实现LRU缓存淘汰策略?数组..
2022-04-13 20:31:23
306
1
原创 数组:为什么很多编程语言中数组都从0开始编号
为什么数组要从0开始编号,而不是从1开始呢?如何实现随机访问?数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。线性表(Linear List)。顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。非线性表,比如二叉树、堆、图等。之所以叫非线性,是因为,在非线性表中,数据之间并不是简单的前后关系。第二个是连续的内存空间和相同类型的数据。拿一个长度为10的int类.
2022-04-12 15:26:26
424
原创 Java多线程
进程和线程的基本概念(面试必考题)进程包含线程,一个进程里可以有一个线程,也可以有多个线程进程存在的意义是为了解决并发编程的问题。如果频繁创建或者销毁进程,此时开销比较大。相比之下线程也能满足并发编程的问题,但是线程的创建/销毁开销就小很多。进程是系统分配资源的基本单位,线程是系统调度执行的基本单位进程之间各自的虚拟地址空间(相互是隔离的),一个进程挂了不会引起其它进程出现问题。但是同一个进程的线程之间是共享同一个虚拟地址空间,如果一个线程挂了,很容易影响到其它线程。Java种对于线程的一
2022-04-12 09:19:26
220
7
原创 复杂度分析
复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。为什么需要复杂度分析?事后统计法 :把代码跑一遍,通过统计、监控,得到算法执行的时间和占用的内存大小这种评估算法执行效率的方法是正确的 , 但是,这种统计方法有非常大的局限性。1. 测试结果非常依赖测试环境2.测试结果受数据规模的影响很大不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法。大O复杂度表示法时间复杂度分析1.只关注循环执行次数最多的一段代码我们在分析一个算法、一段代码的时间复杂
2022-04-10 22:46:05
417
1
原创 如何抓住重点,系统高效地学习数据结构与算法
学不好数据结构与算法的原因:没有找到好的学习方法,没有抓住学习的重点数据结构是为算法服务的,算法要作用在特定的数据结构之上。想要学习数据结构与算法,首先要掌握一个数据结构与算法中最重要的概念——复杂度分析。20个最常用的、最基础数据结构与算法,不管是应付面试还是工作需要,只要集中精力逐一攻克这20个知识点就足够了。这里面有10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树;10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹
2022-04-09 20:06:19
801
1
原创 读书笔记1:每日一更
开篇词讲最重要的就是基础足够扎实当面临行业变动、新技术更迭的时候,我们可以发现,那些所谓的新技术,核心和本质的东西其实就是当初学的那些知识。掌握了这个“规律”,学任何东西都很快,任何新技术都能快速迎头赶上。这就是快速学习并且获得成功的秘诀。基础知识就像是一座大楼的地基,它决定了我们的技术高度。而要想快速做出点事情,前提条件一定是基础能力过硬,“内功”要到位。需要修炼的“内功”:大学里的那些基础课程,操作系统、计算机网络、编译原理,数据结构和算法。专栏分成四个递进的模块1:入门篇时间、空间
2022-04-08 20:41:19
545
1
原创 测试开发-3-基础篇
软件测试的生命周期回顾:软件开发的生命周期需求分析-计划-设计-编码-测试-运行维护软件测试的生命周期(软件测试的流程)需求分析-测试计划-测试设计/测试开发-测试执行-测试评估需求分析:验证需求的正确性,合理性;细化需求找出测试项,写测试用例测试计划:测试人数,测试环境,测试时间,测试设备测试设计/测试开发:根据需求,写测试用例测试执行:开发已经完成,执行测试用例,验证功能,验证BUG测试评估:写了多少测试用例,执行了多少,剩余的测试用例数BUG数量,解决的BUG数量。遗留的BUG
2022-04-08 10:46:18
490
原创 软件开发的五大模型和软件测试两大模型
软件开发的生命周期:需求分析-计划-设计-编码-测试-运行维护开发五大模型瀑布模型特点:每一个阶段比较独立,串行注重前期需求分析,后期系统测试缺点:测试介入晚,导致软件前期的问题,后期测试阶段才发现,失去了错误及时修正的机会不响应需求的变化螺旋模型适合项目庞大,复杂,风险性高的项目特点:注重质量管理,每一个迭代都会进行风险分析缺点:风险分析投入人力,资源,管理成本,成本较高增量模型,迭代模型抗风险能力比较强敏捷模型特点
2022-04-06 17:52:02
955
4
原创 测试开发-2.1-概念篇
1.衡量软件测试的结果需求软件是如何诞生的?什么是需求?满足用户的期望或者规定的文档(合同,标准,规范)所需要的条件或者权限它包括用户需求,软件需求用户需求:简略的软件需求:是用户需求的细化,具体的实现细节成文档软件需求是用户需求的转化而来的需求是测试人员进行软件测试工作的依据在具体设计测试用例的时候,首先需要搞清楚每一个业务需求对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,然后针对每个测试需求点设计测试用例。过程如下,业务需求—>软件
2022-04-05 20:49:24
778
9
原创 Servlet项目访问出错怎么办?
出现4041:路径写错了。(Context Path或者Servlet Path写错了)先去确认路径是否正确~确认URL和后端代码写的是否匹配2:webapp没有正确加载比如web.xml写错了,此时Tomcat能够启动运行,但是没有加载你写的webapp检查web.xml所在的目录名字,文件名字,所在的位置,文件内容出现405原因只有一个:触发了HttpServlet这个父类的doGet方法忘记重写doGet,或者写的doGet里面没有把super.doGet给删除出现50
2022-04-01 17:11:14
2925
15
Javaweb博客系统页面设计
2022-04-27
你好,想要请教一些代码问题,可以看看吗?
2021-12-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人