自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白首码农的博客

老当益壮,宁移白首之心;穷且益坚,不弃码农之路。

  • 博客(60)
  • 收藏
  • 关注

原创 Windows下命令行修改IP及DNS

需求 在频繁更换网段的情况下,通过动本修改比较方便。 修改IP netsh interface ip set address "以太网" static 192.168.1.136 255.255.255.0 192.168.1.1 修改DNS netsh interface ip set dns "以太网" static 61.18.120.24

2022-03-09 21:57:51 1229

原创 Ubuntu如何安装Nodejs

需求 wsl装的是ubuntu系统,在打包前端镜像时提示npm找不到,需要安装下NodeJS. 参考资源 https://github.com/nodesource/distributions 操作指令 curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs ...

2022-03-09 07:30:00 434

原创 Lenovo笔记本功能键不用按Fn键如何进行设置

问题现象 开发进行断点调试时,经常需要按Fn键进行辅助,操作很不顺畅。 操作步骤 1、按住Fn+F2键,打开电脑开关键,进入BIOS。 2、进入BIOS之后,找到“Configuration” , “Hotkey Mode”,将其Disable掉即可。 ...

2021-11-24 21:06:37 5417 4

原创 windows10安装docker 并修改镜像源

安装WSL2 可查看相关笔记 安装docker desktop https://www.docker.com/products/docker-desktop 修改默认镜像源 屏幕右下角:Settings->Docker Engine "registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com"], 查看docker相关信息 docker info 修改linux下docker在镜像源 # 修改/etc/docker/daemon.j

2021-11-20 20:26:10 1905

原创 通过PL/SQL Developer远程连接Oracle时出现中文乱码问题

参考资料 https://blog.youkuaiyun.com/zgjswp/article/details/106263201 解决方案 1、查看oracle服务器使用的编码 select userenv('language') from dual; 2、修改系统环境变量 NLS_LANG = AMERICAN_AMERICA.ZHS16GBK (步骤1查询到的编码) ...

2021-11-20 20:24:14 616

原创 wsl2 参考的对象类型不支持尝试的操作

参考资料 https://www.jianshu.com/p/089b1599d274 问题描述 使用win10的linux子系统时,有时会出现以下以下异常。 参考的对象类型不支持尝试的操作。 Press any key to continue… 解决办法 netsh winsock reset

2021-11-20 20:22:43 2670 2

原创 windows系统tomcat启动中文乱码问题

修改tomcat的conf下的logging.properties中的参数 java.util.logging.ConsoleHandler.encoding = GBK

2021-11-20 20:21:01 601

原创 制作SOFA Registry的Docker镜像

参考资料 https://github.com/steventong/sofa-registry-docker/blob/master/Dockerfile 创建Dockerfile FROM adoptopenjdk/openjdk8:jdk8u262-b10-alpine WORKDIR /tmp/build RUN apk update && \ apk upgrade && \ apk add git maven curl RUN wget ht

2021-11-20 20:19:29 619

原创 通过docker安装nexus3

参考资料 https://www.cnblogs.com/sanduzxcvbnm/p/13099635.html https://www.cnblogs.com/lipg/p/13878133.html 拉取nexus3镜像 docker pull sonatype/nexus3 运行nexus容器 docker run -id --privileged=true --name=nexus3 --restart=always -p 8081-8084:8081-8084 -v /docker/nexus

2021-11-20 20:16:49 890

原创 通过Docker安装Mysql

