自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

傻子编程

一步一步网上爬

  • 博客(135)
  • 收藏
  • 关注

原创 Mybatis学习笔记

文章目录MyBatis 是一款优秀的持久层框架,ORM框架(对象映射框架),它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。...

2021-08-08 22:48:23 192

原创 Springmvc学习笔记

文章目录什么是mybatis为什么需要Mybatis什么是mybatisMyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old JavaObjects,普通老式Java对象)为数据库中的记录。MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache softwa

2021-07-29 22:44:36 324

原创 疑难杂症(个人复习篇)

JUC (Java并发包)包下的主要类;ReentrantLock(可重入锁)a) lock一定要放在 try 之前。b)在finally一定要释放锁。2.信号量可以实现限流功能。->停车位(排队)//创建信号量Semaphore semaphore = new Semaphore( permits: 2);//2表示信号量数//尝试获取锁semaphore.acquire();//释放锁semaphore.release();...

2021-07-28 22:16:33 271

原创 Redis学习笔记

#! /bin/bash AUTHOR hsjMAIL 13456789VERSION 1 echo "尊敬的用户,请选择如下功能(按数字即可)"echo "1.查看进程信息"echo "2.查看用户和主机信息"echo "3.显示当前目录信息"echo "4.显示Linux创始人"echo "5.显示Linux发行版本名称和Li

2021-07-25 21:37:28 174

原创 selenium学习(Unittest框架,数据驱动)

文章目录Unittest框架unittest 简介unittest组成部分及关系unittest断言HTML报告生成异常捕捉与错误截图数据驱动Unittest框架unittest 简介unittest 是python 的Uij界面的单元测试框架,unittest 单元测试提供了创建测试用例,测试套件以及批量执行的方案, unittest 在安装pyhton 以后就直接自带了,直接import unittest 就可以使用。作为单元测试的框架, unittest 也是可以对程序最小模块的一种敏捷化的测试

2021-07-24 00:59:55 617 4

原创 selenium学习(定位元素,操作元素)

文章目录什么是seleniumwebdriver的工作原理:selenium的简单用法什么是seleniumSelenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,支持多平台、多浏览器、多语言去实现自动化测试,支持分布式测试用例的执行。Selenium2将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),所以就像真正的用户在操作一样。Selenium已经从之前的

2021-07-24 00:17:56 464

原创 乐观锁,CAS,ABA问题

文章目录常见的锁策略乐观锁 vs 悲观锁读写锁自旋锁(Spin Lock)可重入锁什么是 CASABA 问题如何处理常见的锁策略乐观锁 vs 悲观锁乐观锁:乐观锁假设认为数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲突进行检测,如果发现并发冲突了,则返回用户错误的信息,让用户决定如何去做。悲观锁的问题:总是需要竞争锁,进而导致发生线程切换,挂起其他线程;所以性能不高。悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都

2021-06-21 11:25:34 856 1

原创 ThreadLocal的简单介绍

文章目录ThreadLocal是什么ThreadLocal与Synchronized的区别ThreadLocal 常见使用场景ThreadLocal是什么ThreadLocal叫做线程变量,就是是ThreadLocal通过set方法填充的变量属于当前线程,是线程私有的,对其他线程而言是隔离的,是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。这里需要

2021-06-19 20:35:13 496

原创 管理线程——线程池

文章目录为什么需要线程池什么是线程池线程池的优点线程池的创建方式4、创建单线程执行定时任务的线程池5、创建单个线程的线程池6、创建一个异步根据当前CPU生产的线程池为什么需要线程池线程的创建它会开辟本地方法栈、虚拟机栈、程序计数器等线程私有的内存,同时销毁的时候需要销毁以上3个区域,因此频繁的创建和消耗比较消耗系统资源;当任务量远远大于线程可以处理的任务量的时候,并不能友好拒绝任务。基于线程的以上两个缺点,为了解决这样的缺点,我们引入了线程池。什么是线程池就是使用池化技术来管理线程和使用线程

2021-06-19 12:13:46 1524

原创 javaEE - Spring-boot-01

