我的想法 2023.7.15
Theme: 让技术有用
我的想法
增加gitee的使用频率,系统学习某个技术并将学习过程或经验推送到gitee
时常维护自己的代码仓库以及个人博客
开发小工具/有用的功能,在gitee建立仓库
在建仓和维护仓库的同时,深入掌握git技术
希望在一年后能够有一个成熟的代码仓库(主题待定)
学习人工智能技术,并注意新技术的体验(例如yolo目标检测这样的技术)
“所有的淡定自若,背后一定是孰能生巧!”
2023/2/18
Docker是什么?Docker的作用?
Docker安装
常用镜像(image)操作
查找镜像
1 | docker search image_name |
获取镜像
1 | docker pull image_name |
列出镜像列表
1 | docker images # 或docker image ls |
删除镜像
1 | docker rmi image_name |
常用容器(container)操作
查看正在运行的容器
1 | docker ps -a |
启动容器
1 | docker run -itd --name container_name image_name /bin/bash |
交互方式进入容器
1 | docker exec -it container_id /bin/bash |
将主机内容复制到容器中
1 | docker cp file_name container_id:/path/directory |
启动已停止容器
1 | docker start conatainer_id |
停止容器
1 | docker stop container_id |
重启容器
1 | docker restart container_id |
删除容器
1 | docker rm container_id |
导出和导入容器
1 | docker export container_id > xxx.tar # 导出容器 |
清理所有处于终止状态的容器
1 | docker container prune |
n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。
你需要按照以下要求,给这些孩子分发糖果:
1)每个孩子至少分配到 1 个糖果。
2)相邻两个孩子评分更高的孩子会获得更多的糖果。
请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。
示例 1:
输入:ratings = [1,0,2]
输出:5
解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。
示例 2:
输入:ratings = [1,2,2]
输出:4
解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。
第三个孩子只得到 1 颗糖果,这满足题面中的两个条件。
1 | class Solution: |
给你一个大小为 m x n 的二进制矩阵 grid 。
岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。
岛屿的面积是岛上值为 1 的单元格的数目。
计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。
示例 1:
输入:grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]
输出:6
解释:答案不应该是 11 ,因为岛屿只能包含水平或垂直这四个方向上的 1 。
示例 2:
输入:grid = [[0,0,0,0,0,0,0,0]]
输出:0
邻接矩阵和邻接表表示的图的DFS和BFS
1 | package test; |
1 | class Solution: |
首先来看下面一段代码:
1 | public class Test { |
首先来看一段示例代码,我们会发现这样的现象 127 = 127,128 != 128。
1 | public class Test { |
为什么会出现这样的现象,我们来看以下Integer类的源码:
1 | /** |
以上这段代码是Integer类的一个内部类IntegerCache,它缓存了-128 ~ 127之间的整数值,缓存的最小值为low表示的值,缓存的最大值为high表示的值。
在创建这个范围内的整数对象时,可以在常量池中直接引用,而无需重新创建,因此 a == b 返回true。超出此范围的值,会通过new新的对象,因此 c == d返回false。
Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。
Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。
Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。
Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。
Spring Boot 2.0 以上默认使用 Hikari 数据源,可以说 Hikari 与 Driud 都是当前 Java Web 上最优秀的数据源,我们来重点介绍 Spring Boot 如何集成 Druid 数据源,如何实现数据库监控。
1 | <dependency> |
1 | spring: |
1 |
|
1 | package com.example; |
1 | // 后台监控:相当于web.xml,配置ServletRegistrationBean |
1 | //filter |
1 | <!--mybatis-springboot--> |
1 | spring: |
1 | package com.example.pojo; |
1 | package com.example.mapper; |
1 | <?xml version="1.0" encoding="UTF-8" ?> |
1 | package com.example.controller; |