- 博客(97)
- 收藏
- 关注
原创 Linux学习-1
1 为:代表这个文件名为目录或文件,本例中为文件(-);234为:拥有者的权限,本例中为可读、可写、可执行(rwx);567为:同群组使用者权限,本例中为可读可执行(rx);890为:其他使用者权限,本例中为可读(r),就是只读之意同时注意到,rwx所在的位置是不会改变的,有该权限就会显示字符,没有该权限就变成减号(-)就是了。另外,目录与文件的权限意义并不相同,这是因为目录与文件所记录的数据内容不相同所致。由于目录与文件的权限意义非常的重要,所以鸟哥将他独立到5.2.3节中的目录与文件之。
2023-08-08 23:06:54 662
原创 MySQL主从复制
MySQL主从复制当我们的业务越来越来越庞大的时候,如果是单个MySQL服务器的情况下,负载过重的时候就容易造成服务宕机,这个时候我们该怎么解决呢?可以使用MySQL自带的主从复制(主服务器负责写,从服务器负责读),可以帮助我们实现负载均衡和读写分离。主从复制分为:主从同步:用户写入数据时当主服务器和从服务器同步了才告诉用户写入成功,等待时间较长主从异步:只要用户访问了主服务器,立刻返回成功主从半同步:用户写入数据时只要主服务器和其中一个从服务器同步就返回成功1.一主一从2.一主多从
2022-05-22 18:54:44 572
原创 LeetCode283.移动零
LeetCode283.移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]提示:1 <= nums.length <= 104-231 <= nums[i] <= 231 - 1进阶:你能尽量减少完成的操作次数吗?c
2022-05-19 21:53:00 115
转载 LeetCode26.删除有序数组中的重复项
LeetCode26.删除有序数组中的重复项给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1)
2022-05-18 16:35:50 201
原创 Leetcode367.有效的完全平方数
Leetcode367.有效的完全平方数给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:falseclass Solution { public boolean isPerfectSquare(int num) { //是用二分法 int left
2022-05-09 20:34:01 152
原创 Leetcode 69.x的平方根
Leetcode69.x的平方根给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。示例 1:输入:x = 4输出:2示例 2:输入:x = 8输出:2解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。class Solution { public int mySqrt(int x) { //定义左区间和右区间 int left=1;
2022-05-07 13:16:32 125
原创 leetcode34.在排序数组中查找元素的第一个和最后一个位置
leetcode34.在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入:nums = [], target
2022-05-06 23:07:07 137
原创 leetcode35.搜索插入位置
leetcode35.搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。1.复杂度为O(log n),使用二分法class Solution { public int searchInsert(int[] nums, int target) { // 定义一个left为0 int left=0; //定义一个rig
2022-05-06 13:00:25 234
原创 RabbitMQ入门
RabbitMQ入门1.什么是消息队列?消息队列是在消息的传送过程中保存消息的容器。在消息队列中,通常有生产者,消费者模型,生产者不断的向消息队列中发送消息,消费者不断的从队列中获取消息,由于消息的生产和接收都是异步的,实现了生产者和消费者之间的解耦2.为什么使用消息队列?解耦:在我们开发的过程中,我们有的时候可能会遇到和其他系统进行数据的交互,我们一般情况下会调用对方系统的接口将数据传输过去,这样看着是没啥问题的,可是耦合性比较高,假如某天我们不需要传数据了或者需要多加一个系统,这个时候我们就
2022-03-17 12:00:19 2041
原创 Nginx
Nginx入门1.什么是NginxNginx是一个高性能的Http和反向代理的Web服务器2.Nginx能做什么要想了解一个东西,我们必须能了解它的作用,它是做什么的反向代理:正常来说流程是客户端请求服务器,服务器响应客户端,使用反向代理后,则是客户端请求反向代理服务器,反向代理服务器将请求转发到真正的服务器,然后将结果返回。反向代理隐藏了真实的服务器,客户端看不到真实的服务器,只能看到代理服务器正向代理:相信大家应该都用过VPN吧,VPN其实就是正向代理的体现,和反向代理相似,也是客户
2022-02-20 18:37:38 2918
原创 JAVA多线程
JAVA多线程什么是线程谈起线程,我们必须得先来聊聊进程,其实在我们在使用电脑工作的时候,无时无刻都接触着进程,只是可能大家不了解而且,用通俗的话来讲,每个程序都是一个进程,我们常用的杀毒软件就是一个进程,当我们使用杀毒软件的时候,里面有很多功能,比如病毒查杀,垃圾清理,雷达扫描等,这些就是我们所谓的线程。进程和线程的区别进程单独占有一定的内存空间,所以进程间存在内存隔离,数据存放在不同的内存地址下,数据共享复杂但是同步简单。线程共享所属进程的内存空间和资源,数据共享简单但是同步复杂。进程之间
2022-01-23 10:14:20 406
原创 了解JAVA反射
了解JAVA反射1.什么是反射谈到反射,大家可能想到的是有反射是不是就有正射呢?是的,正如有阴有阳,那我们首先来了解了解什么是正射,当我们想调用一个类中的某个普通方法时,那我们首先想到的是啥?我觉得大部分人都应该能想到,new 一个对象出来,然后调用方法,这就是JAVA中所谓的正射,代码如下public class Student { public void show(){ System.out.println("show show "); }}public c
2021-12-18 19:53:01 565
原创 Java注解(Annotion)
Java注解(Annotion)定义一个注解package org.zj;public @interface TestAnnotation {}你会发现,这个注解怎么和接口一样,实际上,注解就是一个继承Annotation的接口,我们可以反编译上边的代码看一下注解的本质public interface org.zj.TestAnnotation extends java.lang.annotation.Annotation {}如何使用注解package org.zj;@Test
2021-12-04 20:38:08 518
原创 MySQL索引机制
MySQL索引机制1.什么是索引?要学习索引机制前,我们必须明白什么是索引,举个生活中的例子,当我们去逛商场的时候,我们想要买男装,假设男装在最顶层,如果我们一层层的去找,那效率是很低的,这个时候,我们应该找到商场的标牌,就知道了男装所处的位置,很明显,这样效率是很高的。索引在数据库中的作用就相当于商场中的标牌。2.索引的优点和缺点优点:使用索引可以提高数据的检索速度(减少检索数据量)。通过唯一性索引,可以保证每一行数据的唯一性缺点:创建索引和维护索引需要耗费很多的时间,当我们对表中的
2021-08-15 23:19:42 770
原创 设计模式--------建造者设计模式
设计模式--------建造者设计模式1.什么是建造者模式?在开发中将一个复杂的对象的构建和它的表示分离,使得一个同样的构建过程可以创建不同的表示在日常生活中当我们日常生活中需要盖房子的时候,一班分为好几个步骤,打地基,砌墙,粉刷,装修等等一系列步骤,没钱的话我们可以自己干这些全部步骤,如果有钱我们可以雇佣工人来帮我们做这些事情,如果更有钱我们可以请设计师,设计师指挥工人得到我们需要的房子,如果工人是盖平房的,我们可以得到一座平房,如果工人是盖别墅的,我们可以得到别墅,我们可以根据我们想要的房
2021-07-31 09:58:12 127
原创 SpringBoot处理全局异常
SpringBoot处理全局异常1.为什么需要处理全局异常在我们的项目开发过程中,程序避免不了会发生运行时异常,或者自定义的业务异常,我们肯定不能将这些异常信息返回,这样会影响用户的体验,而且后台的日志可读性也会变差可以带来更好的用户体验可以帮助开发人员迅速定位,处理异常提高日志的可读性2.如何在开发中使用全局处理异常首先,我们得自定义一个枚举//自定义枚举的接口public interface BaseEnum { String getCode(); String g
2021-07-02 13:09:26 234
原创 SpringBoot整合JWT
SpringBoot整合JWT1.JWTJWT(JSON Web Token),为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。将用户信息加密到token中,服务器不保存任何用户信息,服务器通过保存的密钥验证token的正确性。2.JWT登录执行流程图3.为什么使用JWT?在传统的用户登录认证中,因为http是无状态的,所以都是采用session+cokokie,用户登录成功,服务端会保存一个session,并给客户端一个sessionId,客户端会把sessionId保存在c
2021-06-26 23:46:16 1089 10
原创 Shiro
Shiro1.Shiro的作用Apache Shiro™是一个功能强大且易于使用的Java安全框架,它执行身份验证,授权,加密和会话管理。使用Shiro易于理解的API,您可以快速轻松地保护任何应用程序-从最小的移动应用程序到最大的Web和企业应用程序。2.Shiro的体系结构我们的应用代码直接交互的是Subject,所以说Shiro的对外核心是Subject(主体)Subject主体,基本上表示为当前正在执行的用户,它只是不被称为“用户”,因为“用户”一词通常与人类相关联。与当前
2021-05-25 18:58:53 710
原创 多线程模拟银行摇号
多线程模拟银行摇号1.自定义线程实现Runnable接口package org.best.thread;public class MyThread implements Runnable{ //号码数量 private int num; public MyThread(int num) { this.num=num; } @Override public void run() { //防止摇到相同号码
2021-05-24 21:49:08 134
原创 工厂模式
工厂模式1.简单工厂模式1.1 首先创建一个接口package org.best.factory.simpleFactory;public interface Car { void run();}1.2 创建实现类package org.best.factory.simpleFactory;//实现类1public class BenChi implements Car { @Override public void run() { System
2021-03-06 13:00:22 170
原创 Shiro整合SpringBoot以及Thymeleaf
Shiro整合SpringBoot以及Thymeleaf1.ShiroConfigpackage org.best.config;import org.apache.shiro.spring.web.ShiroFilterFactoryBean;import org.apache.shiro.web.mgt.DefaultWebSecurityManager;import org.springframework.beans.factory.annotation.Qualifier;import
2021-03-03 20:29:55 161 1
原创 单例模式
单例模式1.饿汉式package org.best.singleton;/** * 饿汉式(一进来就创建对象) */public class HungerSingleton { private HungerSingleton(){} private static HungerSingleton hungerSingleton=new HungerSingleton(); public static HungerSingleton getHungerSingleto
2021-03-02 21:01:06 89
原创 设计模式六大原则
设计模式六大原则1.开闭原则 :对扩展开放,对修改关闭 个人理解:开发的时候尽量对功能进行扩展,而不改变原有的代码 2.单一职责原则:控制类的粒度大小,将对象解耦,提高其内聚性。 个人理解:一个类只负责一个功能领域中的相应职责,是实现高内聚,低耦合的指导方针。 3.里氏替换原则:继承必须确保超类所拥有的性质在子类中仍然成立 个人理解:子类继承父类时,尽量不要改变父类的方法 4.迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用。
2021-03-02 21:00:22 111
原创 SpringBoot集成Swagger
SpringBoot集成Swagger1.导入pom坐标 <!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version>
2021-02-28 22:00:59 126
原创 手把手教你整合SSM(spring+springmvc+mybatis)
手把手教你整合SSM(spring+springmvc+mybatis) pom.xml中 <!--单元测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test<
2021-02-07 21:36:07 126
原创 关于路径前面加与不加的区别
关于路径前面加"/“与不加”/"的区别当前jsp页面路径 http://localhost:8080/springmvc_02_war/index.jsp当前路径:http://localhost:8080/springmvc_02_war/根目录:http://localhost:8080不加”/”代表 相对路径,是从当前路径开始找<a href="user.hello">请求后台1</a> http://localhost:8080/springmvc_02
2021-02-07 12:56:38 212
原创 DispatcherServlet中url 配置 和 .地址的区别
DispatcherServlet中url 配置 / 和 *.地址的区别1. <servlet> <servlet-name>servlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> &
2021-02-06 21:42:36 285
原创 org.xml.sax.SAXParseException(.....)解决方法
org.xml.sax.SAXParseException(…)解决方法 <typeAliases> <package name="org.best.bean"/> </typeAliases> 必须要放到配置的最上方
2021-02-01 18:01:48 1682
原创 Spring中使用事务出现java.lang.ClassCastException com.sun.proxy.$Proxy19 cannot be cast to ...错误
Spring中使用事务出现java.lang.ClassCastException: com.sun.proxy.$Proxy19 cannot be cast to …错误 <!--开启事务注解驱动,并配置事务--> <tx:annotation-driven transaction-manager="事务管理器id" proxy-target-class="true"/> proxy-target-class="true" 添加即可...
2021-02-01 18:00:09 522 1
原创 SpringBoot中后台反JSON数据到前台出现问题
SpringBoot中后台反JSON数据到前台出现???问题1.@RequestMapping(value="test",produces="application/json;charset=UTF-8") ,在Controller中加produces="application/json;charset=UTF-8",网上好多人都说这样可以用,可是我试了却不可以,也不知道啥情况2.自定义配置类并继承WebMvcConfigurationSupport类,由于我之前写的是实现WebMvcConfigu
2021-01-16 14:05:54 392
原创 SpringBoot(1)
SpringBoot(1)1.使用SpringBoot执行异步任务//业务层@Servicepublic class MyService { @Async //该注解加在方法上此方法会异步执行,加在类上该类的所有方法都会异步执行 public void sleep() throws InterruptedException { Thread.sleep(5000); System.out.println("service睡眠完成"); }}
2020-12-24 15:02:12 101
原创 SpringMVC
SpringMVC1.什么是SpringMVC?1.SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功 能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的 Spring MVC 框架或集成其他 MVC 开发框架
2020-12-14 20:52:47 95
原创 Spring的事务管理
Spring的事务管理1.事务的概念及特性1. 事务:指的是逻辑上一组操作,组成这个事务的各个执行单元,要么一起成功,要么一起失败!2. 事务的特性 原子性:组成这个事务的各个执行单元 不可再分割 一致性: 隔离性: 持久性2.Spring事务管理的相关的类和API1. PlatformTransactionManager接口 -- 平台事务管理器.(真正管理事务的类)。该接口有具体的实现类,根据不同的持久层框架,需要选择不同的实现类!2. TransactionDefiniti
2020-11-23 13:24:51 91
原创 Spring核心功能AOP
Spring核心功能AOP1.什么是AOP?1.在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程2.AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构3.AOP最早由AOP联盟的组织提出的,制定了一套规范.Spring将AOP思想引入到框架中,必须遵守AOP联盟的规范4.通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术5.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的
2020-11-21 14:20:06 164
原创 Spring引入注解
Spring引入注解1.注解基础配置 1.创建项目,导入jar包 普通项目中 引入IOC容器必须的6个jar包 com.springsource.org.apache.commons.logging-1.1.1.jar com.springsource.org.apache.log4j-1.2.15.jar spring-beans-5.0.2.RELEASE.jar spring-context-5.0.2.RELEASE.jar spring-core-5.0.2
2020-11-19 16:05:31 559
原创 初识 Spring
初识 Spring1.什么是Spring?1.轻量级的开源框架目的: 1.解决企业应用开发的复杂性作用: 1.使用基本的JavaBean来完成以前只可能由EJB完成的事范围 1.Spring的用途不仅局限于服务器端的开发,从简单性,可测试性,松耦合的角度而言,任何Java应用都可以。重点 1.Spring的核心是IOC(控制反转)以及AOP(面向切面)2.Spring的特点1.方便解耦,简化开发(将所有的对象创建和依赖关系维护交给Spring管理)2.AOP编程的支持(S
2020-11-19 11:52:56 117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人