- 博客(39)
- 收藏
- 关注
原创 Hexo博客搭建
如果你会 JavaScript 代码,可以修改成你自己喜欢切换逻辑,如:随机切换等,banner 切换的代码位置在。验证一下,然后新建一个文件夹,用于存放博客的文件,在安装了git之后,右键选择git bash here ,弹出Git Bash窗口 ,执行。去掉主页的Github按钮,打开主题配置文件,找到下面的配置: 将enable属性值由true改为fals即可。首先我们要安装Node.js,安装非常简单,Node.js安装完成后的检验操作是在DOS窗口下输入命令。,这两个命令就是查看版本信息的。
2024-03-22 16:52:20 294
原创 数据结构基础
基础的结构:链表、数组、队列、栈、二叉树、堆、图的定义等基础的算法:排序、二分查找、二叉树的遍历、图的广度和深度优先算法、字符串朴素匹配算法基础的算法思想:递归、分治、贪心、回溯、动态规划:时间空间复杂度、适合解决什么问题、应用场景、原理、代码实现。
2024-03-22 16:18:04 728
原创 HTML_CSS
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。将float属性的值设置为left或right,元素就会向其父元素的左侧或右侧靠紧。伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要html标签,从而简化HTML结构,创建的元素属于行内元素。在浮动布局中,父元素的高度默认是被子元素撑开的,在子元素浮动后,其会完全脱离文档流,子元素从文档流中脱离,将会无法撑起父元素的高度,导致父元素的高度丢失。
2024-03-22 16:08:34 879
原创 SpringBoot使用技巧
我们都知道spring默认支持的Scopesingleton 单例,每次从spring容器中获取到的bean都是同一个对象。prototype 多例,每次从spring容器中获取到的bean都是不同的对象。spring web又对ScopeRequestScope 同一次请求从spring容器中获取到的bean都是同一个对象。SessionScope 同一个会话从spring容器中获取到的bean都是同一个对象。即便如此,有些场景还是无法满足我们的要求。
2024-03-22 15:44:48 1862
原创 Nginx笔记
Nginx 是一个十分轻量级的 HTTP 服务器,Nginx,是一个高性能的HTTP和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。
2023-09-22 09:29:43 17
原创 Docker笔记
Docker基本组成:仓库、镜像、容器容器是用镜像创建的运行实例。仓库是保存镜像文件的场所。 dokcer架构图开启docker,,阿里云镜像加速器配置文件。执行完命令后,由于本地没有这个镜像,会下载一个镜像在容器内运行。Docker是一个C/S结构的系统,Docker守护进程运行在主机上,通过Socket连接从客户端访问,守护进程管理运行在主机上的容器。docker常用命令::列出本地主机上的镜像:只显示镜像的ID。
2023-09-22 09:29:27 29
原创 分布式系统
通信异常:网络本身不可靠,即使分布式系统各节点之间的网络通信能够正常执行,其延时也会大于单机操作,存在巨大的延时差别,也会影响消息的收发过程,因此消息丢失和消息延迟变的非常普遍。带来了系统的复杂性,如分布式事务、分布式锁、分布式session、数据一致性。
2023-09-22 09:28:53 61
原创 Java事务相关
要在 public 方法上使用,在AbstractFallbackTransactionAttributeSource类的computeTransactionAttribute方法中有个判断,如果目标方法不是public,则TransactionAttribute返回null,即不支持事务。if (txAttr!if (txAttr!
2023-09-22 09:28:33 132
原创 Redis知识点总结
Not Only SQL,意为“不仅仅是SQL”分库分表+水平拆分+MySQL集群1.在Memcached的高速缓存,MySQL的主从复制,读写分离的基础上,这时MySQL主库的写压力出现瓶颈,而数据量的猛增,由于MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。同时,使用分库分表来缓解写的压力和数据增长的扩展问题。2.NoSQL易扩展、大数据量高性能、多样灵活的数据类型。
2023-09-22 09:28:14 63
原创 设计模式及其应用
在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。里氏代换原则是面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。
2023-09-22 09:27:56 131
原创 消除if-else的技巧
PayService类的toPay方法主要是为了发起支付,根据不同的code,决定调用用不同的支付类(比如:aliaPay)的pay方法进行支付。这段代码有什么问题呢?也许有些人就是这么干的。试想一下,如果支付方式越来越多,比如:又加了百度支付、美团支付、银联支付等等,就需要改toPay方法的代码,增加新的else…if判断,判断多了就会导致逻辑越来越多?
2023-09-22 09:27:34 26
原创 Git笔记
加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。将别人的仓库fork到自己的仓库下面,然后clone到本地,做出修改后推送给别人。已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;你可以多次stash,恢复的时候,先用。,显示从最近到最远的提交日志,
2023-09-22 09:27:15 61
原创 JVM概述
Java 虚拟机在执行 Java 程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java 虚拟机规范将 JVM 所管理的内存分为以下几个运行时数据区:程序计数器、Java 虚拟机栈、本地方法栈、Java 堆、方法区。
2023-09-22 09:27:03 63
原创 SQL优化技巧
很多时候,我们写sql语句时,为了方便,喜欢直接使用select *,一次性查出表中所有列的数据。在实际业务场景中,可能我们真正需要使用的只有其中一两列。查了很多数据,但是不用,白白浪费了数据库资源,比如:内存或者cpu。此外,多查出来的数据,通过网络IO传输的过程中,也会增加数据传输的时间。select *不会走覆盖索引,会出现大量的回表操作,而从导致查询sql的性能很低。那么,如何优化呢?sql语句查询时,只查需要用到的列,多余的列根本无需查出来。
2023-09-22 09:26:49 43
原创 Mybatis基础
MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。springboot与mybatis整合:UserMapper文件,通过注解方式实现然后直接在Controller中调用就行了。
2023-09-22 09:25:46 30
原创 J2EE基础
Servlet是javaWeb的三大组件之一,它属于动态资源。Servlet的作用是请求处理,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要接收请求数据、处理请求,完成响应。在Java Web程序中,主要负责接收用户请求,在doGet()doPost()中做相应的处理,并将回应反馈给用户。可以设置初始化参数,供Servlet内部使用。一个Servlet类只会有一个实例,在它初始化时调用init()方法,销毁时调用destroy()方法**。
2023-09-22 09:25:35 40
原创 线程池基础
通过上面分析提到,通过Executors这个工具类来创建的线程池其实都无法满足实际的使用场景,那么在实际的项目中,到底该如何构造线程池呢,该如何合理的设置参数?1)线程数线程数的设置主要取决于业务是IO密集型还是CPU密集型。CPU密集型指的是任务主要使用来进行大量的计算,没有什么导致线程阻塞。一般这种场景的线程数设置为CPU核心数+1。IO密集型:当执行任务需要大量的io,比如磁盘io,网络io,可能会存在大量的阻塞,所以在IO密集型任务中使用多线程可以大大地加速任务的处理。
2023-09-22 09:25:17 34
原创 Python基础知识
Python 中的变量赋值不需要类型声明。Python有五个标准的数据类型:Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)多个变量赋值截取字符串列表是 Python 中使用最频繁的数据类型,使用[]标识元组用标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表如果要定义一个空的tuple,可以写成()t =(1) t 1定义的不是tuple,是1这个数!这是因为括号()
2023-09-22 09:24:41 26
原创 数据结构与算法基础
基础的结构:链表、数组、队列、栈、二叉树、堆、图的定义等基础的算法:排序、二分查找、二叉树的遍历、图的广度和深度优先算法、字符串朴素匹配算法基础的算法思想:递归、分治、贪心、回溯、动态规划:时间空间复杂度、适合解决什么问题、应用场景、原理、代码实现。
2023-09-21 17:43:49 35
原创 Webpack
本质上,是一个用于现代 JavaScript 应用程序的_静态模块打包工具_。当 webpack 处理应用程序时,它会在内部构建一个依赖图,此依赖图对应映射到项目所需的每个模块,并生成一个或多个bundle。
2023-09-21 17:43:01 36
原创 JavaScript基础
JS是一种弱类型的语言,它的数据类型只有在程序运行过程中,根据等号右边的值确定,并且数据类型是可变的。Js数据类型可以简单地分为两大类:值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。引用数据类型:对象(Object)、数组(Array)、函数(Function)。数字型:在JS中八进制前面加0,十六进制前面加0x;Infinity,表示无穷大,大于任何数值。
2023-09-21 17:40:40 51
转载 oracle中使用start with connect by prior
1、自己所有的后代节点(包括自己)start with 子节点ID='...' connect by prior 子节点ID = 父节点IDselect * from mdm_organization o start with o.org_code='10000008' connect by prior o.org_code=o.org_parent_code2、自己所有的后代节点(不包括自己)start with 父节点ID='...' connect by prior 子节点ID = 父节点I
2022-04-28 09:29:09 270
原创 局部变量表的slot复用
我们知道,Java虚拟机栈的局部变量表,最基本的存储单元是slot,相当于为各种变量预留了内存空间。在局部变量表里,32位以内的类型只占用一个slot,64位的类型(long和double)占用两个slot。而为了尽可能节省栈帧空间,局部变量表中的Slot是可以重用的。public void gc(){ { byte[] arr = new byte[1024 * 10 * 1024]; } System.gc();}第一段代码触发了GC,内存没有回收。但是在
2021-09-08 22:34:10 219
原创 联想win10系统如何恢复出厂设置
电脑的左侧边找到箭头向下的小孔,用取卡针戳一下 然后屏幕上会出现一个对话框, 点击对话框的最后一个选项System Recovery 出现四个选项继续、关闭电脑、使用设备、疑难解答,我们点击疑难解答,选重置此电脑,删除所有内容, 点击仅限安装了Windows的驱动器, 点击仅删除我的文件,这样的话C盘与桌面的资料会丢掉,而其他盘的资料不会,点击 重置即可完成。注意要保证 电脑电源充足...
2019-02-26 13:07:28 8124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人