- 博客(103)
- 收藏
- 关注
原创 初识测开/测试- 第一篇 - 测开/测试方向
这个问题在面试 软件测试 工作的时候,被问到的概率高达90%。他可能会想:既然你找这份工作,肯定对于工作是具有一点了解的。否则,你屁都不知道,你来干嘛呢?还有一个经常会问到的问题:你为什么会选择 软件测试开发 的工作?其实面试官在问你这个问题的时候,是想让你回答 你的竞争力 体现 哪里?如让他在 众多的人群中 选择你!这个时候就需要你去讲解自身的优势。回头来,思考一个问题 什么是 软件测试?从生活的角度出发,生活中的测试场景都有哪些?1、考试。
2022-10-19 22:27:31 3348 1
原创 【Java成王之路】EE进阶第十篇 MyBatis查询数据库
单元测试(unit testing),是指对软件(项目)中的最⼩可测试单元进⾏检查和验证的过程就叫单元测试。单元测试是开发者编写的⼀⼩段代码,⽤于检验被测代码的⼀个很⼩的、很明确的(代码)功能是否正确。执⾏单元测试就是为了证明某段代码的执⾏结果是否符合我们的预期。如果测试结果符合我们的预期,称之为测试通过,否则就是测试未通过(或者叫测试失败)。最小可测试单元:方法每一个方法都代表一个相应的功能。那我们测试的最小单元,对于 Spring Boot 来说,就是一个方法。
2022-10-11 16:45:51 1557
原创 【Java成王之路】EE进阶第九篇 Spring MVC 程序开发
MVCMVC 是 Model View Controller (模型视图控制器)的缩写,它是软件⼯程中的⼀种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分。Model(模型) 是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。View(视图) 是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。Controller(控制器) 是应⽤程序中处理⽤户交互的部分。通常控制器负责从视图读取数据,控制⽤户输⼊,并向模型发送数据。
2022-10-10 12:46:59 456
原创 【Java成王之路】EE进阶第八篇 Spring Boot 日志文件
Spring Boot ⾃定义打印⽇志的实现步骤:1、在一个类中先获取到打印日志对象,日志对象 是 日志框架 提供的,而日志框架默认已经集成到 Spring Boot 里面了。(Spring Boot 内置了日志框架)2、使⽤⽇志对象提供的方法实现日志的打印。接下来我们分别来看⽇志是程序中的重要组成部分,使⽤⽇志可以快速的发现和定位问题。Spring Boot 内容了⽇志框架。默认情况下使⽤的是 info ⽇志级别将⽇志输出到控制台的。
2022-10-09 11:42:24 209
原创 【Java成王之路】EE进阶第七篇 Spring Boot 配置文件
1、properties 是以 key=value 的形式配置的键值类型的配置⽂件.⽽ yml 使⽤的是类似 json 格式的树形配置⽅式进⾏配置的.yml 层级之间使⽤换⾏缩进的⽅式配置,key 和 value 之间使⽤“: ”(英⽂)冒号加空格的⽅式设置,并且空格不可省略。2、properties 为早期并且默认的配置⽂件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的解决数据冗余的问题。
2022-10-08 10:19:37 167
原创 【Java成王之路】EE进阶第六篇 SpringBoot 的 概念、创建和运行
Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发的。Spring Boot 翻译⼀下就是 Spring 脚⼿架盖房⼦的这个架⼦就是脚⼿架,脚⼿架的作⽤是砌筑砖墙,浇筑混凝⼟、⽅便墙⾯抹灰,装饰和粉刷的。简单来说,就是使⽤脚⼿架可以更快速的盖房⼦。⽽ Spring Boot 就是 Spring 框架的脚⼿架,它就是为了快速开发 Spring 框架⽽诞⽣的。
2022-10-07 10:10:25 105
原创 【Java成王之路】EE进阶第五篇 Spring 的 Bean 作用域 和 生命周期
本博文介绍了 Bean 的 6 种作⽤域:1、 singleton:单例作⽤域2、prototype:原型作⽤域(多例作⽤域)3、 request:请求作⽤域4、session:回话作⽤域5、application:全局作⽤域6、 websocket:HTTP WebSocket 作⽤域。
2022-10-06 09:23:36 109
原创 【Java成王之路】EE进阶第四篇 更简单的读取和存储对象
经过前⾯的 Spring 创建 和 使⽤的博文学习,我们已经可以实现基本的 Spring 读取和存储对象的操作了。但在操作的过程中我们发现读取和存储对象并没有想象中的那么“简单”,所以接下来我们要学习更加简单的操作 Bean 对象的⽅法。在 Spring 中想要更简单的存储和读取对象的核⼼是使⽤注解,也就是我们接下来要学习 Spring 中的相关注解,来存储和读取 Bean 对象。需要注意的是:Spring 中的 注解是通用的。
2022-10-04 10:22:18 199
原创 【Java成王之路】EE进阶第三篇 Spring 创建 和 使⽤
本文重点有三大点:1、操作容器之前,先要有容器,所以先要得到容器。1.1、创建 嘛呢呗项目1.2、添加 Spring 框架支持,引入 spring-context 和 spring-beans 依赖1,3、创建一个启动类 和 main方法2、存对象2.1、创建 Bean(普通类)2.2、将 Bean 注册(配置)到 spring-config.xml 中。【bean标签】3、取对象3.1、得到 Spring 上下文对象,并读取到 Spring 的配置文。
2022-10-01 19:14:48 105
原创 【Java成王之路】EE进阶第二篇 Spring 核心 与 设计思想
容器是用容纳某种物品的(基本)装置。我们想想,之前课程我们接触的容器有哪些?List/Map -> 数据存储容器Tomcat -> Web 容器List / Map 是一个数据存储容器,这个很好理解。但是 Tomcat 为什么是一个 Web 容器呢?思考一下:Tomcat 是用来运行 外部的项目,因此它是一个 Web 容器。你有一个项目,想要运行。肯定是要将项目部署到 Tomcat 的 webapps 目录底下,才可以运行。此时,webapps 不就是一个项目的容器嘛。
2022-09-19 21:08:58 122
原创 【Java成王之路】EE进阶第一篇 初识框架
从本文开始,我们就进入 javaEE 进阶的学习了。在这个系列的博客中,我主要讲解 四个框架。1、Spring4、MyBatis为什么要讲这么多关于 Spring 的东西?这是因为:目前所有公司的项目,基本上全部是使用 Spring 项目。而且从一位资深的程序员口中得知:从业 Java开发 十几年,遇到的所有项目都是 Spring 的!因此,我们 Java 程序员,又可以称为 Spring 程序员。毕竟,我们往后遇到的项目,都是 Spring 的。
2022-09-12 16:36:55 126
原创 【Java成王之路】EE初阶第二十二篇 博客系统(页面设计)
接下来的目标,就是要实现"博客系统".在前面有了这些前端知识的基础之后,先把博客系统的,前端页面,给实现出来.后面写到 Servlet 的内容之后,就可以把 博客系统 的后端服务器,也能实现出来.这个环节,就已经实现了一个相对完整的博客程序了.后面写到Spring,到时候还会再把后端的部分替换成Spring....
2022-08-31 10:47:44 242
原创 【Java成王之路】EE初阶第二十四篇: Servlet
IDEA 这样的程序虽然功能强大, 但是也无法面面俱到. 对于一些特殊场景的功能, 开发者就可以 开发一些 "插件". 如果需要这个插件, 就单独安装.插件就是对程序的一些特定场景, 做出一些特定的功能的扩展.1计算机中的很多程序,都是基于"插件体系"最早的知名插件体系的程序 编辑器中的 Vim 和 Emacs (记事本) 搭配一些额外的插件后来又有了一个很知名的程序安装 Smart Tomcat安装完毕之后还需要简单配置一下 Smart Tomcat~
2022-08-22 10:48:29 272
原创 【Java成王之路】EE初阶第二十三篇: HTTP协议和Tomcat
下面要写的就是关于后端的部分了.除了要写 Servlet 构建动态网页的技术.还有一个很重要的,就是前后端沟通的桥梁.也就是网页端和服务器这边如何进行数据交互,这个过程中涉及到了网络通信,也就涉及到一些具体的协议.那么就要涉及到 HTTP 协议.下面的重点就是 HTTP 协议.前面有略微提到过 HTTP 协议.HTTP 协议是一个应用特别广泛的应用层协议.这样的应用层协议,也是需要下层协议的支撑!!HTTP这个协议在传输层主要是基于TCO来实现的.......
2022-08-16 13:40:53 404
原创 Java成王之路】EE初阶第二十一篇: 前端三剑客 JavaScript(WebAPI)
前面学习的 JS 分成三个大的部分ECMAScript: 基础语法部分DOM API: 操作页面结构BOM API: 操作浏览器WebAPI 就包含了 DOM + BOM.API 是一个更广义的概念. 而 WebAPI 是一个更具体的概念, 特指 DOM+BOM 所谓的 API 本质上就是一些现成的函数/对象, 让程序猿拿来就用, 方便开发.相当于一个工具箱. 只不过程序猿用的工具箱数目繁多, 功能复杂DOM(Document Object Model)就叫文档对象模型....
2022-08-11 10:35:55 404 1
原创 【Java成王之路】EE初阶第二十篇: 前端三剑客 JavaScript 基础语法篇
JavaScript (简称 JS)是世界上最流行的编程语言之一是一个脚本语言, 通过解释器运行主要在客户端(浏览器)上运行, 现在也可以基于 node.js 在服务器端运行.JavaScript 最初只是为了完成简单的表单验证(验证数据合法性), 结果后来不小心就火了.当前 JavaScript 已经成为了一个通用的编程语言JavaScript 的能做的事情:网页开发(更复杂的特效和用户交互)网页游戏开发服务器开发(node.js)...
2022-08-09 08:56:24 452 11
原创 【Java成王之路】EE初阶第十九篇: 前端三剑客 CSS基础篇
浏览器会给元素加上一些默认的样式, 尤其是内外边距. 不同浏览器的默认样式存在差别. 为了保证代码在不同的浏览器上都能按照统一的样式显示, 往往我们会去除浏览器默认样式. 使用通配符选择器即可完成这件事情.如果要是当前不是正方形,就是一个比较扁的矩形,通过把 border-radius 的值为矩形高度的一半,此时也可以实现一个类似于 矩形和圆形混合的一种形状.(时刻牢记,真实的网站,css是从服务器下载到浏览器的.css代码越长,要下载的内容就越多,就越消耗带宽!...
2022-08-08 11:25:51 448 1
原创 【Java成王之路】EE初阶第十九篇: 前端三剑客 HTML基础篇2
如果有一个网页默认保存了密码,又忘记是啥了 ,可以通过chrome的开发者工具,把input的type改了,就能看到里面的内容了。简单来说,一个按钮就是一个控件,一个文本框,也是一个控件,一个单选框,复选框,也都是控件...如果要表示的某个内容,在html中有合适的标签来表示(标题,就可以使用h1-6标签....)input 标签:能够具体的输入控件,比如,输入框,提交按钮,上传文件按钮....input 标签:能够具体的输入控件,比如,输入框,提交按钮,上传文件按钮....3.自定义列表标签。......
2022-08-03 18:44:26 193
原创 【Java成王之路】EE初阶第十八篇: 前端三剑客 HTML基础篇
代码混淆就是在保证代码逻辑不变的基础上,把代码的可读性尽量皮坏掉.(把缩进,空格,换行,能去掉的都去掉,把变量名都替换成a,b,c.....)严格意义上的html是带有"标签"的(这里的标签就和前面介绍的xml的标签是类似的格式)HTML里面的大部分标签都是包含"语义".(不同的标签代表不同的含义,有不同的用途)但是所有的标签,都支持id这样的属性,id属性的含义就表示这个标签的唯一身份标识.HTML是在浏览器运行的!在html中,不同的标签可能会支持不同的属性.(html本身有这样的约定)...
2022-08-02 22:11:12 209
原创 【Java成王之路】EE初阶第十七篇: maven 工具
当我们想解决一个实际问题的时候,很多时候都能找到一个相应的库,让我们来简化开发(提高了开发效率,节省了程序猿的时间,也比较少出现bug的概率).程序猿每次改一行代码,一旦提交,就会有专门的主机自动的更新代码,编译,打包,自动化验证,自动化部署....(也不是光靠idea就能搞定)框架是"主动",使用框架的时候,核心流程框架已经提供好了,程序猿需要写的是自定义的简单逻辑,供框架来调用.达到一些自定制效果.好比Java标准库,除了标准库之外,还有大量的第三方库,这些库共同的构造出了整个Java"生态"....
2022-08-01 16:33:15 214 1
原创 【Java成王之路】EE初阶第十六篇:(网络原理) 6
以上内容,是站在学生的角度,来看待这个面试题的.我们看到的是网络传输的一些基本原理.(核心就是这些关键协议如何相互配合,以及封装分用,路由转发....)每个路人都有一个自己熟悉的范围.在他熟悉的范围里,他知道具体咋走,出了范围,就知道一个大概方向,这个事情就类似于路由器中的一种核心数据结构"路由表"ARP协议,是一个"辅助性"的协议,这个协议不仅仅是属于数据链路层的,而是横跨数据链路层和网络层.这个协议的功能就是根据IP查询对应的mac地址....
2022-07-31 22:10:38 281
原创 【Java成王之路】EE初阶第十五篇:(网络原理) 5
关于IP地址涉及到一个很重要的问题。网络层的核心协议就叫做IP协议。这样地址不够用的问题该如何处理?2.NAT机制,网络地址替换。IPv4(主要介绍)
2022-07-31 11:54:48 244
原创 【算法刷题第二题】牛客题:旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE给出的所有元素都大于0,若数组大小为0,请返回0。不管是旋转的深还是浅,只要旋转了我就可以把旋转之后的数组看做两部分。...
2022-07-29 23:11:19 145 1
原创 【算法刷题第一题】牛客题:二维数组中的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。我们在比较的时候可以直接拿着这个目标值和右上角或者左下角的值进行比较,这里好比和右上角的值作比较.如果当前的值x比右上角的值要小,那么就说明当前你要查找的值x是绝对不会出现在右上角值这一列中的.如果当前的值x比右上角的值要大,那么就说明当前你要查找的值x是绝对不会出现在右上角值这一行中的.x可以通过比较二维数组右上角的值或者左下角的值来一排一排的进行排除。分别是这一列最大的,这一行最小的,..
2022-07-29 22:22:15 161
原创 【Java成王之路】EE初阶第十四篇:(网络原理) 4
3.如果特别注重效率,优先考虑UDP.(典型的场景机房内部的主机之间通信,网络环境简单,带宽充裕,丢包的概率本身就不大.机房内部主机之间的通信,往往传输数据量更大,更需要速度.尤其是在当下的"微服务"这样的环境中,其实特别需要)但不是一定的.也有使用TCP的。假设接收方处理速度很快,但是中间某个节点的处理速度很慢,这个时候发的快还是不行,发的快可能就在中间节点就丢包了,还没到接收方呢.所以说这里面的情况并不能只看接收方,还得看网络中的中间过程....
2022-07-29 18:56:56 535 1
原创 【Java成王之路】EE初阶第十三篇:(网络原理) 3
四次挥手是一个TCP正常断开的流程,但是实际上,有时候TCP连接也会异常断开.(例如网线断了)2.可靠传输(可靠传输!=安全传输,可靠是指我发一个消息之后对方收没收到我心里有数)虽然ACK和FIN是不同时机,但是在延时应答和捎带应答的情况下是有可能合并在一起的。四次挥手一定是四次吗?后面会写到延时应答和捎带应答.如何断开连接四次挥手。如何建立连接三次握手。如果断开连接四次挥手。四次挥手一定会执行吗?对滑动窗口的进一步补充。......
2022-07-28 22:15:35 319 1
原创 【Java成王之路】EE初阶第十二篇:(网络原理) 2
md5,也是一种算法.md5应用场景非常多,用来作为校验,只是其中一个场景而已.实际使用的校验和算法有很多,其中比较常见的,crc,md5.本质上是一个"非对称的哈希算法"要了解校验和,是如何校验的。crc循环冗余校验。.........
2022-07-28 15:38:30 203
原创 【Java成王之路】EE初阶第十一篇:(网络原理) 1
第四个字段校验和(网络上传输的数据,是可能会出现一些问题的.网络上的数据本质都是一些0/1bit流.这些bit流都是通过光信号或者电信号来表示的.如果传输过程中,收到一些干扰,就容易出现"比特翻转情况,也就是(0变1,1变0)")服务器运行过程中,其实涉及到很多很多的数据.有时候为了定位一些问题,就需要查看到这些内存数据.通过这个调试端口给服务器发送一些调试请求,于是服务器就能返回一些对应的结果.先让进程,绑定一个端口,接下来,通过fork这个系统调用,把进程的PCB复制一份,得到一个新的,......
2022-07-27 18:28:44 195
原创 【Java成王之路】EE初阶第十篇:(网络编程) 4
1.创建一个Socket对象.创建的同时指定服务器的ip和端口(这个操作就会让客户端和服务器建立TCP连接.这个连接建立的过程就是传说中的"三次握手",这个流程是内核完成的,用户代码感知不到)再比如,手机端,打开了一个饿了么/美团外卖,先看到一个商家列表,点进去,就能看到吃的列表.还有下单,支付......这些过程客户端和服务器之间的通信,大概率也是在使用HTTP协议.总结当前咱们的服务器同一时刻,只能给一个客户端提供服务,只有前一个客户端下了,下一个客户端才能上来.这样的设定,显然是不科学的....
2022-07-27 09:50:51 148
原创 【Java成王之路】EE初阶第九篇:(网络编程) 3
当前这里的UdpServerUdpClient里面的socket是有生命周期的,都是要跟随整个程序的.客户端尝试建立连接,首先是服务器操作系统这一层来和客户端进行一些相关的流程,把这个连接先准备好.如果socket/文件没有关闭,当进程结束的时候,对应的资源也就自然释放了.1.传入空的缓冲区,构造一个空的packet(receive的时候使用的)英译汉,客户端输入的请求是英文单词,返回的响应是对应的中文解释.socket(插槽,操作系统提供的网络编程的API的统称)...
2022-07-26 15:36:06 201
原创 【Java成王之路】EE初阶第八篇:(网络编程) 2
面向数据报以一个一个的数据报为基本单位(每个数据报多大,不同的协议里面是有不同的约定的)发送的时候一次至少发一个数据报(如果尝试发一个半,实际只能发出去一个).接收的时候,一次至少接收一个数据报.(如果尝试接收半个,剩下半个就没了)访问网络核心的硬件设备,网卡,网卡也是归操作系统来管理的),封装起来了,提供了一组AP供程序猿来调用。好比我使用qq发送一个消息,这个消息就是通过我电脑上的qq客户端进程,先发送给了腾讯服的务器(对应的服务器进程),再由腾讯的服务器进程,把这个消息转发给对方电脑的qq进程....
2022-07-25 20:36:02 435
原创 【Java成王之路】EE初阶第七篇:(网络编程) 1
主要就是因为网络里面比较复杂,然后无法通过一个协议,来把所有的功能都涵盖进去.就需要拆分出多个协议.为了更好的来组织这么多协议,就按照这些协议定位,再进行分类,于是就有了"协议分层".说白就是一个场景里面问题太复杂,没法通过一个协议全部搞定.这个事就类似于写Java代码,如果问题比较复杂,光通过一个类来完成所有的功能,这可能就比较困难了.为了更好的解决这个问题,就需要进行拆分,把这个代码拆成多个类.如果主机更多了,一台交换机都连不下了,接下来就需要把更多的交换机,给进行相连.就需要消耗很多的网线和网口...
2022-07-23 15:53:58 270
原创 【Java成王之路】EE初阶第六篇:(文件操作 —— IO) 3
这两个类里面则提供了读写操作,提供了很多个版本,可以一次读一个字节或者一次去读取若干个字节,一次去读取若干个字节到一个字节数组里面。write也是一样,一次可以写一个字节,或者写若干个字节,从一个字节数组里写到文件中。针对这两个类来说,只是提供了一个构造方法,这两个类的构造方法就可以传入一个FIle实例或者传入一个字符串类型来指定一个具体的文件进行打开。设计到密集的IO(每次扫到一个文件,都得把这个文件打开,挨个去读取一遍,然后再去匹配一下,这样一个读取操作是一个比较低效的操作)close操作(重点)...
2022-07-22 23:20:13 169
原创 【Java成王之路】EE初阶第五篇:(文件操作 —— IO) 2
回到上面的代码,如果按照上面的方式来写,看起来从上往下执行到close()了,但其实不一定就真正能够执行到close(),这个代码不一定是顺序往下执行的,有可能会出现异常,一旦读取操作的时候出现了异常,一下就IOException了,此时就不会执行到close()了。案例1指定一个目录,扫描这个目录(由于目录中又包含了其他的目录,一次就需要通过递归的方式,来把里面的内容也都获取到),找到文件名中包含了指定字符的条件,并提示用户是否要删除这个文件,根据用户的输入是否决定删除.因此一般不建议直接这样写。....
2022-07-22 20:36:05 240
原创 【Java成王之路】EE初阶第四篇:(文件操作 —— IO) 1
如果抛开Java,站在系统的角度来看,操作系统在管理很多软件资源和硬件设备的时候,都是把这些东西抽象成一个一个的文件(这是系统中典型的"一切皆文件"的思想.这样做带来的一个好处就是会比较方便,由于系统要管理的东西很多,就把内核里面的很多资源都抽象成文件了.比如显示器、键盘、打印机、网卡.....抽象成文件了.从键盘上读取一个数据,这个代码就跟从文件里面读取一个数据是一样的.要把一个数据输出到显示器上,也相当于写文件一样)2.目录文件(就是文件夹,目录也就是视为是一个一个的文件,只不过它是一个目录文件)...
2022-07-22 00:05:13 612
原创 能带你起飞的【数据结构】成王第十六篇:Map和Set 2
解题分析代码实现771. 宝石与石头 - 力扣(LeetCode)代码实现代码实现代码实现插入删除全部代码
2022-07-12 17:49:05 331
原创 能带你起飞的【数据结构】成王第十五篇:Map和Set
目录前言 Map和Set Map 的使用Set练习题1,给定1w个数据,统计每个数据出现的次数2.将1w个数据去重3.从1w个数据中找到第一个重复的数据 力扣面试题 只出现一次的数字 Map 的常用方法说明Set 的常用方法说明 136. 只出现一次的数字 - 力扣(LeetCode)...
2022-07-10 11:21:13 229
原创 能带你起飞的【数据结构】成王第十三篇:七大排序
目录前言排序基于比较的排序 直接插入排序代码实现直接插入排序的时间复杂度、空间复杂度、是否稳定希尔排序 希尔排序的时间复杂度、空间复杂度、是否稳定选择排序堆排序 冒泡排序 代码实现 冒泡排序的时间复杂度、空间复杂度、是否稳定 快速排序代码实现 代码实现代码实现...
2022-07-07 14:58:20 217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人