自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jinchenpeng的博客

java小白的家

  • 博客(152)
  • 资源 (5)
  • 收藏
  • 关注

原创 docker学习记录

1.Docker - 部署MySQL, Redishttps://www.cnblogs.com/waller/p/12109143.html2.克隆若以项目

2021-06-09 17:25:09 115 1

原创 论文翻译:基于深度卷积神经网络的肉鸡粪便识别与分类

Recognition and Classification of Broiler Droppings Based on Deep Convolutional Neural Network基于深度卷积神经网络的肉鸡粪便识别与分类消化系统疾病是肉鸡养殖中常见的疾病之一,严重影响肉鸡生产和动物福利。粪便检查和观察是最精确的技术,以检测发生的消化疾病感染鸟类。本研究提出一种基于深度卷积神经网络模型的肉鸡消化疾病自动检测仪,将异常肉鸡细粒粪便图像(形状、颜色、含水量、形状与水)分为正常和异常。研究人员收集了1

2021-05-28 10:19:30 1257

原创 conda的一些命令

1.conda创虚拟新环境conda create -n 环境名 python==版本号2.conda激活虚拟环境conda activate 项目名3.安装对应安装包pip install -r requirements.txt

2021-04-18 09:56:19 278

原创 Java常用容器

java容器

2022-08-05 17:24:56 216 1

原创 解决“No module named ‘tensorflow.keras...”

1.原因缺少这个包2.解决首先找到tensorflow下面的keras所在位置找到自己所要导入的包,查看位置然后你就根据路径改一下代码:from tensorflow.contrib.keras.api.keras.optimizers import ***

2021-11-14 01:22:19 6279

原创 linux常用命令总结

1.查找文件(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。find /etc -name httpd.conf  #在/etc目录下文件httpd.conf(2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。grep 'test' d*  #显示所有以d开头的文件中包含 test的行2.查看磁盘及内存占用情况df 查看磁盘占用情况top 查看内存占用情况3.后台运行nohup

2021-09-27 15:12:31 182

原创 三级缓存解决循环依赖

单例池是一级缓存半成品池是三级缓存一级缓存和三级缓存用来解决的是循环依赖的问题工厂池是二级缓存二级缓存主要用来解决动态代理的问题

2021-09-25 01:05:12 127

原创 什么是Devops、云原生或云计算的一个领域IAAS、PAAS、SAAS

1.DevopsDevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。换句话说就是运维人员参与敏捷开发。2.IAAS、PAAS、SAAS从Iaas到SaaS的过程,企业需要付出的成本越来越小,云化的程度也越来越高,内部IT所需要做的事越来越少。3.云计算和云原生云计算的3层划分,即基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)为云原生提供了技术基础和方向指引,真正的云化不仅仅是基础设施和平台的变化,应用也需要做出

2021-09-22 17:24:58 834

原创 倒数第k个结点(包括输入输出,ACM,白板敲代码,快手面试)

最近面试快手,手撕代码的时候发现既不是关键代码模式也不是ACM,而是从数据结构开始写起,有点懵。记录在此,一起学习!//链表结构体class ListNode{ int val; ListNode next=null; ListNode(int val){ this.val = val; }}public class LastK { public static void main(String[] args) { ListNod

2021-09-20 23:09:31 98

原创 两个栈模拟一个队列(包括输入输出,ACM,白板敲代码,快手面试)