文章目录背景:Spring Framework的缺点为什么使用Spring BootSpringBoot的特点搭建SpringBoot项目背景:Spring Framework的缺点多年以来,Spring Framework 饱受非议的一点就是大量的XML配置以及复杂的依赖管理。在2013年的SpringOne 2GX会议上,Pivotal的CTO Adrian Colyer回应了这些批评,并且特别提到该平台将来的目标之一就是实现免XML配置的开发体验。Boot 所实现的功能超出了这个任务的描述,开发人

2021-06-15 21:35:39 109

原创 javaee - Spring-02

文章目录Spring的使用核心存对象(注册)取对象(注入)Bean的作用域Spring的使用核心sprng就是一个容器,容器最重要的作用就是存放东西的的,而Spring就是一个存放类的容器,将类存进来并进行管理。因此在使用好Spring就需要关注两个重点,那就是如何将类放入到容器中,需要的时候如何取出来。存对象(注册)一:类注解在类上使用注解 @Controller , @Service , @Repository , @Component 。需要保证该类会被Spring扫描到,这种定义方式默认

2021-06-15 20:36:11 133

原创 javaee - Spring-01

文章目录什么是Spring为什么使用SpringSpring FrameworkCore Container(核心容器)什么是SpringSpring提供致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。 可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(Pure Old Java Object)对象提供企业级的服务。Spring采用分层架构,这意味着可以仅选择其中任何一个独立的部分,而它的架构是内部一致的。为什么使用Sp

2021-06-15 09:58:23 1138 1

原创 阿里云发布项目

安装jdk1 yun list java*2 yun -y install java-1.8.0-openjdk*3 java -versionMySQL的安装1、下载mysql安装套件 wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpmyum -y install mysql57-community-release-el7-10.noarch.rpmyum -y install my

2021-06-10 15:12:34 575 6

原创 Tomcat介绍,解决乱码,解决启动失败、发布项目

