自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 PyTorch-GPU CUDA cuDnn安装, 入门学习笔记 2020

PyTorch-GPU 1.6 安装,2020 新手入门学习.包括PyTorch安装,Tensor的基础学习.

2020-08-25 15:34:53 28424 12

原创 Docker学习笔记,Docker核心技术教程——从0到1(完整笔记教程)

本文将介绍Docker的安装,核心概念,是什么、能干什么、Docker整体架构,和传统虚拟机的区别。什么是容器虚拟化技术,深刻理解镜像、容器、仓库的各种概念和操作。通过该课程,能够熟练掌握Dockerfile的编写和构建并使用Dockerfile来制作复杂镜像,能够使用容器卷完成容器间数据共享和持久化工作。能够在Docker容器下进行日常软件的安装开发和工程部署。(教程来自哔哩哔哩尚硅谷)

2020-04-10 20:49:54 18505 6

原创 docker exec 和 docker attach的作用与区别,docker run -it 的联系, exit后容器停止?

docker run -it会创建前台进程,但是会在输入exit后终止进程。docker attach 会通过连接stdin,连接到容器内输入输出流,会在输入exit后终止进程.docker exec -it 会连接到容器,可以像SSH一样进入容器内部,进行操作,可以通过exit退出容器,不影响容器运行。

2020-04-06 14:26:05 19717

原创 面试题——生产者消费者实现