快手面试手撕的代码,由于输入输出没搞明白,本来会的题撕得不太顺利,记录在此,共同学习!import java.util.*;public class TwoStack { public static void main(String[] args) { Solution solution = new Solution(); //s1:0 1 2 3 4 for (int i = 0; i < 5; i++) { sol

2021-09-20 20:43:25 137

原创 反转链表(包括输入输出,ACM,白板敲代码,快手面试)

最近面试快手,手撕代码的时候发现既不是关键代码模式也不是ACM,而是从数据结构开始写起,有点懵。记录在此,一起学习!//链表结构体class ListNode{ int val; ListNode next=null; ListNode(int val){ this.val = val; }}//包括主函数建立链表和关键代码两部分public class Main{ public static void main(String[] args

2021-09-20 20:17:37 788 1

原创 执行计划和索引

-- 1.添加PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY (`column`) ;-- 2.添加UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`column`);-- 3.添加INDEX(普通索引) ALTER TABLE `table_name` ADD INDEX index_name (`column`);-- 4.添加FULLTEXT(全文索引) ALTER

2021-08-31 21:42:52 94

原创 synchronized 和Lock区别

synchronizedlock关键字类非公平公平少量同步大量同步自己释放锁必须再finally中释放锁,不然会造成死锁无法判断锁的状态可以判断锁的状态

2021-08-31 17:01:48 59

原创 线程池学习记录

import java.util.concurrent.*;public class Test{ public static void main(String[] args){ ExecutorService executorservice = new ThreadPoolExecutor( 3 ,//核心线程数 5, //最大线程数

2021-08-18 01:35:54 112

原创 生产者消费者问题

package com.company;/** * 消费者和生产者:线程之间的通信问题 * 等待唤醒,通知唤醒 * 不同的线程操作同一个变量 */public class ProducerAndConsumer { public static void main(String[] args) { Data data = new Data(); //添加线程 new Thread(()->{ for (int

2021-08-18 00:17:47 72

原创 计算机网络(TCP、加密、URL)

1. TCP建立连接过程中,第三次握手seq=1000,ack=2000.问第二次握手seq和ack分别为多少?第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据,但要消耗掉一个序号。第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。同时会把客户端的 ISN + 1 作为ACK

2021-08-17 16:07:21 751

原创 设计模式(单例、工厂)

1.设计模式的六大原则1、开闭原则开闭原则的意思是:对扩展开放,对修改关闭。我们需要使用接口和抽象类。2、里氏代换原则任何基类可以出现的地方,子类一定可以出现。基类与子类的继承关系就是抽象化的具体实现。3、依赖倒转原则针对接口编程,依赖于抽象而不依赖于具体。4、接口隔离原则使用多个隔离的接口,比使用单个接口要好。降低类之间的耦合度。5、迪米特法则,又称最少知道原则一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。6、合成复用原则合成复用原则是指:尽量使用合成/

2021-08-17 15:29:11 86

原创 ConcurrentHashMap在JDK1.7和1.8中的区别

其实可以看出JDK1.8版本的ConcurrentHashMap的数据结构已经接近HashMap,相对而言,ConcurrentHashMap只是增加了同步的操作来控制并发,从JDK1.7版本的ReentrantLock+Segment+HashEntry,到JDK1.8版本中synchronized+CAS+HashEntry+红黑树。1.数据结构:取消了Segment分段锁的数据结构,取而代之的是数组+链表+红黑树的结构。2.保证线程安全机制:JDK1.7采用segment的分段锁机制实现线程安全,

2021-08-13 14:08:02 758

原创 RDB与AOF的区别

1.什么是RDB和AOF?RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储AOF持久化方式记录每次对服务器写的操作,当服务器重启时会重新执行这些命令来恢复原始数据,注意:只做缓存的时候可以不做任何持久化同时开启两种持久化方式时当redis重启时会优先载入AOF文件来恢复原始数据因为在通常情况下,AOF文件保存的数据集要比RDB文件保存的完整RDB的数据不实时,同时使用两者时服务器重启也只会找AOF文件。官方不推荐使用AOF持久化方法,因为RDB更适用于备份数据库(AOF在不断变化

2021-08-13 13:50:03 1833

原创 CMS和G1收集器的区别

1.使用范围不一样CMS收集器是老年代的收集器,可以配合新生代的Serial和ParNew收集器一起使用G1收集器收集范围是老年代和新生代。不需要结合其他收集器使用2.STW的时间CMS收集器以最小的停顿时间为目标的收集器。G1收集器可预测垃圾回收的停顿时间(建立可预测的停顿时间模型)3.垃圾碎片CMS收集器是使用“标记-清除”算法进行的垃圾回收,容易产生内存碎片G1收集器使用的是“标记-整理”算法,进行了空间整合,降低了内存空间碎片。4. 垃圾回收的过程不一样CMS收集器

2021-08-13 11:04:56 281

原创 java对象的生命周期

在Java中,对象的生命周期包含下面几个阶段: 创建阶段(Created) 应用阶段(In Use) 不可见阶段(Invisible) 不可达阶段(Unreachable) 收集阶段(Collected) 终结阶段(Finalized) 对象空间重分配阶段(De-allocated)1.创建阶段(Created)在创建阶段系统通过以下的几个步骤来完毕对象的创建过程为对象分配存储空间开始构造对象2.应用阶段(In Use)对象至少被一个强

2021-08-13 10:41:24 1112

原创 JVM学习记录

1.内存与垃圾回收篇主要用的是jdk81.1 JVM与java体系结构跨语言的平台java虚拟机上的多语言混合编程成为主流docker run -p 9000:9000 minio/minio server /data1.2 类加载子系统1.3 运行时数据区概述及系统1.4 程序计数器1.5 虚拟机栈1.6 本地方法接口1.7 本地方法栈1.8 堆1.9 方法区1.10 直接内存1.11 执行引擎1.12 SpringTable1.13 垃圾回收概述1.14 垃圾回收相

2021-08-13 10:30:46 114

原创 MySQL学习记录

1.什么是索引一种能帮助mysql提高查询效率的数据结构索引优点:大大提高数据查询速度索引缺点:维护索引需要耗费数据库资源索引要占用磁盘空间所以数据库表并不是索引加的越多越好,而是仅为那些常用的搜索字段建立索引效果才是最佳的!2.索引的分类主键索引:PRIMARY KEY单值索引:又叫单列索引、普通索引唯一索引:索引列的值必须唯一,但允许有空值(Null),但只允许有一个空值(Null)复合索引:一个索引可以包含多个列,多个列共同构成一个复合索引!全文索引:Full Text (

2021-08-13 00:53:30 92

原创 Spring学习记录

1.什么是Spring?Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架(1)从大小与开销两方面而言Spring都是轻量级的。(2)通过控制反转(IoC)的技术达到松耦合的目的(3)提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发(4)包含并管理应用对象(Bean)的配置和生命周期,这个意义上是一个容器。(5)将简单的组件配置、组合成为复杂的应用,这个意义上是一个框架。2.Spring Bean的生命周期实例化 Instantia

2021-08-13 00:01:39 75

原创 理解数据结构的好帮手

下面网址可以有效的帮助我们理解各种数据结构可以对各种数据结构的增删改查还可以动态的展示操作的过程,可谓是理解的神器!https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

2021-08-11 14:55:00 58

原创 一图解决TCP和UDP的区别

1.TCP协议的主要特点(1)TCP是面向连接的运输层协议;所谓面向连接就是双方传输数据之前,必须先建立一条通道,例如三次握手就是建议通道的一个过程,而四次挥手则是结束销毁通道的一个其中过程。(2)每一条TCP连接只能有两个端点(即两个套接字),只能是点对点的;(3)TCP提供可靠的传输服务。传送的数据无差错、不丢失、不重复、按序到达;(4)TCP提供全双工通信。允许通信双方的应用进程在任何时候都可以发送数据,因为两端都设有发送缓存和接受缓存;(5)面向字节流。虽然应用程序与TCP交互是一次一个.

2021-07-28 20:16:06 195

原创 HTTP请求的常见状态码

http请求的状态码主要有1xx(临时响应)、2xx(成功)、3xx(已重定向)、4xx(请求错误)5xx(服务器错误)但是我们会遇到的确不是很多,所以不用一一记住,下面是一个列表, 代表了一些常常会出现的状态码:200 OK:代表一次成功的http请求。204 No Content:请求已经被服务器成功执行,但是服务器不会返回资源内容,这个状态码可以这样理解:就是告诉客户端,你的请求我已经处理了,但是我没东西答复你,你也不用改变什么。应用场景:在浏览器中,我们提交一个表单,但是又不想跳转页

2021-07-28 19:56:50 427

原创 OSI七层模型

1.什么是OSIOSI(Open System Interconnect),即开放式系统互联,一般都叫OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。2.对等通信对等通信,为了使数据分组从源传送到目的地,源端OSI模型的每一层都必须与目的端的对等层进行通信,这种通信方式称为对等层通信。 在每一层通信过程中,使用本层自己协议进行通信。3.TCP/IP五层模型...

2021-07-28 18:33:31 73

原创 ImportError: DLL load failed while importing win32api: 找不指定模块

1.原因报错kernel error安装了多个版本的pywin322.解决办法进入anaocnda prompt卸载掉pywin32 pip uninstall pywin32一般到这一步就已经好了,但是如果还报错kernel error,就继续往下看执行命令 pip show pywin32出现下图所示就继续执行 pip uninstall pywin32如果全都卸载完了,再继续安装 pip install pywin32然后刷新jupyter notebook ,就大功告成了

2021-07-18 13:09:30 2011 2

原创 论文翻译:用于鱼类分割和分类的大规模数据集

A Large-Scale Dataset for Fish Segmentation and ClassificationOguzhan Ulucan, Diclehan Karakaya, Mehmet TurkanDepartment of Electrical and Electronics EngineeringIzmir University of Economics, Izmir, Turkey{oguzhan.ulucan, diclehan.karakaya, mehmet.tur

2021-07-16 18:39:54 3231 5

原创 jupyter“到后台服务的连接没能建立.”

被这个问题折磨了一下午,步骤本来是没问题的。但是就很奇怪,解决之后做点记录吧,防止以后再遇到。1.报错信息:404 GET /api/kernels/…解决办法pip install --user --ignore-installed jupyter2.报错信息:404 GET /jupyter/nbextensions/widgets/notebook/js/extension.js?v=20170626221437 (0.0.0.0)conda install -c conda-forge i

2021-07-13 00:51:10 1602 3

原创 数据增强代码

from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_imgimport os//定义增强方式Datagen = ImageDataGenerator(rotation_range=40, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, vertica

2021-07-06 13:26:30 1287

原创 刷题(电话号码的字母组合)

1.题目2.回溯法回溯算法用于寻找所有的可行解,如果发现一个解不可行,则会舍弃不可行的解。在这道题中,由于每个数字对应的每个字母都可能进入字母组合,因此不存在不可行的解,直接穷举所有的解即可。class Solution { public List<String> letterCombinations(String digits) { //新建一个lists用来接收结果 List<String> lists = new ArrayLis

2021-07-02 22:40:18 96

原创 数据结构讲义

0.引言以下概念均参考彭波数据结构1.绪论数据元素的四种基本逻辑结构集合、线性结构、树形结构、图状或网状结构两种物理结构顺序存储结构、链式存储结构算法的设计取决于逻辑结构,算法的实现依赖于物理结构算法的概念算法的特性:有穷性、确定性、可行性、输入、输出程序是算法(这个算法可以用不同的语言来写)的实现算法的设计要求:正确性、可读性、鲁棒性、高效性算法的效率包括时间和空间,也就是时间按复杂度和空间复杂度算法的时间复杂度取决于算法中基本操作的频度2.线性表线性表的定义:线性是n个具有

2021-07-01 16:09:11 416

原创 刷题(三数之和)

1.题目描述2.第一次尝试本来准备暴力破解,三重循环。结果发现一个严重的问题,他会出现重复的列表项,这可不太好办3.排序+双指针看了看大佬的解法,是我草率了考虑的太不全面了很多情况我都没考虑到双指针法之前也见过,但是想不到用,是我没学到精髓吗特意查了双指针我们常说的「双指针」,当我们需要枚举数组中的两个元素时,如果我们发现随着第一个元素的递增,第二个元素是递减的,那么就可以使用双指针的方法,将枚举的时间复杂度从 O(N^2) 减少至 O(N)。class Solution {

2021-07-01 01:00:26 104 2

原创 刷题(盛多水的容器)

1.题目描述2.第一次尝试暴力破解的,使用两个for,时间复杂度是0(n*n)class Solution { public int maxArea(int[] height) { int sum = 0,min = 0; for(int i = 0;i<height.length;i++){ for(int j = 1;j<height.length;j++){ if(height[i]&l

2021-06-30 09:59:58 74

原创 Docker部署jenkins

1.拉取镜像https://www.bilibili.com/video/BV12h411Y76j?p=6&spm_id_from=pageDriver2.目录权限chown -R 1000 /root/jenkins3.运行docker run -di --name=jenkins -p 8080:8080 -v /root/jenkins/:/var/jenkins_home jenkins/jenkins:lts4.测试http://192.168.10.187:8080/

2021-06-29 13:51:37 92

原创 搭建redis集群(三主三从)

1.创建目录在/usr/local下建文件夹redis-cluster,然后在其下面分别创建6个文件夹mkdir -p /usr/local/redis-clustermkdir 8001、mkdir 8002、mkdir 8003、mkdir 8004、mkdir 8005、mkdir 80062.复制修改redis.conf把之前的redis.conf配置文件copy到8001下,修改内容3.继续修改配置文件把修改后的配置文件,分别复制到各个文件夹下面。注意每个文件要修改第2、4、6项

2021-06-29 08:50:13 166

原创 java中的位运算符

1.位运算符介绍 2.应用思路:动态规划+位运算class Solution { public int[] countBits(int n) { int[] bits = new int[n + 1]; int highBit = 0; for (int i = 1; i <= n; i++) { if ((i & (i - 1)) == 0) { highBit = i;

2021-06-29 00:32:51 89

原创 刷题(两个栈实现一个队列)

1.用两个栈实现一个队列用 stack1 作为 push 队列,将元素 push 到 stack1用 stack2 作为 pop 队列,当 stack2为空时则将 stack1 的数据 push 到 stack2,否 则直接 pop stack2Stack<Integer> pushStack = new Stack<>();Stack<Integer> popStack = new Stack<>();public void push(int

2021-06-26 10:01:32 58

大学英语六级词汇.pdf

大学英语六级词汇.pdf

2021-06-21

Vagrantfile

配置文件

2021-06-21

labelImg.zip

数据集标注工具

2021-05-30

yolo_weights.zip

keras + yolov3 权重文件 yolov3.h5

2021-05-30

后端开发校招要求.md

后端开发校招要求

2021-05-28

空空如也

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

TA关注的人

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