文章目录什么是Tomcattomcat的安装启动失败的解决方法发布自己的项目什么是TomcatTomcat是一个免费的开源的Servlet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun(现在已属于Oracle)和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总能在Tomcat中得到体现。简单的说,Tomcat就是一个web(网页)的容器,既可以运行前端的代码(css,HTML,js),又可以运行后端的代码(java编

2021-06-09 10:28:39 183 1

原创 对于测试方法你知道多少(这里有最全的软件测试方法)

(1)从下到上三层测试,投入相同的时间,人力资源等,回报率(产出)越来越低(2)从下到上,测试的效率越来越低(3)从下到上,定位问题越来越难单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试测试阶段:编码后或者编码前(TDD)测试对象:最小模块测试人员:白盒测试工程师或开发工程师测试依据:代码和注释+详细设计文档测试方法:白盒测试测试内容:模块接口测试(输入输出,参数的数量、类型、类型的排列、输出是否符合接口设计..

2021-06-01 20:46:28 290 3

原创 JVM(Java虚拟机)(由生到熟)

文章目录1.1 JVM概念JVM(Java Virtual Machine的简称。意为Java虚拟机。):指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机有JVM、VMwave、Virtual Box。.JVM和其他两个虚拟机的区别:a.VMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器b.JVM则是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进行了裁剪JVM是一台被定

2021-05-31 20:42:55 364 3

原创 进程管理(pcb)

文章目录进程是如何管理的进程是如何管理的内核中使用一个task_struct / PCB(进程控制块)结构体来描述进程.(C语言)每创建一个进程,就同时创建一个PCB这样的类的实例使用双向链表把所有的PCB对象串到一起双击一个exe,创建一个进程的时候本质上就是在内核中,先创建了一个PCB对象。然后把这个对象加入到这个双向链表中.,关闭一个程序,结束一个进程的时候,本质上就是在内核中,找到这个对应的PCB对象,然后从链表上删掉,并且释放该对象。通过任务管理器查看到的所有的进程信息,本质上就是在遍

2021-05-27 15:52:23 1089

原创 个人博客(练习)

JSON转换库,利用jackson进行字符串的拼接

2021-05-27 10:14:19 204

原创 单例模式、类的加载顺序

文章目录定义类加载顺序定义单例模式:就是全局唯一,并且所有程序都可以使用的对象,就是单利模式。目的是保证一个类只能有一个实例,而且自行实例化并向整个系统提供这个实例,避免频繁创建对象,节约内存。单例模式分为恶汉和懒汉两种方式:饿汉方式饿汉方式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。优点:实现简单、不存在线程安全的问题,因为饿汉的方式是随着程序的启动而初始化的,因为类加载是线程安全(类加载补充在下面),所以它是线程安全的。缺点:随着程序的启动而启动,有可能在整个程序的运

2021-05-24 20:25:55 429

原创 c语言复习一

计算机只认识二进制程序要运行的时候,都要先被加载到内存C语言为编译型语言(编译就是把文本类型的文件变为计算机能认识的二进制文件,后缀为.exe的可执行文件),面向过程(需要一个功能就写一个功能,然后调用)main函数是程序的入口,一个工程中main函数有且仅有一个。内存是一个大的整块,为了合理实用内存,就有了数据类型;变量是开辟内存空间,合理的使用内存C语言没有字符串类型printf("%d\n", sizeof(char)); sizeof是来进行类型大小计算的char 1个字节,short

2021-05-19 15:47:33 83

原创 测试用例、测试用例的设计方法

文章目录什么是测试用例测试用例的给我们带来的好处测试用例的设计方法什么是测试用例测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素(测试方法,重要性,优先级,功能模块等)。好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试评价测试用例的标准:评判好的用例的评价标准用例表达清楚,无二义性。。用例可操作性强。用例的输入与输出明确。一条用例只有一个预期结果。用例的可维护性好。用例对需求的覆盖率高,暴露

2021-05-08 10:45:17 406 6

原创 如果碰到一个bug,作为测试人员的你和开发人员产生了矛盾,该如何解决?

如果碰到一个bug,作为测试人员的你和开发人员产生了矛盾,该如何解决?可以从以下几个方面来回答:1、看自己的bug描述是否清楚2、检查bug的定级是否符合公司的标准(不能将一般级别的bug定义为崩溃啊级别的)3、从用户的角度去说服开发人员(作为用户,遇到类似的bug会咋样,让开发人员意识到bug的存在以及会引发的一些问题)4、不断提高自己的业务水品和技术水平(这样不仅可以发现问题,还能自己提供一些解决方案,时间久了,说话就有分量了,别人也会尊重你的看法)5、和开发人员,产品经理一起开会,商量解

2021-05-08 09:17:13 4547 1

原创 线程通讯、wait和sleep 区别?sleep(0) vs wait(0)有什么区别

文章目录什么是线程通讯wait和sleep 区别?(面试题)sleep(0) vs wait(0)有什么区别?为什么wait会释放锁?而sleep不会释放锁?为什么wait是 0bject的方法,而sleep是Thread 的方法?什么是线程通讯线程通讯就是一个线程的操作可影响到另外其他的线程。主要通过wait/ notify来实现。代码示例public class ThreadDemo38 { public static void main(String[] args) throws In

2021-05-07 21:22:37 5049 3

原创 死锁,造成死锁的原因,如何解决

文章目录什么是死锁产生死锁的条件解决死锁的放式预防死锁(死锁发生前)(破坏产生死锁的四个条件)避免死锁(死锁发生前)(避免形成环路)死锁的解除(死锁发生时)什么是死锁在两个或者两个以上的线程运行中,线程之间互相调用彼此所拥有的资源时,造成的线程一直等待的问题。如下图,线程1与线程2彼此调运各自的资源代码示例import java.util.concurrent.TimeUnit;/** * 死锁的示例 */public class ThreadDemo36 { public s

2021-05-07 20:45:43 341

原创 解决多线程的风险volatile,synchronized,lock

文章目录volitalelockSynchronized非公平锁与公平锁synchronized 和 Lock 的区别volitalevolitatle关键字可以解决内存不可见和指令重排问题,但不能解决非原子性的问题locklock手动锁,可重入锁。1:lock ()操作一定要放在try外面。如果放在 try 里面可能会造成两个问题:1.如果try里面抛出异常了,还没有加锁成功就执行finally里面的释放锁的操作了。因为还没有得到锁就释放锁。2.如果放在try里面,如果没有锁的情况下试图

2021-04-30 19:03:04 207 1

原创 多线程带来的风险以及导致风险的原因

文章目录什么是线程不安全1、原子性2、可见性3、指令重排(编译器优化)4、cup的抢占式执行(万恶之源)5、多个线程同时操作了一个变量什么是线程不安全线程不安全就是线程执行的结果与我们预期的结果不一致。比如一个计算方法,正确的答案是+XXX,而最终的执行结果却是-XXX,这样就是线程不安全的。造成线程不安全的主要有以下五个原因:1、原子性比如的 n++,其实是由三步操作组成的:1. 从内存把数据读到 CPU2. 进行数据更新3. 把数据写回到 CPU如果一个线程正在对一个变量操作,中途

2021-04-30 18:07:31 586 3

原创 让你对进程有个新的认识

文章目录时间片并发与并行内核态与用户态进程中的上下文进程的状态以及转换时间片现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。所谓的多任务,就是操作系统可以同时运行多个任务。操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任

2021-04-30 16:58:26 123 1

原创 线程一点都不难

文章目录什么是进程什么是线程进程与线程之间的关系创建线程的放法什么是进程对于操作系统来说,一个任务就是一个进程(Process)。课本概念:程序的一个执行实例,正在执行的程序等。内核观点:担当分配系统资源(CPU时间,内存)的实体进程是担当分配系统资源(CPU时间,内存)的实体,是系统分配资源的最小单位,是程序组成的实际单位,是具有动态特性的。进程就是可执行文件吗?不是。挡把一个可执行文件加载到内存当中,运行起来之后,可执行文件就变成了一个进程。什么是线程线程是系统调度的最小单位,是轻

2021-04-25 17:29:23 77

原创 认识以太网与ARP协议

文章目录什么是以太网?以太网帧格式认识MAC地址对比理解MAC地址和IP地址认识MTUARP协议什么是以太网?“以太网” 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;例如以太网中的网线必须使用双绞线; 传输速率有10M, 100M, 1000M等;以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN等;以太网帧格式源地址和目的地址是指网卡的硬件地址(也叫M

2021-04-20 19:53:08 320

原创 tcp的三次握手与四次挥手

文章目录三次握手四次挥手三次握手三次握手示意图刚开始, 客户端和服务器都处于 CLOSE 状态.此时, 客户端向服务器主动发出连接请求, 服务器被动接受连接请求.1, TCP服务器进程先创建传输控制块TCB, 时刻准备接受客户端进程的连接请求, 此时服务器就进入了 LISTEN(监听)状态2, TCP客户端进程也是先创建传输控制块TCB, 然后向服务器发出连接请求报文,此时报文首部中的同步标志位SYN=1, 同时选择一个初始序列号 seq = x, 此时,TCP客户端进程进入了 SYN-SEN

2021-04-18 12:46:45 186 6

原创 认识IP

文章目录什么是IP地址IP协议头格式快速记住IP协议头:什么是IP地址IP地址的官方定义IP地址(Internet Protocol Address),全称为网际协议地址,是一种在Internet上的给主机编址的方式。它是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址的通俗解释通俗地来说,IP地址对于网站相当于身份证对于人,IP地址是对网站身份的一个标定,这种标定便利了对于网站的寻找。IP协议头格式4位

2021-04-17 17:36:01 315

原创 什么是端口号

文章目录概念端口号范围的划分认识知名端口号(Well-Know Port Number)一个进程是否可以bind多个端口号?一个端口号是否可以被多个进程bind?概念IP地址是用来确定哪一台服务器(主机)的,而端口号就是用来确定这台主机上的那个进程的(qq、微信等都是一个进程),也就是说,可以通过端口,号确定是QQ,微信,爱奇艺等具体哪一个。比如网上购物后,你写的你们学校为收货地址,快递员通过地址送到了你们学校(而这就相当于通过IP找到了具体的主机),但学校有很多学生,快递员只能通过你的手机号来找到你(

2021-04-17 17:18:50 5843

原创 了解UDP

文章目录udp的特点:udp的首部格式:UDP的缓冲区UDP使用注意事项基于UDP的应用层协议udp的特点:1、无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接;2、不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息;3、面向数据报: 应用层交给UDP多长的报文, UDP原样发送, 既不会拆分, 也不会合并。不能够灵活的控制读写数据的次数和数量3、不可靠,尽最大努力交付4、没有拥塞控制5、支持一对一,一对多,

2021-04-17 16:54:17 639

原创 TCP与UDP的比较

TCP/UDP对比先从不同点来考虑:特点方面:1、udp面向数据报,tcp面向字节流2、udp无连接,tcp面向连接3,、udp是尽最大可能的服务,tcp是可靠的服务4、udp支持广播,多对多,多对一,一对多,一对一的交互通信,tcp只能一对一5、udp的首部开销小,只有8个字节,而tcp有20个字节6、udp无拥塞控制,tcp有适用场景:TCP用于可靠传输的情况, 应用于文件传输, 重要状态更新等场景;UDP用于对高速传输和实时性要求较高的通信领域, 例如, 早期的QQ, 视频传输等

2021-04-17 16:30:16 355

原创 了解tcp

文章目录TCP的特点:TCP协议段格式TCP实现可靠传输的机制1、确认应答(ACK)机制2、超时重传机制3、连接管理机制三次握手四次挥手4、滑动窗口5、 流量控制6、 拥塞控制7、延迟应答8、捎带应答9、面向字节流10、粘包问题TCP/UDP对比tcp也叫 传输控制协议,是TCP/IP体系中非常复杂的一个协议,下面来说说它的特点:TCP的特点:1.面向连接的运输层协议2、每一条tcp的连接只能有两个端点,即点对点,一对一的3、tcp提供可靠交付的服务4、tcp提供全双工通信(即两边都可以同时接收

2021-04-17 16:28:21 366

原创 软件的开发模型和测试模型

文章目录开发模型瀑布模型(Waterfall Model):螺旋模型(Spiral Model)测试模型开发模型瀑布模型(Waterfall Model):瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。优点: –强调开发的阶段性; –强调早期计划及需求调查; –强调产品测试。 •缺点: –依赖于早期进行的唯一一次需求调查,不能适应需求的变化; –由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程; –风险

2021-04-17 13:05:45 605

原创 初识软件测试一

文章目录什么是软件测试测试与调试的区别:软件测试和研发的区别软件测试的目的和原则什么是需求什么是bug什么是测试用例什么是软件测试软件测试就是证明软件不存在错误的过程软件测试就是为了证明程序能够正确运行1979年,Glenford Myers(美 梅尔斯),<软件测试艺术>[The Art of Software Testing]:为了发现错误而执行程序或者系统的过程1983年,Bill Hetzel在《软件测试完全指南》(Complete Guide of Software Test

2021-04-17 09:57:42 208

原创 水杯的测试用例

啊啊啊

2021-04-17 09:56:38 1210 1

原创 搜索二维矩阵

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。列从上到下升序排序每行的第一个整数大于前一行的最后一个整数。可以看出,按行展开就是一个排序的数组, 矩阵的横坐标=中间坐标(mid)/ 列数(n)纵坐标=中间坐标(mid)% 列数(n),这样就成了一个二分查找class Solution { public boolean searchMatrix(int[][] matrix, int target) {

2021-04-13 20:52:12 155

原创 OSI七层模型与tcp/ip四层模型

文章目录OSI七层模型各层的作用:工作在各层的物理设备:数据包封装和分用网络中的地址管理OSI七层模型OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机。OSI 七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能使就是帮助不同类型的主机实现数据传输。它的最大优点是将

2021-04-13 12:22:24 362

空空如也

空空如也

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

TA关注的人

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