自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

热爱编程的菜鸟

分享学习的日常

  • 博客(133)
  • 资源 (2)
  • 问答 (3)
  • 收藏
  • 关注

原创 记录一次业务遇到的sql问题

刚开始工作 业务能力比较薄弱 记录一下这几天遇见的一个业务问题。

2024-03-16 19:18:37 492

原创 Git常用命令

记录经常使用的Git命令。对于小白来说会以下命令,在工作中基本就可以使用Git了。包括从克隆远程分支,到合并远程分支到本地,到最后的提交分支到远程。

2024-01-26 16:57:26 425

原创 CASE-WHEN在CRUD中的应用

简单介绍一下CASE-WHEN语句MySQL中的CASE-WHEN语句用于根据一定的条件来返回不同的结果。它可以用在SELECT、UPDATE、DELETE等语句中,用于对结果进行筛选、排序、计算等操作。基本语法如下图所示CASE...END其中,condition是一个条件表达式,result是条件成立时返回的结果。如果没有任何条件成立,则返回ELSE后面的结果。

2023-12-24 14:46:32 894

原创 使用selenium webdriver和mitmproxy代理模拟用户点击抓包(抓华为应用商城app数据)

本文简单记录一下使用selenium webdriver和mitmproxy代理模拟用户点击抓包的过程。用于模拟真实的用户访问网站,达到抓包的目的。作者水平有限,可用于入门教程。

2023-12-21 10:58:01 2119

原创 ctrl+d和ctrl+c的区别

Ctrl+D是一个Unix/Linux系统中的快捷键,其作用是发送EOF(End of File)信号,表示输入结束。在命令行终端中,当用户输入完命令后,按下Ctrl+D,就可以让终端知道输入结束,然后执行该命令。Ctrl+C也是一个Unix/Linux系统中的快捷键,其作用是中断当前进程。在命令行终端中,当用户输入一个长时间运行的命令时,可以按下Ctrl+C来停止该命令的执行。Ctrl+D和Ctrl+C都是常用的键盘快捷键,但它们的功能不同。Ctrl+D用于结束输入,Ctrl+C用于中断进程。

2023-10-08 22:28:51 1024

原创 CURL文件上传

CURL文件上传。

2023-09-06 09:43:20 3772

原创 【bad CPU type in executable】 MAC M1无法使用 x86_64 架构应用,通过配置自动使用

bad CPU type in executable

2023-07-06 15:57:58 4437

原创 【Git从入门到精通】分支机制

Git的分支模型是Git的杀手锏特性。

2023-04-02 18:32:28 500 2

原创 【Git从入门到精通】Git基础-远程仓库和标签的使用

Git远程仓库和标签的使用。

2023-03-22 16:22:23 630

原创 【Git从入门到精通】Git基础

通过学习这一部分内容,你就可以开始使用Git了。

2023-03-17 14:30:58 403

原创 【Git从入门到精通】Git入门

版本控制是一套系统,按时间记录某一个或一系列文件的变更,查看以前的特定版本。使用版本控制系统,你可以将文件或者整个项目恢复到先前的状态,还可以对以前的文件进行对比。

2023-03-12 20:48:44 502

原创 【Go语言】切片的扩容

不论是在Java中,或者其他语言中,集合的一个底层原理都是面试考察的一个重点,这篇文章就简单的讲一下切片的扩容机制,如果需要深入研究,可以自行看源码。否则每次增加四分之一容量在加上四分之三的阈值容量知道大于所需容量(newcap += (newcap + 3*threshold) / 4)在不同的版本中,扩容的机制也是不同的,如果你能够同时大致的说出这两种的不同,很有可能获得面试官的一个好感。如果所需的容量大于两倍就扩容至所需的容量。如果所需的容量大于两倍就扩容至所需的容量。否则如果小于256就扩容两倍。

2022-09-08 14:21:53 401

原创 【golang学习笔记】net/http包下handler和handlerFunc区别

方法签名。

2022-07-24 18:25:44 404

原创 【golang学习笔记】Go语言中参数的传递是值传递还是引用传递

Go中所有的参数传递都是值传递,是对数据进行一个拷贝。具体分为引用类型和非引用类型非引用类型(值类型)int,string,float,bool,数组和struct;特点值类型变量声明后,直接存的就是对应的数据。引用类型指针,slice,map,channel,接口,函数等。特点变量存放的是一个内存地址值,这个地址值指向的空间存的才是最终的值。内存通常在堆中分配,当没有任务变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,通过GC回收。...

2022-07-22 12:13:34 1056

原创 【golang学习笔记】flag包的简单使用,命令行解析

