- 博客(127)
- 收藏
- 关注
原创 JDK安装目录
该路径下存放了各种工具命令,其中比较重要的有:javac和java。该路径下存放了一些工具的补充jar包。该路径加存放了一些平台特定的头文件。该路径下存放了各种模块的授权文档。该路径下存放了相关配置文件。该路径下存放量了各种模块。
2024-06-02 15:29:16
245
2
原创 Visual Studio 快捷键
快捷键功能CTRL+K+C多行注释CTRL+K+U多行注释快CTRL+X剪切整⾏代码CTRL+L删除整⾏代码CTRL+Shift+Enter在光标所在⾏的下⾯插⼊⼀⾏CTRL+Enter在光标所在⾏的上⾯插⼊⼀⾏
2023-07-17 16:29:02
608
原创 JS 跨域问题
官方文档介绍一、简介跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript 施加的安全限制。同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域; 跨源资源共享标准新增了一组 HTTP 首部字段,允许服务器声明哪些源站通过浏览器有权限访问哪些资源。另外,规范要求,对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是 GET 以外的 HTTP 请求,或者搭配某些 MIME(媒体类型)类型 的 POST 请求),浏览器必须首先使
2022-04-11 23:35:05
2700
原创 服务器上数据库被删优化办法
1、最近在写一个小项目,MySQL 数据库使用 Docker 安装部署在租的服务器上,然后使用 Navicat 连接数据库时,发现:ERROR 1045 (28000): Access denied for user ‘root‘@‘x.x.x.x‘ (using password: YES/NO)之前一直是能连上的,并且最近开发一直在使用,开发过程中编写过 sql 执行都是没问题的。2、百度发现这个错误是因为 root 账户没有远程访问权限(参考),即跨 ip 访问权限,但是之前安装部署时是打开
2022-04-07 21:17:12
8858
2
原创 Java基础知识
一、为什么说 Java 语言“编译与解释并存”? 这是因为 Java 语言既具有编译型语言的特征,也具有解释型语言的特征。因为 Java 程序要经过先编译,后解释两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码(.class 文件),这种字节码必须由 Java 解释器来解释执行。二、静态方法为什么不能调用非静态成员?这个需要结合 JVM 的相关知识,主要原因如下:1、静态方法是属于类的,在类加载的时候就会分配内存,可以通过类名直接访问。而非静态成员属于实例对象,只有在对象实例化之后
2022-04-06 16:39:28
1605
原创 Vue模块化开发
Vue 简介 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不 同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上 手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库 结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。MVVM思想 M:即 Model,模型,包括数据和一些基本操作 V:即 View,视图,页面渲染结果 VM:即 View-Model,模型与视图间的双
2022-04-05 08:06:00
1676
原创 前端小知识
一、JavaScript中undefined 和not defined参考:https://www.cnblogs.com/zdhblog/p/6801408.html
2022-04-04 08:53:25
256
原创 整合MyBatis-Plus
1、导入依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version></dependency>2、配置①、配置数据源; 1)、导入数据库的驱动。https://dev.mysql.c
2022-03-25 23:16:26
902
原创 Node.js 安装配置
一、下载查询Node.js 中文网即可下载,速度比较快。https://nodejs.org/zh-cn/下载最新版本即可,也可按需求下载历史版本。二、安装默认下一步即可。三、测试是否安装成功控制台输入以下命令:node -v控制台打印所安装 Node.js 版本即代表安装成功。四、配置 npm 使用淘宝镜像以提高下载速度npm config set registry http://registry.npm.taobao.org/五、VsCode使用 npm1、打开项目
2022-03-24 22:18:05
4874
2
原创 Maven安装配置
一、下载https://maven.apache.org/download.cgi安装步骤默认下一步即可二、配置 settings.xmlmaven3\conf\settings.xml1、配置存放本地仓库地址<localRepository>D:\apache-maven-3.6.0\repository</localRepository> 配置在 settings 后面即可2、配置 jdk 版本在 <profiles></profile
2022-03-23 10:35:04
448
原创 Git安装配置
1、下载 git;https://git-scm.com默认下一步即可2、配置 git,进入 git bash#配置用户名 git config --global user.name "username" //(名字) # 配置邮箱 git config --global user.email "username@email.com" //(注册账号时用的邮箱)3、配置 ssh 免密登录进入 git bash;使用:ssh-keygen -t rsa -C "xxxxx@xxxxx.com
2022-03-22 22:39:36
1110
原创 使用Docker搭建Linux开发环境
主要命令参考:https://docs.docker.com/engine/install/centos/一、Centos安装Docker1、卸载系统之前的 docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \
2022-03-21 21:55:23
2264
原创 使用VirtualBox和Vagrant搭建Linux环境
一、确定电脑的CPU开启CPU虚拟化1、电脑CPU一般都会默认被虚拟化,如下图所示:2、如果未被虚拟化,需进入BISO界面打开CPU虚拟化二、下载VirturalBox并完成安装下载地址:https://www.virtualbox.org/wiki/Downloads安装步骤默认下一步即可三、下载Vagrant并完成安装,并且电脑要重启下载地址:https://www.vagrantup.com;建议使用迅雷下载四、在cmd中运行:vagrant检查Vagrant是否安装成功,提
2022-03-17 22:54:09
1661
转载 for循环条件中i++和++i的区别
**主要是运行时间有差别,当循环次数较少没多少出入,但是当我们循环的次数上去了那么这差距就有点明显了。然后仔细探考后发现:在Java中i++语句是需要一个临时变量取存储返回自增前的值,而++i不需要。这样就导致使用i++时系统需要先申请一段内存空间,然后将值塞进去,最后不用了才去释放。多了这么一系列操作时间当然多了啊,最后建议大家以后在写for循环且不影响逻辑的情况下多使用++i,少使用i++。**详细分析见参考...
2022-02-18 16:37:24
454
原创 MySQL的语句执行过程
客户端发送一条查询给服务器;服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果。否则进入下一阶段;服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划;MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询;将结果返回给客户端。...
2021-03-26 09:23:43
98
原创 MySQL中的锁及其粒度
按照对数据操作的锁粒度来分:行级锁、表级锁、页级锁、间隙锁行级锁:行级锁是MySQL中锁定粒度最细的一种锁。表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突,其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁和排他锁。表级锁:表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分MySQL引擎支持。最常使用的MyISAM与InnoDB都支持表级锁定。表级锁定分为表共享读锁(共享锁)与表独占写锁(排他锁)。页级锁:页级锁是 MyS.
2021-03-26 09:21:34
1110
1
原创 MySQL索引的种类及特点
有四种索引,分别是:全文索引,HASH索引,BTREE,RTREE。全文索引 :全文索引目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。Hash 索引:Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以Hash索引的查询效率要远高于B-Tree索.
2021-03-26 09:18:44
535
1
原创 Git常用命令
Git 是一个开源的分布式版本管理系统。几个概念:1、Workspace: 也被称为工作空间。你在开发工具或者文件夹下看到的目录就是工作空间2、Index 也被称为暂存空间。用于保存你需要提交到 Repository 中的修改记录。3、Repository 也被称为本地仓库,用于记录文件修改的版本库。我们可以在多个版本之间切换已达到 还原到某个版本的内容。4、Remote 为远程仓库, 和 Repository 功能是一样的,只是 Remote 远程仓库时可以用户合并多个本地仓库的.
2020-11-03 16:05:11
156
原创 TCP为什么需要三次握手,两次握手不可以?
讨论这个问题的大部分博客都会引用《计算机网络》的内容:防止已失效的连接请求又传送到服务器端,因而产生错误不幸的是, 这种解释是不准确的, TCP 采用三次握手的原因其实非常简单, 远没有大部分博客所描述的那样云山雾绕。这里先给出结论: 为了实现可靠数据传输, TCP 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起始值的必经步骤。如果只是两次握手, 至多只有连接发起方的起始
2020-10-19 09:53:48
1507
原创 List泛型问题
只看尖括号里边的!!明确点和范围两个概念如果尖括号里的是一个类,那么尖括号里的就是一个点,比如List<A>,List<B>,List<Object>如果尖括号里面带有问号,那么代表一个范围,<? extends A> 代表小于等于A的范围,<? super A>代表大于等于A的范围,<?>代表全部范围尖括号里的所有点之间互相赋值都是错,除非是俩相同的点尖括号小范围赋值给大范围,对,大范围赋值给小范围,错。如果某点包含在某个范.
2020-08-22 14:33:14
264
原创 USE-A、HAS-A、IS-A
USE-A:依赖关系,A类会用到B类,这种关系具有偶然性,临时性。但B类的变化会影响A类。这种在代码中的体现为:A类方法中的参数包含了B类。关联关系:A类会用到B类,这是一种强依赖关系,是长期的并非偶然。在代码中的表现为:A类的成员变量中含有B类。HAS-A:聚合关系,拥有关系,是关联关系的一种特例,是整体和部分的关系。比如鸟群和鸟的关系是聚合关系,鸟群中每个部分都是鸟。IS-A:表示继承。父类与子类,这个就不解释了。要注意:还有一种关系:组合关系也是关联关系的一种特例,它体现一种contains-
2020-08-22 08:59:28
774
原创 B树和B+树
推荐两篇写的比较好的博客https://blog.youkuaiyun.com/chai471793/article/details/99563704https://www.cnblogs.com/zhangzhijian/p/11237178.html
2020-08-21 14:56:13
121
原创 基本类型及其封装类型的 == 和 equals()
1、基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较,因此Integer(0)会自动拆箱为int类型再进行比较,显然返回true; int a = 220; Integer b = 220; System.out.println(a==b);//true2、两个Integer类型进行“==”比较, 如果其值在-128至127 ,那么返回true,否则返回false, 这跟Integer.valueOf()的缓冲对象有关,这里不
2020-08-20 20:38:00
250
原创 DNS的寻址过程
1、在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客
2020-08-19 22:25:26
581
原创 Http请求种类
OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*'的请求来测试服务器的功能性。HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。GET:向特定的资源发出请求。POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。PUT:向指定资源位置上传其最新内容。D
2020-08-19 18:18:00
177
原创 http1.1和1.0的区别
主要区别主要体现在:缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。带宽优化及网络连接的使用,HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1
2020-08-19 18:13:39
239
原创 Java EE常用名词
web 容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接和容器中的环境变量接接口互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEBAPPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。Web container:实现J2EE体系结构中Web组件协议的容器。这个协议规定了一个Web组件运行时的环境,包括安全,一致性
2020-08-19 15:38:35
203
原创 Redis持久化
RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。Redis 还可以同时使用 AOF 持久化和 RDB 持久化。 在这种情况下, 当
2020-08-19 15:26:19
93
原创 AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)
a. 连接点(Joinpoint):程序执行的某个特定位置(如:某个方法调用前、调用后,方法抛出异常后)。一个类或一段程序代码拥有一些具有边界性质的特定点,这些代码中的特定点就是连接点。Spring仅支持方法的连接点。b. 切点(Pointcut):如果连接点相当于数据中的记录,那么切点相当于查询条件,一个切点可以匹配多个连接点。Spring AOP的规则解析引擎负责解析切点所设定的查询条件,找到对应的连接点。c. 增强(Advice):增强是织入到目标类连接点上的一段程序代码。Spring提供的增强接
2020-08-18 20:34:48
1945
原创 Java关键字
1)48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strict
2020-08-17 19:31:44
123
原创 floor、ceil、round
floor: 求小于参数的最大整数。返回double类型-----n. 地板,地面例如:Math.floor(-4.2) = -5.0ceil: 求大于参数的最小整数。返回double类型-----vt. 装天花板;例如:Math.ceil(5.6) = 6.0round: 对小数进行四舍五入后的结果。返回int类型例如:Math.round(-4.6) = -5...
2020-08-17 15:31:28
134
原创 加载驱动方法
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);DriverManager.registerDriver(new com.mysql.jdbc.Driver());System.setProperty(“jdbc.drivers”, “com.mysql.jdbc.Driver”);
2020-08-16 21:13:22
213
原创 数组复制方法效率
System.arraycopy():native方法+JVM手写函数,在JVM里预写好速度最快clone():native方法,但并未手写,需要JNI转换,速度其次Arrays.copyof():本质是调用1的方法,多了一个步骤,肯定就不是最快的。for():全是深复制,并且不是封装方法,最慢情有可原System.arraycopy>clone>Arrays.copyOf>for循环...
2020-08-16 20:39:41
160
原创 Web监听类
HttpSessionAttributeListener:可以实现此侦听器接口获取此web应用程序中会话属性列表更改的通知;HttpSessionBindingListener:当该对象从一个会话中被绑定或者解绑时通知该对象,这个对象由HttpSessionBindingEvent对象通知。这可能是servlet程序显式地从会话中解绑定属性的结果,可能是由于会话无效,也可能是由于会话超时;HttpSessionObjectListener:没有该接口API;HttpSessionListener:当w
2020-08-16 20:20:41
210
原创 bean生命周期
参考:https://blog.youkuaiyun.com/manchengpiaoxue/article/details/84982458https://blog.youkuaiyun.com/w_linux/article/details/80086950
2020-08-16 08:58:30
85
原创 try catch finally 执行顺序
try catch finally 执行顺序结论1、不管有没有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch
2020-08-16 07:54:40
204
原创 悲观锁与乐观锁
乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。一、悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java 中
2020-08-15 10:06:39
137
原创 JVM命令
1、jps:查看本机java进程信息。2、jstack:打印线程的栈信息,制作线程dump文件。3、jmap:打印内存映射,制作堆dump文件4、jstat:性能监控工具5、jhat:内存分析工具6、jconsole:简易的可视化控制台7、jvisualvm:功能强大的控制台...
2020-08-12 21:42:47
142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人