生产消费者模型,大家都比较熟悉。面试bat等大厂就遇到了两次让手动实现,这里写上我的理解与实现。实现步骤:定义共有内容。List,容器本身,也是锁的对象。MAX_NUM,代表容器最大容量,标识容器是否已满编写线程,编写producer与consumer的方法(本文讲方法单独取出。)启动线程。package com.真题;import java.util.ArrayList;import java.util.LinkedList;public class 生产者消费者 {

2021-04-20 17:34:21 9687

原创 深入理解JVM第13章——线程安全与锁优化

JVM线程安全与锁优化java语言中的线程安全等级不可变: final修饰的基本数据类型。即为不可变。绝对线程安全:不管运行时环境如何,嗲用着都不需要任何额外同步措施。一般都达不到。相对线程安全:即为通常意义上的线程安全。对象单次的操作是线程安全的。比如:hashtable,vector等。线程兼容:通常意义上的线程不安全。本身不安全,可以通过在调用段使用同步手段保证。比如:hashmap,arraylist等。线程对立:无论如何都不能并发使用。java中一般不存在。线程安全的实现方法1

2021-01-31 17:36:07 235

原创 线程交替输出0-100

线程交替输出,那么肯定是要利用线程之间的同步协调。离不开Object对象中的wait()与Notify()方法。思路:创建两个线程A,B,一个全局变量i记数,一个全局变量obj协调两个线程。A输出一个数字,i++,obj.wait(),等待B执行。B输出一个数字,i++,叫醒A(obj.notify()),再obj.wait()。A输出一个数字,i++,叫醒B(obj.notify()),再obj.wait()。… 重复步骤34 直到 i == 100。思路逻辑大家应该都可以理解,需要注意

2021-01-19 16:26:17 359

原创 枚举类型解决单例模式优点——懒加载+线程安全+解决反射破坏+解决反序列化破坏

单例模式共有8中实现方式,其中大家最常见到的可能是双重检查模式,但是最优秀的应该是本文的主角枚举了。最亮眼的优秀在于:enum Singletone{ INSTANCE;}三行代码即可搞定,对比双重检查方便太多了而且,它具有以下优点:懒加载避免线程安全问题,避免反序列化破坏的问题,避免反射破坏的问题。So eazy!关于懒加载,本人查阅了很多文章没有给出明确的说明,在StaciOverflow上找到了明确的说明:并证明了枚举是懒加载:package designpattner;

2021-01-14 18:01:50 1211 3

原创 java char类型数值转int,以及获取ASCII码

char转int这是大家经常会遇到的问题,下面列出三种常见方法:(下面方法假设已经存在变量 char c = ’1‘)1.(int)(c - '0');这种方法是最快捷简单的方法,巧妙利用'0'字符。2. Integer.parseInt(String.valueOf(c))这种方法是将c转换为String,再转换为int。3. Character.getNumbericValue(c)Character包装类提供的转换方法,但是这个方法会将'a'转换为11而不是97! So weird!

2021-01-04 15:23:48 1629

原创 二分查找细节永不忘

二分查找中大于小于,甚至判断条件中的 < <= 很容易弄混。下面一起来捋清楚,保证了解原理,不会再错。重点的概念在于选区的区间!我建议选取的区间为左闭右闭,即[l,r]。当然其他方式也可以,我们不做讲述。因此需要注意以下三点即可:1.r = arr.length()-1 而不是length(),这样使得r为末数的下标,有意义。2. 判断终止条件为l < = r,因为 l,r 都是寻找目标,当其相等时,代表还有一个待验证目标。3. 每次缩小范围时,l = mid-1, r = mi

2020-12-29 11:37:12 9485 4

原创 Linux 安装miniconda

找到MiniConda 官网连接找到对应版本。Linux 右击获取下载连接。(其他系统直接下载)wget +url 下载到linux服务器上。使用 sh Miniconda3-latest-Linux-x86_64.sh安装,license阅读按q,后面全部yes通过安装。此时conda --version并不能使用,需要刷新。最后,输入source ~/.bashrc。安装完毕 conda --version。(base) [root@test]# co..

2020-12-18 09:59:44 10459

原创 剑指offer——把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路分析题目我们可以得知,序列中的数字,有着绝对的优先级,即若有a,b,c三个数字,当"a连接b"<“b连接a” 那么a优于b,ab的位置关系便确定,即:a肯定在b前。因此我们按照既定的规则对所有数字排序即可得到正确的顺序。之后将整个序列连接输出即可得到答案。因此,本题采用贪心算法,从最小的开始使用,.

2020-12-08 10:27:29 9478

原创 剑指offer——字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。题解思路:本题目为全排列,想到递归处理,思路较为简单,但是涉及类型之间的转换较为麻烦。难点:String->char[],得到字符数组,不支持删除某个字符,因此需要用到ArrayList,而字符数组并不能直接转为Ar.

2020-12-02 16:56:15 70

原创 int数组转 ArrayList对象 Arrays的asList方法

java中 `Arrays` 工具类中有`asList()`方法,可以用来将**对象数组**转换为**List对象**。但是当我们对**基本类型**的数组使用时会报错。

2020-12-02 11:16:44 10080

原创 剑指offer——求1+2+3+...+n

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。题解思路:初次遇到这种题型,限制关键字,想要一定是使用递归,但递归的条件一般是使用if,本题中不可以使用判断,因此,学习到,有以下两种方法作为终止条件!使用逻辑的短路,将递归放置于逻辑的第二个运算位,当不满足第一个条件,第二位不会计算,达到终止效果。使用异常,当捕获异常时,即可终止递归。package com.JZOffer;//题目描述//求1.

2020-11-23 17:26:30 136

原创 Java Integer.parseInt与Integer.valueOf的区别

1. `Integer.ParseInt(String)`参数只能为`String`!只针对`String`类型!2 由于`Integer.valueOf()`参数可以为String或int,所以支持很多类型的参数: 1. 当参数为`byte, char, short`等能自动转换为`int`的类型时,会自动转换‘ 2.当参数类型为`char`时, `Integer.valueOf()`会计算`char`的Ascii码值’

2020-11-20 17:45:06 839 1

原创 剑指offer——二进制中1的个数

如题,题目很简单,只是统计一个十进制数字转为二进制数后1的个数。思路:本题逻辑很简单,由于Integer中有转换数字进制的方法,所以很容易得到二进制数字。但是方法返回的为String类型,因此涉及基本类型的转换,需要特别注意。注意:Integer.toBinaryString(int)返回值为String类型。String 拆解为CharArray()后还需要转为Int类型。特别注意:Char --> Integer的时候不可以直接使用等于,否则会按照ASCII码转换。应:使用以.

2020-11-20 17:40:29 101

原创 剑指offer——树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)示例1输入: {8,8,#,9,#,2,#,5},{8,9,#,2}返回值: true难度:本题在牛客-剑指offer中为难题,通过率为24%。题解思路:1.基本函数:判断B树是否被A树包含。2 遍历A树,逐个判断。心路历程:1. 本题首先想到的是,基本单元为:判断两棵树是否相同。因此编写函数boolean isEqual(rootA, rootB)判断。2. 在上述函数的基础上,做修.

2020-11-20 15:37:04 79

原创 剑指offer——二叉树中和为某一值的路径

题目描述输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路:题目很容易想到递归,且出口条件也容易判断,target<0 ,或者target==0但是本题在牛客中通过率仅有26.6%,还是有一些坑的,主要记录此题心得。需要判空判空判空!! root判断是否为空,如果是,不能返回null,要返回需要的数据结构的空。二叉树的递归,需要判断传入的参数是否为空!比如find(root..

2020-11-19 18:25:06 84

原创 剑指offer——从上往下打印二叉树

使用队列层次输出二叉树加粗样式,难度较低,需要注意:判断root为空的情况每次从队列中poll,分别判断左右子树是否为空。队列的使用,Queue为接口,需要用ArrayList实现,入队出队分别为add 与 poll。import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/**public class TreeNode { int val = 0; TreeNode le

2020-11-19 14:26:10 80

原创 剑指offer——栈的压入弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)采用实践尝试的方式基本思路点:当pushA[i] == popA[j] 则直接两个指针向后移动。然后循环 判断栈顶元素与popA[j]相同。如果相同则弹出栈顶,且 j++。pushA[.

2020-11-19 12:24:50 107 2

原创 /bin,/sbin,/usr/sbin,/usr/bin 目录之简单区别

https://www.cnblogs.com/fengjunhua/p/7737607.html

2020-11-18 19:27:09 103

原创 排序算法复习——归并排序

java归并代码//归并排序import java.util.Arrays;public class mergeSort { //[l,m] (m-r] public static void merge(int[] arr, int l, int m, int r) { int[] arrdump = new int[arr.length]; System.arraycopy(arr, 0, arrdump, 0, arr.length);

2020-11-11 11:41:58 115

原创 排序算法复习——快排

java快排代码 public static int Partition(int[] arr, int low, int high) { // low的值已经被存入tmp,等待被覆盖 int tmp = arr[low]; int l = low, r = high; while (l < r) { while (l < r && arr[r] >= tmp) {

2020-11-09 21:23:14 82

原创 Python中的None

一:NoneNone是python中的一个特殊的常量,表示一个空的对象。数据为空并不代表是空对象,例如空列表:[],等都不是None。None有自己的数据类型NontType,你可以将None赋值给任意对象,但是不能创建一个NoneType对象。二:FalsePython中数据为空的对象以及None对象在条件语句都作False看待:即 None,False,0,[],"",{},()都相当于False。三:None的比较——用is None而不是 == None因为None在Python里

2020-09-29 17:37:41 7314

原创 Python 循环删除元素

当我们删除列表中的某个元素x,会造成两个结果:list的长度变化。x后面的元素的index都会变化。但是我们循环时,使用的list的长度是定值,并不会在每次循环后更新,导致程序异常。无论是在Java还是Python中,这个坑本人已经踩过很多次。错误的方式千奇百怪,但都是上述原因造成,不再详述,这里只记录正确的删除方式。1.使用pop,每次删除最后一个if __name__ == '__main__': list_a = [1, 2, 3, 4, 5] # list_a的长度

2020-09-29 16:58:58 979

原创 Linux 中的重定向!

command > filename 把把标准输出重定向到一bai个新du文件中command >> filename 把把标准输出重定向到一个文zhi件中(追加dao)command 1 > fielname 把把标准输出重定向到一个文件中command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中command 2 > filename 把把标准错误重定向到一个文件中command 2 >> fil.

2020-09-14 15:11:29 315

原创 Python中pop remove del的区别

共同点:都是尝试删除列表中的指定某一个内容。区别:对于列表可以用pop(),del(),remove(),pop(index) 弹出/删除指定位置的内容,默认参数为-1,即弹出最后一个。返回弹出内容。使用方式为:arr.pop(index),索引超出会报’IndexError: pop index out of range’。del() 指定列表名与序号,无返回值;使用方式为:del(arr[2]) ,索引超出会报’IndexError: list assignment index ou

2020-09-07 11:26:12 394

原创 Linux服务器停止Springboot进程,Jenkins自动部署Springboot

快速关闭服务器后台Springboot进程脚本重新发布Springboot.jar脚本Jenkins打包后,实现自动发布脚本

2020-08-28 17:21:30 13883

原创 CUDA10 下载百度云 cuDnn下载(Windows版 )

百度云资源链接:https://pan.baidu.com/s/1hREGDO9oA7A65s3iu6uXGg提取码:ntbn

2020-08-28 09:34:25 17840 21

原创 Linux后台运行java代码——nohup

在linux系统运行java代码时,有时运行时间较长,需要将其挂起到后台,以使用其他功能,并且断开连接后仍然可以继续运行。而且有时也需要保存其控制台输出日志。挂起后当然也需要查看其状态,和调回后台。后台运行java -jar XXX.jar &此时日志文件会保存到当前目录下的 ‘nohup.out’文件中,可以通过cat nohup.out查看[root@root file] nohup java -jar test-0.0.1-SNAPSHOT.jar &[1] 2853

2020-08-27 17:15:46 15787 3

原创 遗传算法 Python包 ,粒子群算法 Python包,模拟退火算法 Python包

工具包在GitHub上找到一个开源的项目实现了数学建模中常用的算法包括:差分进化算法遗传算法粒子群算法模拟退火算法蚁群算法免疫优化算法人工鱼群算法项目链接:https://github.com/zhangxiao123qqq/scikit-opt原作者链接:https://github.com/guofei9987/scikit-opt黑盒实现,即拿即用!不要太爽!!提示:项目中使用等help()命令可直接获得参数说明。#遗传算法帮助help(GA)#模拟退火算法帮助

2020-08-26 17:53:15 19399 1

原创 Docker学习笔记,新手入门

包含Docker从0到1的安装,学习,以及常用命令!基本概念仓库:集中存放镜像的。(阿里云与网易云有仓库镜像)。镜像:只读的模板,可以创建多个容器,例如mysql redis centOS 等;容器:实例对象,是一个集装箱,可以把容器看作简易版的Linux环境;

2020-04-05 23:16:18 14501

原创 服务器常用安装配置(持续更新)

pip换源说明(linux与windows):https://www.jianshu.com/p/4002a8714ab3linux 安装mysqlhttps://www.cnblogs.com/javabg/p/9970723.html

2020-04-04 22:42:49 13512

原创 自底向上,自顶向下,归并排序 的 递归,非递归

归并排序可分为自顶向下与自底向上两种方法。其中自顶向下是指先将整个数组二分切割,再将切割得到后的子数组二分切割,直至所有子数组仅包含1个元素,之后再进行逐层Merge合并,因此最好使用递归实现。自底向上上是指,一开始就将整个数组执行:将相邻的2元素Merge, 将相邻的4元素Merge … 直至整个数组均Merge完毕即排序完毕。

2020-04-03 23:40:47 15459 1

Windows白图标,白快捷方式解决

解决windows桌面白图标,白色快捷方式!快捷方式显示错误。双击即可解决。随点随用。(更建议用管理员方式打开)。解决windows桌面白图标,白色快捷方式!双击即可解决。随点随用。(更建议用管理员方式打开)。

2020-08-28

空空如也

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

TA关注的人

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