自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大魚的个人博客,如有不足,欢迎指正。

博客主要用于个人学习,以及工作中的总结记录。不存在任何商业行为,如内容存在版权问题,请私信我。

  • 博客(88)
  • 资源 (1)
  • 收藏
  • 关注

原创 Ubuntu添加PPA(Personal Package Archive)源时遇见N: 无法安全地用该源进行更新,所以默认禁用该源解决方法

这个错误是因为你的系统无法确认你添加的 PPA 的安全性。默认情况下,系统会禁用尚未经过验证的源。要解决这个问题,通常有两种方法。一种方法是找一个已经被 Ubuntu 系统认可的 PPA。这是最安全的方法,但并不是所有的 PPA 都有被认可的版本。另一种方法是强制系统接受这个未经过验证的 PPA。你可以通过编辑 /etc/apt/sources.list 文件(或者在 /etc/apt/sources.list.d/ 目录下找到对应的 PPA 文件),将其中的 deb 或 deb-src 换成 deb

2023-12-27 19:30:31 1370

原创 为什么我在Linux部署的Springboot服务,部署成功之后,使用netstat -ntlp | grep java 命令查看对应服务监听的端口,只看到有tcp6的监听,没有tcp的监听?

换句话说,当没有显式配置 server.address 时,服务器将监听所有 IPv4(0.0.0.0)和 IPv6(::)地址。,那么它将同时监听 IPv4(0.0.0.0)和 IPv6(::)的所有地址。如果你仍然希望只绑定到 IPv4 地址,你可以通过设置 Java 系统属性来禁用 IPv6。如果你也遇到这种情况,意味着,你使用Springboot默认的方式启动服务之后,可能存在通过ipv4不能访问的情况。这取决于你的 Linux 发行版及其配置,通常,IPv4 是默认启用的。使用第一个方法(设置。

2023-06-27 11:26:17 2750

原创 vue-echarts:动态赋值series,更新options

##[转载] 有用!!在Vue中直接使用ref引用vue-echerts的组件,使用dom的setOption()方法更新series数据,解决数据更新显示不了的坑!!##这个是为了记录下解决的bug,问题场景:初次请求数据:国家参数为 5 个,这个时候,筛选国家列表数据,解析:出现这样的问题原本的猜测是 颜色设置有问题,考虑的解决方案是:1. 在动态赋值 series 时,给每个对象添加 color 属性;2. 清空 line-option解决:最终的解决是,利用echarts 的 setOp

2022-06-03 18:33:53 4953

原创 使用Files中返回值为Stream<T>方法的坑

使用Files.find()等方法的坑在使用Files.find()、Files.lines()、Files.list()等方法时,他们返回的都是Stream<T>的类型。这是我们往往为了方便,会直接对流进行业务处理,然后就返回了。例如:public static <T> List<T> localToListPagination(String p, TypeReference<T> tClass, long page){ try {

2022-05-20 14:06:41 401

原创 关于yml配置文件中,配置键名不能为大写

前景在项目中需要加入自定义的表结构配置,所以想到了使用yml加载然后写了以下yml配置代码tableStruct: device: gaid: STRING system_version: STRING operator_name: STRING device_brand: STRING device_model: STRING memory_size: STRING space_size: STRING remain_memory

2022-03-02 11:57:57 1786

原创 Centos8安装时设置安装源

软件-安装源地址https://ftp.sjtu.edu.cn/centos/8-stream/BaseOS/x86_64/os/https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/https://mirrors.ustc.edu.cn/centos/8-stream/BaseOS/x86_64/os/https://mirrors.njupt.edu.cn/centos/8-stream/BaseOS/x86_64/os/ht

2022-02-27 16:33:44 1504

原创 VMware 配置虚拟机固定IP指南

VMware 配置虚拟机固定IP指南总结前人经验,梳理以下方法方便快速搭建固定IP的虚拟机集群。开发中往往需要本地配置多台虚拟机,形成集群来部署或者测试我们的服务。有多种虚拟机技术实现该方案,比如Docker,VMware,WSL等。而其中最老牌,目前看来又最稳定的方案就是使用VMware的方案。要在VMware上安装多台虚拟机并不难,也不是本文的主要内容。安装多台虚拟机之后,想要形成集群,首先需要每台虚拟机能够相互访问。要实现这个功能,就需要用到VMware提供的VMnet8虚拟网卡。简单来说:通

2022-02-27 16:15:06 12944 9

原创 方便快捷配置Linux免密登录

方便快捷配置Linux免密登录一、概念介绍客户端:用户自己的机器服务端:我们需要登录的机器二、操作步骤1. 生成公钥私钥客户端通过ssh-keygen生成公钥私钥。这个命令Windows、Linux、MacOS都有,没有的话可以通过安装OpenSSH解决。执行这个命令之后,一路回车就行。(如果需要进行二次加密验证,或者设置加密长度等,可以根据提示内容进行操作,一般默认就行)生成成功之后,公钥私钥保存在用户文件夹下的.ssh目录Windows:C:\Users\10443\.sshLin

2022-02-26 12:12:35 759

原创 Java读写文件资源、加载项目resource等API总结

Java读写文件资源、加载项目resource等API总结文章目录Java读写文件资源、加载项目resource等API总结一、获取项目的resource资源二、文件读写API的使用1. Java操作文件主要几个类的区别2. Path使用创建方式3. Files使用创建文件读写文件复制文件移动文件删除文件获取文件信息访问目录各项目录流4. 项目中的使用一、获取项目的resource资源resource文件夹的资源属于类加载路径下的资源,项目编译之后,一般会保存在项目根路径/target/classes

2022-02-24 18:05:52 1420

原创 动态代理的实现与AOP中的动态代理

一、JKD实现的动态代理Proxy类Proxy提供了用于创建动态代理和代理对象的静态方法,它也是所有动态代理类的父类。如果在程序中为一个或多个接口动态地生成实现类,就可以使用Proxy来创建动态代理类;如果需要为一个或多个接口动态地创建实例,也可以使用Proxy来创建动态代理实例。重要方法Proxy提供了如下两个方法来创建动态代理类和动态代理实例:static Class<?> getProxyClass(ClassLoader loader, Class<?>...in

2022-02-16 20:48:55 331

转载 IP和java.net.InenAddress类的使用

IP和java.net.InenAddress类的使用文章目录IP和java.net.InenAddress类的使用一、IP1. 地址格式2. 地址分类二、InetAddress1.1 简介1.2 InetAddress对象的获取1.3 getHostName()方法1.4 getCanonicalHostName()方法1.5 getHostAddress()方法1.6 getAddress()方法一、IP1. 地址格式互联网上每一台计算机都有一个唯一标示自己的标记,这个标记就是IP地址。IP 地

2022-02-16 14:26:18 157

原创 @RequestBody使用中的一些细节

@RequestBody使用中的一些细节@RequestBody主要是用来接受前端传递给后端的json字符串中的数据(请求体中的数据);而且最常用的请求体传参无疑是POST请求,所以使用@RequestBody接受数据时,一般都用POST方式进行提交。在后端的同一个接受方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,@RequestParam()可以有多个。后端@RequestBody注解对应的类将在HTTP的输入流(含请求体

2022-02-15 20:02:38 995

原创 【计算广告】相关知识学习总结

文章目录一、计算机广告相关的基础1. DSP能够解决的问题概念传统方式带来的问题DSP的作用DSP的技术实现(两个最重要的)程序化广告链中,DSP处在哪一环?参考文献二、在线广告综述大数据与广告的关系广告的定义与目的在线广告创意类型泛广告商业产品三、计算机广告基础广告有效性原理互联网广告的技术特点计算广告的核心问题广告收入的分解结算方式与eCPM估计的关系一、计算机广告相关的基础1. DSP能够解决的问题概念广告主:需要投放广告,购买广告位的人或企业机构。媒体:提供广告位的媒体平台;传统方式

2022-02-15 19:55:47 971

转载 Java泛型类型擦除以及类型擦除带来的问题-总结

Java泛型类型擦除以及类型擦除带来的问题-总结参考:[原文](Java泛型类型擦除以及类型擦除带来的问题 - 蜗牛大师 - 博客园 (cnblogs.com))文章目录Java泛型类型擦除以及类型擦除带来的问题-总结一、Java泛型的实现方法:类型擦除1. 原始类型相等2. 通过反射添加其它类型元素二、类型擦除后保留的原始类型1. 原始类型Object2. Object泛型三、类型擦除引起的问题及解决方法1. 先检查再编译以及编译的对象和引用传递问题2. 自动类型转换3. 类型擦除与多态的冲突和解决办

2022-02-15 16:58:01 103

原创 左神算法课笔记

第一节 认识复杂度、对数器、二分法与异或运算1. 认识复杂度2. 对数器对数器的实现方法:JAVA随机整数生成:3. 二分法复杂度为logn。认识二分:二分法中,为了安全,mid的下标最好用减法算出,以免加法溢出。位运算更快常见的一些位运算写法:x^2 == x << 1;x^2 + 1 == x << 1 | 1;x/2 == x >> 1;一个有

2022-02-14 19:08:21 2862 1

原创 Java异步编程

Java异步编程什么是异步编程?响应式编程+NIO。异步和同步的区别该图是传统模式下IO线程的交互流程,可以看出IO是阻塞的,即BIO的运行模式。接口A发起调用接口B后,这段时间什么事也不做,主线程一直等到接口B数据返回,然后才能进行其他操作,可想而知如果接口A调用的接口不止B的话,那么等待的时间也是递增的,而这期间CPU也要一直占用着,白白浪费资源。因此这种模式下的交互流程,大部分时间都浪费在了IO等待上。再看看异步模式的交互流程,即NIO方式:接口A发起调用接口B的请求后就立即返回,而不

2022-02-14 17:42:54 2010

原创 深入理解JVM字节码(二)

目录字节码基础一、字节码概述二、Java虚拟机栈和栈帧栈帧1. 局部变量表2. 操作数栈三、字节码指令1. 加载和存储指令2. 操作数栈指令字节码基础一、字节码概述Java虚拟机的指令由一个字节长度的操作码(opcode)和紧随其后的可选的操作数(operand)构成。<opcode> [<operand1>,<operand2>] 比如将整型常量100压到栈顶的指令是bipush 100,其中bipush是操作码,100是操作数。字节码(bytecode)名

2022-02-14 17:08:10 544

原创 深入理解JVM字节码(一)

目录深入剖析Class文件结构一、初探class文件二、class文件结构剖析(一) 魔数(二) 版本号(三) 常量池1. CONSTANT_Integer_info和CONSTANT_Float_info2.CONSTANT_Long_info与CONSTANT_Double_info3. CONSTANT_Utf8_info4. CONSTANT_String_info5. CONSTANT_Class_info6. CONSTANT_NameAndType_info7. CONSTANT_Fieldr

2022-02-14 15:24:28 856

原创 Java集合泛型作为参数时,使用中的一些问题。包括但不限于PECS原则

目录首先需要聊一下关于List、List<?>、List的区别泛型中的型变(协变、逆变、不可变)1. 什么是型变2. 什么是协变(Covariance)3. 什么是逆变(Contravariance)4. 不可变性(Invariance)首先需要聊一下关于List、List<?>、List的区别泛型中的型变(协变、逆变、不可变)1. 什么是型变 Object a = new String("ABCDEFG");String 作为Object的子类,可以直接将子类对象赋值给

2022-02-10 17:42:53 2106

转载 Spring中的Aware接口

Spring中有很多继承于aware中的接口,这些接口到底是做什么用到的。aware,翻译过来是知道的,已感知的,意识到的,所以这些接口从字面意思应该是能感知到所有Aware前面的含义。先举个BeanNameAware的例子,实现BeanNameAware接口,可以让该Bean感知到自身的BeanName(对应Spring容器的BeanId属性)属性,举个例子:BeanNameAware接口的定义public interface BeanNameAware extends Aware {

2022-02-08 10:37:26 69

原创 RedisTemplate 工具类, 超好用~~~

import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Component;import org.springframework.util.CollectionUtils;import java.util.*;import

2022-01-30 11:37:21 520

原创 安装LinuxDeploy——2021 版本2.6.0

前言安装linuxDeploy高版本2.4及以上时不需要再使用额外的busybox!不然会导致不能生成大于2G的linux.img的!!!2.4版本之后,推荐采用镜像安装方式进行安装!当然你想采用分区也行,网上由很多方法,这里不提了。使用镜像的方式进行安装,后面可以对镜像进行扩容。扩容方法:1.首先停止镜像。2.打开手机shell。3.dd if=/dev/zero bs=1048576 count=1000 >> /mnt/sdcard/Linux/linux.img //

2021-07-17 01:44:18 2633

原创 使用二分解决最长上升子序列(LST)问题

使用二分的思路来源于一种叫做patience game的纸牌游戏。public class 二分解决最长上升子序列 { public static void main(String[] args) { int[] num = {1, 4, 5, 2, 3, 8, 6, 7, 9}; System.out.println(search(num)); } static int search(int[] nums) { int[] top

2021-04-21 16:02:19 133

原创 二分找最左值与最右值

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶: 你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗? 示例 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 =.

2021-04-21 15:36:18 170

原创 搜索旋转排序数组

整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一个整

2021-04-21 10:07:38 98

原创 快速乘+二分实现除法

实现方法: class Solution { public int divide(int dividend, int divisor) { boolean flag = dividend > 0 && divisor > 0 || dividend < 0 && divisor < 0 ? true : false; long x = Math.abs((long) dividen

2021-04-21 09:45:51 95

原创 JAVA设计模式的七大原则总结

JAVA设计模式的七大原则总结一、单一职责原则基本介绍对类来说,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2.当职责1需求需要变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1,A2两个类。应用实例/** * @author Yu * 只有类中方法数量足够少,可以在方法级别保持单一职责原则,否则应该分割更小的粒度类来实现单一职责原则 */public class SingleResponsility { public static void

2021-04-19 18:17:22 725

原创 gcd与lcm函数

分别用于去最大公因数与最小公倍数//最大公因数 public static int gcd(int a, int b){ return b == 0 ? a:gcd(b,a%b); } //最小公倍数 public static int lcm(int a, int b){ return a/gcd(a,b) * b; } public static void main(String[] args) {

2021-04-17 22:07:13 298

原创 不一样的N皇后问题——位运算优化

N皇后问题是个很经典的问题,最近学习了使用位运算来优化对皇后位置的限制。可以加快算法的常数时间,但是时间复杂度还是没变。思路:将皇后所放的【列限制】改为实用整数位进行标志,【左斜线限制】与【右斜线限制】也使用整数位进行标志,准备一个N个位的二进制数limit,用于确定位限制中的有效范围 。 当前在第0行,想要在某一列放皇后,放入皇后之后,对应【列限制】的位改为1,代表这里要放皇后; 那么对应就会生成下一行的【左斜线与右斜线限制】,将当前行放入皇后的列限制左移1位就是下一行的左斜线限制

2021-04-12 15:45:46 257

原创 Java实现Kruskal,优化的前向量结构,并查集

Kruskal思想:将所有边排序,每次选最小的边,检查这个边两个顶点是否为同一个集合,不是的话就合并,是的话就不要(会形成回路),最后选n-1个边。选边的过程可以由堆进行优化package com.yxs.graph1;import java.io.BufferedInputStream;import java.util.PriorityQueue;import java.util.Scanner;public class Kruskal { static class Edge{ int

2021-04-10 22:21:34 138

原创 Java实现Prim算法,结合前向向量优化

package com.yxs.graph1;import java.io.BufferedInputStream;import java.util.Arrays;import java.util.Scanner;import java.util.Stack;public class Prim { static class Edge{ int to,w,next; { to = 0; w = 0; next = 0; } } static final int

2021-04-10 21:54:33 84

原创 实现JAVA结合前向量实现Dijkstra

```javapackage com.yxs.graph1;import java.io.BufferedInputStream;import java.util.Arrays;import java.util.Scanner;import java.util.Stack;public class Dijkstra { static int MAXN = 105; static class Edge{ int to; int w; ...

2021-04-10 21:09:14 95 1

原创 多段图问题----利用动态规划求解

首先,先说一下,这里所谓的利用动态规划求解,其实就是利用动态规划的思想。没有多么复杂,不要给自己加剧情。。。。特指本人。。。。其实利用动态规划的思想就是每次将结果保存下来,下次可以继续使用。你再想想,我们之前写最短路径不就是这样的吗????所以,这**写最短路径的时候,心理想着用个数组保存下来之前的结果不很正常吗?只不过那个时候没有意识到这里隐含了动态规划的思想。所以在老师说用动态规划求解多段图的时候,整个人都蒙了。。。。既然知道了,那么其实和写最短路径是一样的。只不过,这里我们可以倒着来,从后往前

2021-04-02 09:54:37 458

原创 归并排序!!!!!!一定要注意递归的边界维问题

private static void print(int[] arr){ for(int i = 0;i < arr.length;i++){ System.out.print(arr[i] + " "); } System.out.println(""); } public static void sort(int[] arr, int l, int r){ if(r == l)ret...

2021-03-29 20:16:21 179

原创 插入排序与希尔排序

首先看java实现插入排序;public static void sort(int[] arr){ int pos; for(int i = 1;i < arr.length;i++){ int t = arr[i]; pos = i; for(int j = i;j > 0 && t < arr[j-1];j--){ arr[j] =

2021-03-29 17:03:18 47

原创 冒泡排序及优化

冒泡排序及优化首先看一般的冒泡排序算法:public static void sort(int[] arr){ for(int i = arr.length;i > 0; i--){ for(int j = 1;j < i;j++){ if(arr[j] < arr[j-1])swap(arr, j, j-1); } } }优化冒泡排序主要有两种方式。一是从外层

2021-03-29 16:35:02 123

原创 选择排序的优化——JAVA实现

思想:最原始的选择排序,是每一次遍历数组,找出最小或最大的元素,然后交换到头或者尾部。优化思想也很简单,每次遍历选择出最大和最小的元素,分别放在头部和尾部。public static void sort(int[] arr){ int min = 0; int max = arr.length; for(int i = 0 ;i < arr.length / 2 + 1;i++) { min = i;

2021-03-29 13:23:28 123

原创 Servlet中的转发和重定向总结

Servlet中的转发和重定向总结1. 关于项目下的WEB-INF目录Web-INF目录下的资源文件安全性都很高。他不能直接通过浏览器来访问,访问它的方式只有一种:那就是通过服务器来访问。所以WEB-INF目录下一般存放的是lib、Spring配置文件,服务器配置文件,以及一些访问安全性较高的jsp/html页面(后台管理等页面)。==如果要访问WEB-INF下的jsp/html页面,只能通过请求转发(控制层)==来访问,不能通过重定向来访问(因为重定向是让浏览器来直接发出请求)。2. 转发1.

2021-03-28 14:06:22 369

原创 Servlet中的转发和重定向总结

Servlet中的转发和重定向总结1. 关于项目下的WEB-INF目录Web-INF目录下的资源文件安全性都很高。他不能直接通过浏览器来访问,访问它的方式只有一种:那就是通过服务器来访问。所以WEB-INF目录下一般存放的是lib、Spring配置文件,服务器配置文件,以及一些访问安全性较高的jsp/html页面(后台管理等页面)。==如果要访问WEB-INF下的jsp/html页面,只能通过请求转发(控制层)==来访问,不能通过重定向来访问(因为重定向是让浏览器来直接发出请求)。2. 转发1.

2021-03-28 11:27:33 309

原创 使用Response实现重定向

使用Response实现重定向常见场景:用户登录public void sendRedirect(String location) throws IOException;使用Response的sendRedirect(请求路径),实现请求重定向。转发与重定向的区别:相同点:页面都会跳转;不同点:请求转发时,url不会发生变化;重定向时,浏览器地址栏的url会发生变化。public class Servlet4 extends HttpServlet { @Overrid

2021-03-27 22:55:28 1507

空空如也

空空如也

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

TA关注的人

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