拉取镜像 docker pull mysql:8.0.27 准备相关数据目录及文件 mkdir -p /docker/mysql/etc /docker/mysql/data vim /docker/mysql/etc/my.cnf my.cnf [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/my

2021-11-20 20:14:49 669

原创 JDK基础镜像的制作

创建Dockerfile FROM openjdk:8-jdk-alpine RUN apk --update add tzdata && \ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone && \ apk del tzdata && \ rm -rf /var/c

2021-11-20 20:11:35 1226

原创 Docker安装Redis

参考资料 https://www.cnblogs.com/yqh0128/articles/14592910.html 操作步骤 获取 redis 镜像 docker pull redis 查看本地镜像 docker images 从官网获取redis.conf mkdir -p /docker/redis/etc /docker/redis/data cd /docker/redis/etc wget http://download.redis.io/redis-stable/redis.conf v

2021-11-20 20:09:07 924

原创 安装Windows子系统(WSL2)-Ubuntu

参考资料 https://docs.microsoft.com/zh-cn/windows/wsl/install-manual https://blog.youkuaiyun.com/qq_28412779/article/details/113565257 https://blog.youkuaiyun.com/networken/article/details/106980430 安装步骤 启用适用于 Linux 的 Windows 子系统 以管理员身份启用powershell dism.exe /online /enabl

2021-11-10 22:38:08 1761

原创 SOFA Boot 整合SOFA RPC 、SOFA Registry

参考资料 https://www.wenjiangs.com/doc/dc7xvpxh https://www.sofastack.tech/projects/sofa-rpc/getting-started-with-rpc/ SOFA Stack 在gitee上的源码仓库 https://gitee.com/sofastack 源码 stulab-sofarpc.zip 整合的关键步骤 添加依赖项 注意版本号 <parent> <groupId>com.alipay.so

2021-11-10 21:42:22 3795

原创 Windows下批量删除maven中多余的lastUpdated文件

@echo off set REPOSITORY_PATH=C:\Users\EData\.m2\repository rem waiting... for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do ( del /s /q %%i ) rem finished pause

2021-11-10 21:33:48 840

原创 SOFA Registry的简单安装

参考资料 https://www.bookstack.cn/read/SOFARegistry/Server-QuickStart.md 安装步骤 导出源码 git clone https://gitee.com/sofastack/sofa-registry.git 编译打包 cd sofa-registry mvn clean package -DskipTests 解压到指定目录 cp server/distribution/integration/target/registry-integrat

2021-11-10 21:31:33 1063 4

原创 Eclipse下maven项目异常:Could not initialize class org.codehaus.plexus.archiver.jar.JarArchiver

问题描述 Could not initialize class org.codehaus.plexus.archiver.jar.JarArchiver 参考来源 https://blog.youkuaiyun.com/culven/article/details/86737332 解决办法 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin

2021-11-10 21:27:22 1120

原创 算法面试题之合并两个有序数组

面试题 两个有序的整型数组arr1,arr2,将arr2合并到arr1中,使arr1成为一个有序数组 解题思路 大体有三中思路: 1、合并之后再进行整体排序 2、通过双指针算法从前往后进行遍历两个数组,最后将剩余的数据复制到arr1 3、通过双指针算法从后往前进行遍历,无需将arr在初始数组暂存到额外的数组中,这是对方法2的改进。 示例代码 import java.util.Arrays; /* 合并两个有序数组 */ public class MergeOrderedArray.

2021-10-30 10:57:26 2309

原创 算法面试题之子数组最大平均数

面试题 给一个整数数组,找出平均数最大且长度为K在下标连续的子数组,并输出该最大平均数。 输入:[1,12,-5,-6,50,3],K=4 输出:12.75 最大平均数 (12-5-6+50)/4=12.75 实现思路 通过指针遍历,逐次取和并判断得到最大的子数组之和 示例代码 public class MaximumAverageNumOfSubArraysTest { public static void main(String[] args) { int[]

2021-10-30 09:38:43 236

原创 算法面试题之求根运算

求根运算主要有两种方法: 一种是二分法,这个是比较好理解的 一种是牛顿迭代法,这个有点晦涩,迭代的公式是这样的 其中 /** * 求根运算 */ public class CalRootTest { public static void main(String[] args) { System.out.println(byBinarySearch(81,2)); System.out.println(byNewtonIterator(.

2021-10-29 23:02:06 321

原创 算法面试题之斐波那契数列

斐波那契数列的求值,只要有三种方法: 暴力递归、去重递归、双指针迭代 /** * 斐波那契数列: 0,1,1,2,3,5,8,13,21,34,55 */ public class FibonacciSequenceTest { public static void main(String[] args) { System.out.println("暴力递归:" + byViolentRecursion(10)); System.out.println(

2021-10-29 19:35:02 149

原创 算法面试题之两数之和

从一个整型数组中查找两个数,这两个数之和需要等于指定的值 如果无序的话,可以通过双重遍历、Map暂存法来实现 如果是有序数组,还可通过 二分查找、双指针遍历法来实现 import java.util.Arrays; import java.util.HashMap; import java.util.Map; /** * 从一个整型数组中查找两个数,这两个数之和需要等于指定的值 * 如果无序的话,可以通过双重遍历、Map暂存法来实现 * 如果是有序数组,还可通过 二分查找、双指针...

2021-10-29 18:45:57 193

原创 算法面试题之获取整型数组中三个数最大的乘积

整体的思路: 如果全正、全负,最大值则为:最大的数*第二大的数*第三大的数 如果存在正负,最大值则为:最小在负数*第二小的负数*最大的正数 问题的关键是得到需要的这5个数 import java.util.Arrays; /** * 获取整型数组中三个数最大的乘积 * 整体的思路: * 如果全正、全负,最大值则为:最大的数*第二大的数*第三大的数 * 如果存在正负,最大值则为:最小在负数*第二小的负数*最大的正数 * 问题的关键是得到需要的这5个数 */ p...

2021-10-29 18:02:57 216

原创 算法面试题之寻找数组中心下标

问题的关键是怎么以最小的代价来计算左侧与右侧的数据之和。 关键的思想是:数组的总和 =左侧之和 +中心数值 +右侧之和。 随着向右遍历,左侧之和在递增,右侧之和在递减。 import java.util.Arrays; /** * 数找数组中心的下标位置,如果存在中心下标A,那么A左侧的数据之和要等于右侧数据之和 */ public class FindArrayCenterIndexTest { public static void main(String[] args) {...

2021-10-29 16:31:26 151

原创 算法面试题之有序数组排除重复的元素,并且返回数组的新长度

主要是采用双指针算法来剔除重复的元素 /** * 有序数组排除重复的元素,并且返回数组的新长度 */ public class OrderedArrayRemoveDuplicateDataTest { public static void main(String[] args) { int[] datas = {1,2,3,3,4,4,5,5,5}; System.out.println(removeDuplicateDatas(datas));

2021-10-29 16:10:07 207

原创 算法面试题之统计N以内素数的个数

主要有两种方法: 一种是按照素数的定义来逐个进行判断。 一种是通过埃筛法(素数的相关特性)对素数进行标识筛选。 /** * 统计N以内素数的个数 */ public class PrimeNumberStatTest { public static void main(String[] args) { System.out.println(byDefine(100)); System.out.println(byEthmoidalMethod(100)

2021-10-29 15:53:48 535

原创 算法面试题之单链表的反转

主要是采用两种方式: 一种是递归,一种是迭代 /** * 单链接表链接顺序反转 * */ public class LinkedListReverseTest { public static void main(String[] args) { LinkedListNode node = new LinkedListNode(1,2,3,4,5); System.out.println(node); // System.out.print

2021-10-29 15:19:43 131

原创 gradle如何添加自定义源文件目录

修改build.gradle文件 // 添加自定义源文件目录 sourceSets { main { java.srcDirs += ['src/main/testa','src/main/testb'] } } // 打印源文件目录信息 task printSourceSetInformation(){ doLast{ sourceSets.each { srcSet -> println "["+srcSet.n

2021-10-29 09:48:58 2213

原创 设计模式之状态模式

基本概念 对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为 使用场景 问题 如下图,业务需要对不同的条件做不同的处理,如果这个处理的逻辑比较繁琐或者是判断的条件比较多的话,全写在一个方法里明显不容易维护。 调整 将条件(状态)相关的逻辑抽离到具体的类里,如下图。 示例代码 public class StatePatternTest { public static void main(String[] args) ..

2021-10-11 18:34:18 116

原创 设计模式之装饰器模式

基本概念 指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)。 应用场景 问题 如图,因业务需要,在调用operate()方法之前或者之后,需要做一些额外的操作,如果直接改动现有代码,明显不符合开闭原则。 调整 如下图,增加一个Decorator类,它的operate方法会在实际operate方法之外增加一些额外的操作。 示例代码 public class DecoratorPatternTest { public static void m.

2021-10-11 17:36:00 111

原创 设计模式之外观模式

基本概念 外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 使用场景 问题 客户端在完成某个业务操作时需要调用多个子系统(服务)中的方法,它需要对每个方法的职能有清晰准确认识才能正确使用,很明显这个不符合迪米特法则。 调整 在Client端与子系统之间增加一个外观类,如下图 在客..

2021-10-11 16:39:42 165

原创 Java NIO关于文件读写、拷贝、删除操作备忘

import java.io.IOException; import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.SimpleFileVisi.

2021-10-05 08:06:15 238

原创 Centos7时间同步

安装ntpdate yum install ntpdate -y 配置定时任务 crontab -e */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com 查看定时服务的状态 systemctl status crond 设置定时服务开机自启 systemctl enable crond

2021-09-24 16:51:01 184

原创 Centos7开启SSH服务

查看sshd状态 systemctl status sshd 修改配制文件(/etc/ssh/sshd_config) # vim /etc/ssh/sshd_config Port 7722 #AddressFamily any ListenAddress 0.0.0.0 ListenAddress :: ​ PermitRootLogin yes ​ PasswordAuthentication yes 启动ssh服务 systemctl start sshd 问题排查 启动失败,使

2021-09-24 16:38:50 243

原创 Centos7中yum源的更新

备份 mkdir /etc/yum.repos.d/repo_bak/ mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo_bak/ 下载新的CentOS-Base.repo wget http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/Centos-7.repo 清理缓存、创建缓存 yum clean all yum makecache 查看启用的yum源和所有的y

2021-09-24 16:26:52 138

原创 虚拟机设置桥接方式连接网络

Bridge(桥接) 将所有虚拟机和物理主机虚拟到同一个网络环境,给虚机分配与宿主机不同的IP地址、相同的掩码和网关,使主机与虚拟机处于同一网段内(虚机加入主机所在的局域网中)。这样虚拟机网络环境可以看做和物理机一样。 ...

2021-09-24 16:00:24 340

原创 六大设计原则(SOLID)备忘

单一职责原则(SRP):Single Responsibility Principle 职责有粒度之分,有层级之别,当系统越复杂,一个类的职责应该越单一,以提高类的透明度,便于维护。 好比在小公司,一个人可能身兼数职,因为事情少,负责多件事也能应付,主要是可以减少人力成本。如果在大公司,职位体系全面,每个人都有固有职责,这样更便于管理。 所以这里面有个权衡问题,如果业务简单,划分出太多的类完全没必要。 开闭原则(OCP):Open-Closed Principle Software entiti

2021-09-19 13:51:06 137

原创 Spring如何解决循环依赖

问题由来 为什么Spring IOC容器在处理循环依赖这块比较复杂,主要是AOP代理(AnnotationAwareAspectJAutoProxyCreator)的引入,它会改变对象的引用地址。 如果按默认的顺序,这个代理类是在装配属性(populateBean)之后才执行的,所以Spring把生成代理这块的逻辑放在一个lambda表达式里,即一个ObjectFactory匿名类里() -> getEarlyBeanReference(beanName, mbd, bean),如果存在循环引用,

2021-09-18 23:45:32 139

原创 JAVA类加载器相关备忘

有哪些类加载器 引导类加载器(Bootstrap ClassLoader) c++编写,无法直接引用,主要负责加载jre/lib目录下的核心类库 扩展类加载器(Extension ClassLoader) 主要负责加载jre/lib/ext目录下的标准扩展类库 应用类加载器(Application ClassLoader) 主要负责加载CLASSPATH环境变量下的类,应用中的类基本是用的这个类加载器 自定义类加载器(Custom ClassLoader) 可以通过继承java.lang.C

2021-09-16 12:06:14 157

原创 Java中SPI机制使用示例

SPI是什么 SPI ,全称为 Service Provider Interface,是一种服务发现机制,动态的为某个接口寻找服务实现。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。 代码示例 定义接口 package com.test; ​ public interface DataProcessor { void process(); } 定义实现类 package com.abc; ​ import com.tes.

2021-09-15 22:11:20 395

空空如也

空空如也

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

TA关注的人

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