LeetCode-百题斩
[TOC]
1. Two Sum(两数之和)思路
嵌套两次循环 O(n*n)
两个一次循环 O(2n)
一次循环
两个一次循环 O(2n)
第一次循环用 hashmap 存储所给的数据
第二次循环用 target - 当循环当前的值得到sub,判断 sub 是否在 map 中,同时 sub 不能是当前的值
12345678910111213public static int[] twoSum(int[] nums, int target) { Map<Integer, Integer> cache = new HashMap<>(); for (int i = 0; i < nums.length; i++) { cache.put(nums[i], i); } for (int i = 0; i < nums.length; i++) { int sub = target - nums[i]; if ( ...
Amazon Linux2 镜像安装 systemctl
解决方案
dockerfile
12FROM amazonlinux:2022RUN yum install -y /usr/bin/systemctl
构建image
1docker build -t amzn2:systemctl .
安装成功
Guava Cache的基本使用
前言
LoadingCache是Guava Cache库中的一个类,它继承了Cache接口,并且扩展了它,提供了方便的方法来加载和缓存数据。 具体来说,LoadingCache类提供了一种从缓存中加载数据的机制,如果缓存中没有所需的数据,则会使用提供的加载函数来加载数据,然后将其放入缓存中,以便在将来使用。
这是一个使用Guava Cache的LoadingCache的简单例子:12345678910111213141516171819202122232425262728293031323334353637383940import com.google.common.cache.CacheBuilder;import com.google.common.cache.CacheLoader;import com.google.common.cache.LoadingCache;import java.util.concurrent.TimeUnit;public class LoadingCacheExample { // 创建一个LoadingCache对象,并指定缓 ...
从0到1-Spring Cloud GateWay
官方文档:https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/
搭建 Gateway依赖1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId></dependency>
新版的 gateway,摒弃了 ribbon 作为负载均衡,所以需要导入新的依赖
同时也是 解决lb失效的问题
解决方案:https://blog.csdn.net/qq_26820793/article/details/125350386
1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clo ...
从0到1-springboot集成redis
实现 redisTemplate 的自动装配
可以看到 Redis Auto Config 的 自动装配 redis template
copy一份 到自己的 配置类中
这下就可以开始我们的自动装配工作了
一下分别提供了两种,
First : Autoried 一个redisTemplate,对其进行后续装配
Second:重写自动装配到方法,自己构造 redisTemplate
重写自动装配类后续装配12345678910111213141516171819202122232425262728293031@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")@Configurationpublic class RedisTemplateConfig { @Bean(name = "redisTemplate") public RedisTemplate<String, Object> redisTemplate(Redi ...
从0到1-使用docker-compose搭建nacos服务
配置
Linux 机器一台
安装 docker ,个人版本: Docker version 20.10.11
安装 docker-compose version 1.25.5
docker-compose.yml
由于使用了 springcoud nacos 的最新版本,需要多开 9848,9849 两个端口
stanalone :单机模式
123456789101112131415161718192021version: "3"networks: lroom-network:volumes: data: redisdata: mqdata:services: nacos: image: nacos/nacos-server:2.0.2 container_name: nacos ports: - "8848:8848" - "9848:9848" - "9849:9849" environment: - "JVM_XM ...
从0到1-使用云效配置MAVEN私服
云效: https://devops.aliyun.com/workbench?spm=5176.168087.J_5253785160.3.913757a3BjwnNd
配置 setting.xml步骤一:设置仓库凭证请在settings.xml文件中设置以下仓库的访问凭证,通常settings.xml在$HOME/.m2/文件目录下。
123456789101112<servers> <server> <id>rdc-releases</id> <username>************************</username> <password>************</password> </server> <server> <id>rdc-snapshots</id> <username>************************</username> ...
Java自定义连接池
Steps
导入依赖
重写Apache Commons Pools2 的 方法
测试
导入依赖我还用了 Hutool 的包,和SpringBoot的基础jar包
123456789101112<dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.11.1</version> </dependency> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version> </depe ...
Dockerfile构建镜像并运行DEMO
环境准备
tomcat 9
可运行 war 包
服务器,并安装好了 docker
测试 war 包 部署到本地的tomcat
将 打好的 war 包放入 tomcat/webapps 目录下
运行tomcat
发现问题:SpringBoot 项目 打成war包,tomcat 不会去启动它,catalina.out 中不会出现 springboot 的启动日志
解决方案 修改入口的 main 函数
创建DockerFile测试 amazon linux 2 这个 image,安装 JDK 11
拉去 amazon linux 2 的 image
启动 amazon linux 2 的 Container
下载 jdk11
测试 dockerfile 构建image : zxhtestDockerfile
构建镜像
构建成功
运行 image zxh (改了个名字 从 zxhtest 改成了zxh)
网页测试结果
日志信息
docker-compose 命令的使用
运行命令启动一个容器
1234#Will enter the log consoledocker-compose up ${image_name}#When you add '-d' , run without enter the log consoledocker-compose up -d ${image_name}
错误ERROR: Named volume “mqdata:/var/lib/rabbitmq:rw” is used in service “rabbitmq” but no declaration was found in the volumes section.
原因: docker compose 的版本太低了
解决方法:
升级 docker compose 版本 从 1.24.1 升级到 2.x
sudo curl -L “https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$ ...