自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 CentOS配置Java环境报错-bash: /usr/local/jdk1.8.0_381/bin/java: 无法执行二进制文件

因此需要首先搞清楚是x86_64架构还是arm64架构还是其他的什么架构。原因是所使用的jdk的版本和Linux内核架构匹配不上。可以看到是x86_64架构。arm64架构下的。下载对应的JDK版本。

2023-09-02 19:59:30 2332

原创 希尔排序图文详解+代码实现

希尔排序也是一种插入排序,它是直接插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。性质:1、时间复杂度:O(nlogn) 2、空间复杂度:O(1)下面先介绍一下直接插入排序,理解了直接插入排序,希尔排序就很好理解了,实现代码也是由直接插入排序的代码改进得到。1、直接插入排序1.1、算法步骤首先将第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(每次插入后有序序列长度+1,未排序序列长度-1)1.

2022-05-22 20:04:27 2612

原创 SpringCloud之CORS (跨域问题)

1.什么是跨域问题跨域:域名不一致就是跨域,主要包括:域名不同: www.taobao.com 和 www.taobao.org 和 www.jd.com 和 miaosha.jd.com域名相同,端口不同:localhost:8080和localhost8081AJAX请求有一个限制,就是只能同源使用,而CORS提供了这个限制的解决方案。CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XML

2022-05-13 20:03:40 844

原创 SpringCloud之Gateway服务网关

1.Spring Cloud Gateway介绍Gateway网关是我们服务的看门大爷,所有微服务的统一入口。Spring Cloud Gateway旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式网关的可以实现请求路由、权限控制、限流的功能图片来自黑马程序员在SpringCloud中网关的实现包括两种:gateway、zuulZuul是基于Servlet的实现,属于阻塞式编程。而SpringCloudGateway则是基于Spring5中提供的WebFlux,属于响应式编程

2022-05-13 19:42:58 1649

原创 SpringCloud之Feign的使用