flag包支持的命令行参数类型有bool、int、int64、uint、uint64、floatfloat64、string、duration。StringVar用指定的名称、默认值、使用信息注册一个string类型flag,并将flag的值保存到p指向的变量。String用指定的名称、默认值、使用信息注册一个string类型flag。返回一个保存了该flag的值的指针。在执行时使用--name=value进行传递。flag包实现了命令行参数的解析。本文只是简单入门,详细请看。一个-和两个-是一样的。...

2022-07-22 11:05:13 322

原创 【golang学习笔记】包(package)的使用

可以为包设置别名其中F就是包fmt的别名,使用时可以用别名替代如果我们想同时导入两个有着名字相同的包,例如math/rand包和crypto/rand包,那么导入声明必须至少为一个同名包指定一个新的包名以避免冲突。这叫做导入包的重命名。import("crypto/rand"mrand"math/rand"//将名称替换为mrand避免冲突)导入包的重命名只影响当前的源文件。其它的源文件如果导入了相同的包,可以用导入包原本默认的名字或重命名为另一个完全不同的名字。...

2022-07-21 15:32:51 1916

原创 【golang学习笔记】并发基础

Go语言从语言层面就支持并发。同时实现了自动垃圾回收机制goroutine是一种非常轻量级的实现,可在单个进程里执行成千上万的并发任务,它是Go语言并发设计的核心。说到底goroutine其实就是线程,但是它比线程更小,十几个goroutine可能体现在底层就是五六个线程,而且Go语言内部也实现了goroutine之间的内存共享。...

2022-07-20 20:47:06 1068 2

原创 【golang学习笔记】接口(interface)

Go语言中使用组合来实现对象特性的描述,对象的内部使用结构体内嵌组合对象应该具有的特性,对外通过接口暴露能使用的特性。Go 语言的接口设计是非侵入式的,接口编写者无须知道接口被哪些类型实现。而接口实现者只需知道实现的是什么样子的接口,但无须指明实现哪一个接口。编译器知道最终编译时使用哪个类型实现哪个接口,或者接口应该由谁来实现非侵入式设计是Go语言设计师经过多年的大项目经验 总结出来的设计之道。只有让接口和实现者真正解耦,编译速度才能真正提高,项目之间的耦合度也会降低。每个接口类型由数个方法组成,格式如下:

2022-07-13 15:48:22 1047

原创 【Golang】函数(一等公民)的使用

Go语言支持普通函数、匿名函数和闭包,从设计上对函数进行了优化和改进,让函数使用起来更加的方便。Go语言的函数属于“一等公民”(first-class),也就是说:函数构成了代码执行的逻辑结构,函数的基本组成为:Go语言拥有三种类型的函数:函数声明包括函数名、形式参数列表、返回值列表(可以省略)以及函数体例如:形式参数列表描述了函数的参数名以及类型,是局部变量返回值列表描述了函数返回值的变量名以及类型如果函数返回一个无名变量或者没有返回值,返回值列表的括号是可以省略的(即如果返回值声明了变量名,则

2022-07-12 18:20:50 2338

原创 【Golang】切片(slice)

切片(slice)是对数组的一个连续片段的引用,所以切片是一个引用类型,这个片段可以是整个数组,也可以是由起始和终止索引标识的一些项的子集,需要注意的是,终止索引标识的项不包括在切片内。Go语言中切片的内部结构包含地址、大小和容量,切片一般用于快速地操作一块数据集合,如果将数据集合比作切糕的话,切片就是你要的“那一块”,切的过程包含从哪里开始(切片的起始位置)及切多大(切片的大小),容量可以理解为装切片的口袋大小,如下图所示:切片默认指向一段连续内存区域,可以是数组,也可以是切片本身。从连续内存区域生成切片

2022-07-12 14:18:46 4424

原创 【Golang】指针

每个变量都有一个地址,使用“&”操作符放在变量前面对变量进行取地址操作。输出结果:看以下代码结果:其中cat表示被取地址的变量,被取的地址的cat被ptr进行接收,ptr的类型为 (因为cat的类型为int)称为T的指针类型, 代表指针可以使用* 操作代表指针取值结果:由此可以看出:取地址符 和取值操作符 是一对互操作符, 取出地址, 根据地址取出地址指向的值。变量、指针地址、指针变量、取地址、取值的相互关系和特性如下:结果: 操作符作为右值时,意义是取指针的值,作为左值时,也就是放在赋

2022-07-10 15:18:13 961 4

原创 Go语言的基本语法和使用---数据类型

整形分为以下两大类其中uint8就是byte类型,int16对应c中的short型,int64对应c语言中的long型。自动匹配平台的int和uintGo语言有自动匹配特定平台整形长度的类型-int和uint。在使用int和uint时,不能假定它是32位和64位的整形,而是考虑int和uint可能在不同平台上的差异。那些情况下使用int和uint逻辑对整型范围没有特殊要求时使用。在二进制传输,读写文件的结构描述时,为了保持文件的结构不会收到不同编译目标平台字节长度的影响,不要使用int和uint。Go语

2022-07-08 11:42:04 614

原创 Go语言的基本语法---变量

Go语言是静态类型语言,变量拥有明确的类型,编译器也会检查变量类型的正确性。在Go语言中,声明变量时将变量的类型放在变量的名称之后,避免含糊不清的声明形式。通过下面代码了解变量声明的基本样式代码说明:比如上面的程序输出为变量的声明主要有以下几种标准格式格式为:声明变量以关键字var开头,后置变量类型,末尾不需要分号。批量格式使用关键字var和括号,可以将一组变量定义放在一起。简短格式简短格式有以下限制:简短格式拥有简洁和灵活的特点,被广泛用于大部分的局部变量的声明和初始化,往往用于显式指定变量类型

2022-07-08 10:21:44 354

原创 【排序算法】八大排序算法的基本原理及其实现,带你掌握排序算法

实现:插入排序实现:选择排序实现:快速排序代码实现:其他算法—明天更

2022-06-19 21:46:58 166 1

原创 【Java并发编程】CompletableFuture的基础理论

Future接口(FutureTask实现类)定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕。只要是异步线程,比如主线程让一个子线程去执行任务,子线程可能比较耗时,启动了子线程开始执行任务后,主线程就去做其他事情了,忙其他事情或者先执行完,过了一会去获取子任务的执行结果或变更的任务状态。是JAVA5新加的一个接口,他提供了一种异步并行计算的功能。如果主线程需要执行一个很耗时的计算任务,我们就可以通过future把这个任务放到异步线程中执行。

2022-06-19 19:18:26 163

原创 【Java并发编程】带你了解JUC

创建一个线程进入start()方法可以看到这是一个由synchronize修饰的类由方法中的实现可以看出,它是通过一个叫start0()的方式来开启一个线程的。start0是一个原生的方法,由C++编写的。最终使用的是操作系统来调用的。下载地址gitee:https://gitee.com/chen0218/openjdk8下载在本地即可此地址下对应的就是Thread.java对应的c文件打开会发现strat0方法,他是由JVM_SrartThread进行启动加载的JVM介于硬件和操作系统之间打开文件最终

2022-06-11 20:34:38 860

原创 【操作系统基础】线程

在传统的操作系统中,每个进程有一个地址空间和一个控制线程。事实上,这几乎就是进程的定义,不过,经常存在同一个地址空间中准并行运行多个控制线程的情形,这些线程就像分离的进程。为什么人们需要在一个进程中再有一类进程?主要原因是:在许多的应用中同时发生着多种活动,某些活动会随着时间的推移会被阻塞,通过将这些应用程序分解成可以准并行运行的多个顺序线程,程序设计模型会变得更简单。进程模型基于两种独立的概念:资源分组处理和执行。有时,将这两种概念分开会更好,这就引入了”线程“这一概念。理解进程的一个角度是,用某种方法把

2022-06-06 18:01:24 114

原创 【操作系统】初步了解进程

操作系统最核心的概念是进程:这是对正在运行程序的一个抽象。在进程模型中,计算机上所有可运行的软件,通常也包括操作系统,被组织成若干顺序进程,简称进程。

2022-06-04 23:27:51 146 1

原创 关于iterator的快速失败机制

文章目录快速失败本文主要用最简单的描述来讲解在什么情况下会发生快速失败首先了解一下Iterator接口public interface Iterator<E> { boolean hasNext(); E next(); default void remove() { throw new UnsupportedOperationException("remove"); }其中主要有三个方法hasNext()hasNext用于判

2022-05-30 22:24:48 291 1

原创 【工厂模式详解】工厂方法模式

文章目录工厂模式工厂方法模式工厂模式前面已经介绍了简单工厂模式本文主要介绍工厂方法模式工厂方法模式简单工厂模式的缺点是工厂类的职责相对过重,不易于扩展复杂的产品结构。工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法模式让类的实例化推迟到子类中进行。让工厂方法模式中用户只需要关心所需产品对应的工厂,无须关心创建的细节,而且加入细心的产品时复合开闭原则。工厂方法模式主要解决产品扩展的问题。在简单工厂模式中,

2022-04-21 18:25:23 521

原创 【工厂模式详解】简单工厂模式

文章目录工厂模式简单工厂模式工厂模式本文主要结合实例讲解简单工厂模式简单工厂模式简单工厂模式(Simple Factory Pattern)是指一个工厂对象决定创建哪一种产品类的实例,但它不属于GoF(Gang of Four)的 23 种设计模式。简单工行模式适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象不需要关心。以课程为例,我们定义一个课程标准接口ICourse接口:public interface ICourse { /**

2022-04-17 21:55:36 550 3

原创 【软件架构设计原则】迪米特原则、里氏替换原则、合成复用原则

文章目录软件架构设计原则迪米特原则软件架构设计原则本文通过实例来讲解迪米特原则里氏替换原则合成复用原则迪米特原则迪米特原则(Law of Demeter LoD)是指一个对象应该对其他对象保持最少的了解,又叫做最少知道原则(Least Knowledge Principle,LKP),尽量降低类与类之间的耦合度。迪米特原则主要强调:只和朋友交流,不和陌生人说话,出现在成员变量、方法的输入、输出参数中的类都可以称为成员朋友类,而出现在方法体内部的类不属于朋友类。现在设计一个权限系统,Bos

2022-04-10 16:56:24 1090 2

原创 【软件架构设计原则】单一职责原则和接口隔离原则

2022-04-01 10:18:26 2037 2

原创 【软件架构设计原则】开闭原则和依赖倒置原则

文章目录软件架构设计原则开闭原则依赖导致原则最后软件架构设计原则本文通过实例来讲解开闭原则依赖导致原则开闭原则开闭原则(Open-Close Principle,OCP)是指一个软件实体(如类、模块和函数)应该对扩展开放,对修改关闭。所谓的开闭,也正是对扩展和修改两个行为的一个原则。它强调的是用抽象构建框架,用实现扩展细节,可以提高软件系统的可复用性及可维护性。开闭原则是面向对象设计中最基础的设计原则,它指导我们如何简历稳定、灵活的系统。例如版本更新,我们尽可能不修改源代码,但是可以增加新功

2022-03-29 11:08:53 1556 1

原创 HTTP发展历程及HTTP1.1和HTTP2.0的区别

文章目录HTTP简介HTTP工作原理三点注意事项发展历程HTTP1.1和2.0的区别HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)HTTP工作原理HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发

2022-03-23 17:55:55 1828

原创 在Mybatis如何获取表中自增长 id 的值

文章目录问题描述解决方案:问题描述比如有两张表,我们需要同时往两张表中添加数据,课程表中的id 作为 user表中的外键。user表idusercourse1张三12李四3课程表idcourse_name1语文2数学3英语课程表中的id是自增长的。课程表中的主键 作为 user表中的外键,所以这个id是在添加完成后拿到的。加入我们同时需要给两张表中添加(这里只是举一个例子),如何在添加完课程后拿到它的

2022-03-22 15:47:07 1712 2

原创 计算机网络体系结构七层结构,各层的任务和功能是什么?

文章目录前言分层的好处体系结构图OSI七层参考模型TCP/IP参考模型七层各层的任务和功能物理层数据链路层网络层传输层会话层表示层应用层前言计算机网络体系结构是计算机网络的各层及其协议的集合体系结构就是这个计算机网络及其部件所应完成的功能的精确定义实现是遵循这种体系结构的前提下用何种硬件和软件完成这些功能的问题体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件七层得任务和功能也是面试常问的问题,本文主要以简短的语句总结各层的功能和任务,以便于记忆。分层的好处各层是独立的

2022-03-18 13:19:51 8357

原创 JPA:org.hibernate.LazyInitializationException: could not initialize proxy 异常处理

异常说明在使用JPA框架的时候,调用getById() 在输出时使用了log.debug("findById" + ibs.findById(2)); 或者System.out.println(ibs.findById(2));发生了org.hibernate.LazyInitializationException: could not initialize proxy [com.dyit.springboot.entity.Publisher#2] - no Session 异常解决方案实体

2022-03-17 22:59:53 1582

原创 Java中的锁升级

关于锁升级的四种级别,即如何升级

2022-03-15 09:46:25 8593 1

原创 Swagger的使用

文章目录swagger是什么?有什么用?swagger是什么?有什么用?Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。有三个重要的作用:将项目中所有的接口展现在页面上,这样后端程序员就不需要专门为前端使用者编写专门的接口文档;当接口更新之后,只需要修改代码中的 Swagger 描述就可以实时生成新的接口文档了,从而规避了接口文档老旧不能使用的问题通过 Swagger 页面,我们可以直接进行接口调用,降低了项目开发阶段的调试成本。

2022-03-13 21:23:36 1236

apk反编译工具漏了个大洞.zip

apk反编译工具

2021-08-06

wafw00f-master.zip

WAF探测工具

2021-08-06

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

TA关注的人

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