Feign是一个声明式的http客户端,其作用就是帮助我们优雅的实现http请求的发送,解决硬编码的代码可读性差、参数复杂URL难以维护的问题。使用步骤Fegin的使用步骤非常简单1) pom文件当中引入feign的依赖2) 在启动类添加注解@EnableFeignClients开启Feign的功能3) 编写Feign的客户端@FeignClient("userservice")public interface UserClient { @GetMapping("/user/{i

2022-05-13 18:37:48 3102

原创 SpringCloud之Ribbon负载均衡

负载均衡基本原理SpringCloud底层其实是利用了Ribbon组件,来实现负载均衡功能的。具体工作流程如下图所示:其实可以注意到feign当中也有ribbon依赖各种不同的负载均衡策略负载均衡的操作定义在IRule接口中,而IRule有很多不同的实现类,代表了不同的负载均衡策略实现,用IDEA可以画出他们的类关系图不同规则的含义如下:内置负载均衡规则类规则描述RoundRobinRule简单轮询服务列表来选择服务器。它是Ribbon默认的负载均衡规则。A

2022-05-13 17:48:58 198

转载 Redis面试题二十一问

Redis常见的面试题,搬运整理自JavaGuide和CSNote,在原文的基础上 精简了很多,又添加了一些自己的理解

2022-05-11 16:01:09 183

原创 nginx的安装和基本使用

1.在CentOS中安装nginx首先安装依赖包yum -y install gcc pcre-devel zlib-devel openssl openssl-devel然后去nginx的官网http://nginx.org/en/download.html下载对应版本的压缩包,也可以复制下载链接然后使用wget安装wget http://nginx.org/download/nginx-1.16.1.tar.gz然后会发现当前目录下多了一个压缩包然后解压tar -zxvf nginx

2022-05-08 20:26:06 796

原创 mysql主从复制的配置方法和原理简介

MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具

2022-05-08 14:32:41 944

原创 CentOS安装mysql(使用tar.gz包)及配置远程连接mysql

版本:CentOS7、MySQL5.7可以去官网下载MySQL,也可以从我这里下载:链接:https://pan.baidu.com/s/1itKCOSjMoSIOkuCs302-2w提取码:66661.解压在/usr/local/下新建目录dev,mkdir dev,将下载好的压缩包上传到该目录,然后解压tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz 解压完成后目录下会多出6个rpm文件2.安装首先查看CentOS是否预装了

2022-05-06 17:14:57 465 1

原创 Executors线程池

目的就是为了减少线程创建带来的开销,使得线程可用重复利用原理:将N个线程对象创建好后存在一个容器中。 将每个线程 wait ,需要使用线程的时候, 可用通过notify来唤醒其中一个线程执行任务,执行任务后继续保持wait使用示例:public class Demo16 { public static void main(String[] args) { Runnable runnable=new Runnable() { @Override

2022-05-05 17:05:16 260

原创 Timer和TimerTask: Java中定时任务的使用

java当中提供了Timer和TimerTask为我们提供定时任务。

2022-05-05 16:48:30 362

原创 使用并理解ReentrantLock

ReentrantLock是可重入的互斥锁,虽然与synchronized相似,但是会比synchronized更加灵活(具有更多的方法),ReentrantLock底层基于AbstractQueuedSynchronizer(AQS) 实现。在ReentrantLock中默认的策略是非公平锁

2022-05-05 15:43:06 236

原创 java多线程—volatile

volatile和 synchronized 的区别:volatile 提升变量对线程的可见性 ,而非原子性synchronized同步方法和同步代码块是原子性的volatile是轻量级,只能修饰变量。synchronized是重量级,作用于一段代码或者方法可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果。另一个线程马上就能看到。1.可见性验证运行以下代码,public class Demo11 { static boolean fla

2022-04-29 18:34:47 846

原创 Java多线程—守护线程

运行在程序后台的一个特殊的线程当程序只剩下守护线程的时候,守护线程会自动退出守护线程不能持有任何需要关闭的资源,例如打开文件等,因为虚拟机退出时,守护线程没有任何机会来关闭文件,这会导致数据丢失。如以下代码所示/** * 守护线程 */public class Demo5 { public static void main(String[] args) { System.out.println("主线程开始"); //守护线程 Thr.

2022-04-29 17:25:57 2291

原创 java多线程——理解死锁的概念

死锁是一种特定的程序状态。由于循环依赖导致彼此一直处于等待之中,没有任何线程可以继续前进。死锁大多是指两个或多个线程之间,由于互相持有对方需要的锁,而永久处于阻塞的状态。

2022-04-29 17:18:02 710

原创 SpringBoot开发的外卖订餐App

黑马程序员java项目 : 瑞吉外卖基于SpringBoot、MybatisPlus、MariaDB、Redis、vue实现完成了教学中的全部内容,并自己实现了教学中没有提到的业务,所有业务功能基本都实现了。另外,短信验证码登录这一块改用了redis实现,同时在前端增加了一些功能,比如在订单查询页面增加了图片显示、后台订单管理显示详情

2022-04-27 20:20:16 2323

原创 解决后端Long型数据传到前端js后精度丢失的问题

假设一个场景,MybatisPlus的雪花算法生成long类型主键ID,存入数据库,前端获取到数据后,要执行一个更新操作(updateById),但这时会出现无法成功更新的情况!这是因为前端在长度大于17位时会出现精度丢失的问题。前端查询请求到的数据数据库当中的ID:js当中number类型的安全整数是53位,如果超过53位,则精度会丢失。如果后台传来一个64位的Long型整数,因为超过了53位,所以后台返回的值和前台获取的值会不一样。上面的例子可以看到,17位以后的数字变成了0,第17位四舍五入

2022-04-27 17:46:32 2426 1

原创 java-流式API:Stream API

Java8引入了一个全新的流式API:Stream API,它位于java.util.stream包中。这个Stream不同于java.io的InputStream和OutputStream,它代表的是任意Java对象的序列。

2022-04-14 20:29:47 1369

原创 java-函数式编程

函数式编程—Functional Programming是一种抽象程度很高的编程范式,是把函数作为基本运算单元,函数可以作为变量,可以接收函数,还可以返回函数。历史上研究函数式编程的理论是Lambda演算,所以我们经常把支持函数式编程的编码风格称为Lambda表达式。

2022-04-14 16:21:44 410

原创 解决SpringBoot项目打包时报错

Springboot打包时报错Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.1.3.RELEASE

2022-03-08 10:05:21 1764 1

原创 CentOS配置JDK、tomcat、MariaDB,并部署JAVA项目

Linux版本:centos7环境:jdk8、tomcat8、MariaDB一、安装jdk从官网下载jdk8,Java Downloads | Oracle通过finalshell或者其他SSH连接工具将.gz文件上传到centOS中,cd进入上传的目录,然后解压到/usr/local/目录下tar -zxvf jdk-8u301-linux-x64.tar.gz -C /usr/local/修改profile文件vi /etc/profile在末尾添加如下内容export JAVA_

2021-10-22 19:34:07 187

原创 解决报错:错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099

昨天正常运行的Spring项目,今天一早再次运行时发生报错:错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use: JVM_Bindsun.management.AgentConfigurationError: java.rmi.server.ExportException

2021-09-13 09:13:15 5530 2

原创 Spring入门(使用maven创建)

1、打开idea,新建项目,点击maven,选择maven-archetype-quickstart。2、输入项目名称和路径,以及Groupid3、选择maven路径、配置文件、以及maven仓库后,点击finish4、打开pom.xml文件,由于使用的是Java8,所以将此处修改为1.8。也可以在maven中做一个一劳永逸的配置。plugins标签中的内容可以全部删掉5、展开项目,右键点击src点击main\resources,回车确认然后再次右键点击src,New->D

2021-07-30 11:33:38 1298

原创 Java中关于try..catch..finally的一个小问题

有如下代码;package com.cao.day05;public class Test { int i=0; public int show(){ try{ System.out.println(1/0); System.out.println("......"); return ++i; }catch (ArithmeticException arithmeticExcepti

2021-07-20 16:39:16 70

原创 docker pull报错

执行docker pull时报错error pulling image configuration: …x509: certificate has expired or is not yet valid解决办法:1、date -R2、cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime3、yum install ntpdate -y4、ntpdate -u ntp.api.bz5、date -R6、docker pull hello-w

2021-04-01 15:31:34 265

原创 CSS笔记

什么是cssCSS 指层叠样式表 (Cascading Style Sheets)样式定义如何显示 HTML 元素样式通常存储在样式表中把样式添加到 HTML,是为了解决内容与表现分离的问题多个样式定义可层叠为一个css的语法CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明:p { /*设置字体颜色为红色*/ color:red; text-align:center;}css的创建方式css样式表的创建方法有三种:内联样式(Inline st

2021-03-21 22:18:39 113

原创 HTML笔记

什么是HTMLHTML:Hyper Text Markup Language(超文本标记语言)超文本包括:文字、图片、音频、视频、动画等标签在网页中的作用,通常用于标题或主题,体现标签语义化。标题标签<h1>一级标题</h1><h2>二级标题</h2><h3>三级标题</h3><h4>四级标题</h4><h5>五级标题</h5><h6>六级标题</h6

2021-03-21 15:22:32 160

转载 Java——反射

以下内容来自https://www.liaoxuefeng.com/wiki/1252599548343744/1264799402020448除了int等基本类型外,Java的其他类型全部都是class(包括interface)。例如:StringObjectInteger仔细思考,我们可以得出结论:class(包括interface)的本质是数据类型.而class是由JVM在执行过程中动态加载的。JVM在第一次读取到一种class类型时,将其加载进内存。每加载一种class,JVM就

2021-03-11 21:05:02 68

原创 Java——多线程

线程基础:Windows,macOS,Linux等都可以执行多任务。多任务就是同时运行多个任务。CPU执行代码都是一条一条顺序执行的,但是,即使是单核cpu,也可以同时运行多个任务。因为操作系统执行多任务实际上就是让CPU对多个任务轮流交替执行。例如,假设我们有语文、数学、英语3门作业要做,每个作业需要30分钟。我们把这3门作业看成是3个任务,可以做1分钟语文作业,再做1分钟数学作业,再做1分钟英语作业。这样轮流做下去,看上去就像同时在做3门作业一样。在计算机中,我们把一个任务称为一个进程,QQ、

2021-03-05 21:25:26 187

原创 JDBC入门

一、添加jar包在安装Oracle的虚拟机中找到ojdbc.jar文件,复制到本机的某一路径中(路径不能有中文)新建工程,之后file->Project Structure,找到刚才复制的ojdbc.jar,点击OK可以看到项目列表里有了ojdbc.jar二、编写代码,查询数据package com.cao.demo;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Result

2021-03-01 18:44:52 124 1

原创 JAVA—日期类Date和日历类Calender

Date类:获取当前时间:public class Test2 { public static void main(String[] args) throws Exception { Date date = new Date(); System.out.println(date.toString()); //返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 System.out.p

2021-02-28 21:09:16 165 1

原创 Java——概念整理

1. JDK JRE JVM(三大任务)JDK( Java Development Kit) : java 开发工具包JVM 虚拟机的三大任务: 1、加载代码(.class)、 2 校验代码(头信息、版本)、 3 执行代码2. Java常用命令:java javacjavac : 将源程序编译成可执行程序java:运行.class可执行程序执行过程:# 编译文件C:\Users\jack\Desktop\XZ_264_JAVA_01\code\01>javac -encoding ut

2021-02-28 21:02:23 646 2

原创 Java——集合

集合用于在类中对数据进行组织。集合是一种容器对象,用于按照一定的规则在其中保存一组对象。Java的集合框架,抽其核心,主要有三种:List、Set 和 Map

2021-02-25 18:28:42 132

原创 Java——JavaBean

随着业务的复杂度的增加,属性会越来越多,业务(方法)越来越多, 代码会比较多不利于维护解决的方法:【将数据和业务分开】,也就是说通过javabean来保存数据,而JavaBean不涉及业务. 由专门的业务类来进行业务的维护JavaBean的特征,什么是JavaBean所有的属性私有化必须有无参的构造函数必须有公共的set/get方法实现 Serializable 接口不能有业务Person类:package com.cao.demo.lesson00;public ..

2021-02-25 12:13:46 65

原创 Java—流

Java 语言采用流的机制来实现输入/输出。所谓流,就是数据的有序排列。而流可以是从某个源(称为流源,Source of Stream)出来,到某个目的地(称为流汇 ,Sink of Stream)去的。流的分类:流向分:输入流、输出流流源分:字符流、字节流功能分:节点流、处理流InputStream 和 OutoutStream 的等级结构Reader 和 Writer 的等级结构1、对象流ObjectInputStream 和 ObjectOutputStream案.

2021-02-24 14:53:11 97

原创 遍历某一路径及其子路径下的所有文件(递归和非递归两种方法)+递归复制文件或文件夹(包括其内的所有文件)

和寒假作业1思路一致,直接后序遍历文件树并判断其中的File对象是否是文件类型,可看作遍历文件树的叶子节点。但由于使用了递归,效率较低。如果换一种方法,使用树的层次遍历(非递归,使用队列),将使效率有一定提高。方法一:递归方法:AllFiles类:package com.cao.demo.allFiles;import java.io.File;/** * 作者:曹浩东 * 使用递归遍历某一路径下的所有文件 */public class AllFiles { privat.

2021-02-04 17:49:48 401

原创 递归删除文件夹及其内的所有文件(模拟rm -fr的功能)

新建一个测试目录,在其内分别新建测试文件和测试目录。文件树如下所示:编写代码:

2021-02-03 18:24:26 499 1

原创 Java—文件操作

文件字节流, 可以读取字符文件和字节文件FileInputStream: 输入流FileOutputStream: 输出流实现文件拷贝功能:package com.cao.demo.lesson00;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class Tes

2021-02-02 16:30:40 175

原创 Java—自动拆箱和自动装箱

包装类: 每个基本数据类型都对应着一个引用数据类型Java中的基本数据类型没有方法和属性,而包装类就是为了让这些拥有方法和属性,实现对象化交互。基本数据类型和包装类的区别: 基本数据类型用于计算,包装类提供了方法public class Test4 { public static void main(String[] args) { Integer a=new Integer(10); // 需要将一个字符串转成 整型进行计算 Intege

2021-02-02 11:56:46 164 1

空空如也

空空如也

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

TA关注的人

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