- 博客(35)
- 收藏
- 关注
原创 Mac 安装 brew !一行代码搞定
Mac 安装 brew ,一行代码搞定 在Mac Terminal终端输入/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"转自:金牛肖马
2020-07-23 12:01:30
284
原创 解决matplotlib画多幅子图时,出现图形部分重叠的问题
1.问题描述:问题解决前问题解决后2.解决方法: tight_layout()函数3. fig.tight_layout()函数解释 :功能:使得子图横纵坐标更加紧凑,主要用于自动调整图区的大小以及间距,使所有的绘图及其标题、坐标轴标签等都可以不重叠的完整显示在画布上。参数:Pad:用于设置绘图区边缘与画布边缘的距离大小w_pad:用于设置绘图区之间的水平距离的大小...
2020-04-30 19:41:00
9838
原创 tensorflow gpu 0.12.1 版本与python对应关系及下载地址
先说tensorflow gpu 0.12.1版本下载地址:https://pypi.python.org/pypi/tensorflow-gpu/0.12.1再说对应关系:以 tensorflow_gpu-0.12.1-cp36-cp36m-manylinux1_x86_64.whl 为例,上面的cp36就是要对应CPython 3.6版本,其他类推...
2020-01-02 13:10:38
2535
原创 Linux下tensorFlow各版本清华镜像以及查看TensorFlow安装版本和路径
https://pypi.tuna.tsinghua.edu.cn/simple/tensorflow/
2020-01-02 11:30:35
3366
原创 Java面试题
Java面试题java基础集合java基础2、面向对象的三大特性?分别解释下?4、重载和重写的区别?8、在 Java 中定义一个不做事且没有参数的构造方法有什么作用?9、Java 中创建对象的几种方式?10、抽象类和接口有什么区别?15、switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上?byte、short、char 都可以隐式转换...
2019-10-04 13:21:38
664
原创 Java面试常见知识点
代码 堆排 static void adjustHeap(int a[],int cur,int len){ int temp = a[cur]; for(int i=2*cur+1;i<len;i=2*i+1){ if(i+1<len&&a[i+1]>a[i]){ ...
2019-09-29 08:53:10
256
原创 0919滴滴笔试编程题代码+思路
第一题垃圾分类首先根据题意,一堆垃圾最多只有两个约束条件,相当于一个点最多连两条边,那么这个图就只存在孤立点、单链和简单的环,这里我们需要注意,有奇数个点的环是非法的首先是解除非法的情况,就是说对于一个有奇数点的环,我们要删去一个点(n- -)然后对于所有的合法情况,我们会发现,所有的环或者是链,其染色后的两种颜色的节点个数差最多是1个也就是说在分配两个车的垃圾的时候我们至多会出现一个车的...
2019-09-20 10:11:56
746
原创 LeetCode-动态规划
完全平方数给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.class Solution { /** * 直接思路:找出N最接近的平方数,再循环找出剩余最接近的平方数集合(结果可能不是最优) * 比如:12...
2019-09-19 13:56:31
279
原创 LeetCode-分治
为运算表达式设置优先级LeetCode给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。输入: "2-1-1"输出: [0, 2]解释: ((2-1)-1) = 0 (2-(1-1)) = 2public List<Integer> diffWaysToComp...
2019-09-19 10:05:24
113
原创 回溯
排列LeetCode 46[1,2,3] have the following permutations:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]public List<List<Integer>> permute(int[] nums) { List<Li...
2019-09-19 09:22:51
150
原创 顺丰科技笔试(第一题0.18,第二题没来得及提交,结果不知道)
import java.util.Scanner;public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); int n; n = in.nextInt(); long a[] = new...
2019-09-10 16:23:40
313
原创 剑指OFFER
剑指OFFER部分题解23. 链表中环的入口结点题目描述解题思路23. 链表中环的入口结点题目描述一个链表中包含环,请找出该链表的环的入口结点。要求不能使用额外的空间。解题思路使用双指针,一个指针 fast 每次移动两个节点,一个指针 slow 每次移动一个节点。因为存在环,所以两个指针必定相遇在环中的某个节点上。假设相遇点在下图的 z1 位置,此时 fast 移动的节点数为 x+2...
2019-09-06 12:35:24
267
原创 20届携程秋招笔试
携程笔试2.括号里的反转字符串((ab)cd)第一次翻转----->(bacd)-------> dcab思路:非右括号入栈,右括号出栈直到遇到左括号,然后刚出栈的除左括号入栈public static String reverse(String str){ Stack<Character> stack = new Stack<>();...
2019-09-05 10:55:10
544
原创 8 种基本类型的包装类和常量池
8 种基本类型的包装类和常量池1.Java 基本类型的包装类的大部分都实现了常量池技术2.两种浮点数类型的包装类 Float,Double 并没有实现常量池技术。3.Integer 缓存源代码:4. 应用场景:5. Integer 比较更丰富的一个例子:1.Java 基本类型的包装类的大部分都实现了常量池技术即 Byte,Short,Integer,Long,Character,Boolea...
2019-08-12 21:24:36
1010
2
原创 String类和字符串常量池
String类和字符串常量池1.String 对象的两种创建方式:2.String常量池3. 字符串拼接4. String s1 = new String("abc");这句话创建了几个字符串对象?1.String 对象的两种创建方式:String str1 = "abcd";//先检查字符串常量池中有没有"abcd",如果字符串常量池中没有,则创建一个,然后 str1 指向字符串常量池中的对...
2019-08-12 21:11:19
125
转载 Java 内存区域详解
Java 内存区域详解写在前面 (常见面试题)基本问题拓展问题一 概述二 运行时数据区域2.1 程序计数器2.2 Java 虚拟机栈2.3 本地方法栈2.4 堆2.5 方法区2.5.1 方法区和永久代的关系2.5.2 常用参数2.5.3 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?2.6 运行时常量池2.7 直接内存三 HotSpot 虚拟机对象探秘3.1 对...
2019-08-12 20:15:14
221
原创 (17)SpringBoot 2.X 高并发秒杀系统总结
(18)SpringBoot 2.X 高并发秒杀系统总结1.系统介绍2.开发环境和工具3.开发技术4.秒杀优化方向5.项目亮点5.1 使用分布式Seesion,可以实现让多台服务器同时可以响应。5.2 使用redis做缓存提高访问速度和并发量,减少数据库压力,利用内存标记减少redis的访问5.3 使用页面静态化,加快用户访问速度,提高QPS,缓存页面至浏览器,前后端分离降低服务器压力5.4 使用...
2019-08-07 17:26:24
2362
转载 浅析前后端分离
嗯。再来说一下,为什么要做前后端分离。前端后端有两种协作方式,一种可以称之为是服务器端渲染,一种是叫做前后端分离。这两种方式的差别是什么呢?服务器端渲染的方式,是指在服务器端就将网页直接生成,浏览器这里拿到的是一整个网页,CSS和JS的部分是在浏览器端执行的,而网页的内容部分,也就是数据,是由服务器端生成的。这叫做服务器端渲染。至于你是用NodeJS,还是用PHP,还是Python,还是Java,...
2019-08-05 19:32:19
265
原创 (16)SprintBoot 2.X 接口限流防刷
(16)SprintBoot 2.X 接口限流防刷1. 接口限流防刷1.1 思路1.2 技术细节2. 代码实现2.1 拦截器注解的引用 @AccessLimit(seconds=5, maxCount=5, needLogin=true)2.2 @AccessLimit注解的实现2.3 缓存Key前缀,可以设置有效时间2.4 注解能够生效,必须要配置拦截器AccessInterceptor2.4...
2019-08-05 18:28:58
819
原创 (15)SprintBoot 2.X 数学公式验证码
(15)SprintBoot 2.X 数学公式验证码1. 使用数学公式验证码1.1描述1.2 好处1.3 实现细节2. 代码实现2.1 前端代码2.1.1 前端页面代码2.1.2 前端逻辑代码2.2 Controller层 返回验证码图片接口2.3 MiaoshaService层 生成验证码图片2.4 Controller层,当前端点击秒杀按钮后,进入获取秒杀地址业务逻辑,首先进行验证码验证,成...
2019-08-05 13:30:45
749
原创 (14)SprintBoot 2.X 秒杀地址隐藏
(13)SprintBoot 2.X 秒杀地址隐藏1. 实现思路1.1 每次点击秒杀按钮,才会生成秒杀地址,秒杀地址不是写死的,是从服务端获取,动态拼接而成的地址。2.代码实现2.1 前端代码2.2 Controller层获取秒杀地址2.3 MiaoshaService层2.4 Controller层 验证path后进行秒杀逻辑业务处理1. 实现思路1.1 每次点击秒杀按钮,才会生成秒杀地址,...
2019-08-04 23:51:46
341
原创 (13)SprintBoot 2.X 使用RabbitMQ实现高并发秒杀接口优化
(12)SprintBoot 2.X 使用RabbitMQ实现高并发秒杀接口优化1. 高并发秒杀接口优化思路:减少数据库访问1.1具体实现流程:1.2 技术实现细节:本地标记 + redis预处理 + RabbitMQ异步下单 + 客户端轮询1.2.1 细节描述:2.代码实现2.1 系统初始化,把商品库存数量加载到Redis2.2 RabbitMQ队列的实现2.2.1 MQConfig,使用Dir...
2019-08-04 22:20:44
743
原创 (12)SprintBoot 2.X 集成RabbitMQ
12)SprintBoot 2.X 集成RabbitMQ1. pom.xml中添加依赖2. application.properties中添加配置3. 4种交换机模式实现(Direct、Topic、Fanout、Headers),[具体原理参考1](https://blog.youkuaiyun.com/WilsonSong1024/article/details/81536171),[具体原理参考2](ht...
2019-08-04 18:27:13
167
原创 (11)SprintBoot 2.X 页面优化技术(页面静态化,前后端分离)(二)秒杀静态化+订单详情静态化
(11)SprintBoot 2.X 页面优化技术(页面静态化,前后端分离)(二)秒杀静态化+订单详情静态化1.秒杀静态化1.1 改造商品详情页面的点击秒杀的业务逻辑,我们调用js方法实现ajax异步发送消息,如果秒杀成功,那么直接由客户端去跳转详情页面1.2 修改MiaoshaController,通过json返回给我们的前台,秒杀成功则返回订单信息,不成功返回相应的数据信息2. 订单详情静态...
2019-08-04 17:06:07
283
原创 (10)SprintBoot 2.X 页面优化技术(页面静态化,前后端分离)(一)商品详情静态化
(10)SprintBoot 2.X 页面优化技术(页面静态化,前后端分离)1.为什么使用页面静态化?2. 代码实现2.1 application.properities中引入依赖2.2 改变goods_list.html的跳转商品详情页方式2.3 修改后端GoodsController接收商品详情页的请求的接口2.4 页面静态化后的goods_detail.htm1.为什么使用页面静态化?...
2019-08-04 15:34:04
726
原创 (9)SprintBoot 2.X 页面优化技术(页面缓存+对象缓存)
(9)SprintBoot 2.X 页面优化技术(页面缓存+URL缓存+对象缓存)1.页面优化技术1.1 页面缓存+URL缓存+对象缓存1.2 页面静态化,前后端分离1.3 静态资源优化1.4 CDN优化2.缓存特征2.1 命中率2.2 最大空间2.3 淘汰策略3.缓存问题3.1 缓存穿透3.2 缓存雪崩3.3 缓存一致性3.4 缓存 “无底洞” 现象4.项目应用4.1 页面缓存4.2 URL...
2019-08-04 14:38:21
440
原创 (8)SprintBoot 2.X 秒杀功能的实现(秒杀业务逻辑处理)
(8)SprintBoot 2.X 秒杀功能的实现(秒杀业务逻辑处理)1.秒杀业务逻辑1.1 前端点击秒杀按钮进入秒杀业务逻辑1.2 秒杀业务逻辑2. 代码实现2.1 MiaoshaController的实现2.2 MiaoshaService的实现2.3 减库存的实现2.3.1 GoodsService2.3.2 GoodsDao2.4 下订单的实现2.4.1 OrderService2.4.2...
2019-08-04 11:50:55
256
原创 (7)SprintBoot 2.X 自定义参数解析器
(7)SprintBoot 2.X 自定义参数解析器1.为什么引入参数解析器2.代码实现2.1 HandlerMethodArgumentResolver接口2.2 创建一个UserArgumentResolver类2.3 注册解析器2.4 业务逻辑代码的使用1.为什么引入参数解析器想办法在直接在controller的请求的方法上面直接注入MiaoshaUser(用户的信息),直接通过方法的...
2019-08-04 10:46:11
604
原创 (5)SprintBoot 2.X JSR303 参数校验 + 全局异常处理
1. JSR303简介JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。此实现与 Hibernate ORM 没有任何关系。 JSR 303 用于对 Java Bean 中的字段的值进行验证。Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证...
2019-08-03 23:36:28
639
原创 (6)SprintBoot 2.X 基于Redis的分布式session
1.基本原理Session的作用Session 是客户端与服务器通讯会话跟踪技术,服务器与客户端保持整个通讯的会话基本信息。客户端在第一次访问服务端的时候,服务端会响应一个sessionId并且将它存入到本地cookie中,在之后的访问会将cookie中的sessionId放入到请求头中去访问服务器,如果通过这个sessionid没有找到对应的数据那么服务器会创建一个新的sess...
2019-08-03 16:28:02
211
原创 (4)SprintBoot 2.X 通用Redis缓存Key的封装
1.为什么要对缓存Key进行封装?当Redis存在大量的缓存引用时会导致一个问题,缓存key冲突,不能识别不同模块中的缓存(如相同的用户id和商品id不做任何修改,直接作为Redis的可以,就可能会导致key冲突)解决:利用一个抽象类,定义BaseKey(前缀),在里面定义缓存key的前缀以及缓存的过期时间从而实现将缓存的key进行封装。让不同模块继承它,这样每次存入一个模块的缓存的时候,加...
2019-08-03 15:25:36
620
2
原创 (3)SpringBoot 2.X明文密码两次MD5处理
1. 用户端:PASS = MD5(明文+固定salt)防止密码在http网络上明文传输,所以需要对password进行一次MD5,然后再传给服务端2. 服务端:PASS = MD5(用户输入+ 随机salt)防止恶意用户获取数据库数据可以通过彩虹表反推出原来的密码3. 为什么使用MD5加密为什么使用MD5加密?由于http是明文传输,当输入密码若直接发送服务端验证,此时被截...
2019-08-03 10:47:58
960
原创 (2) SpringBoot 2.X 集成Redis
1. 阿里云服务器(centos7.3)上安装Redis2. Reids 的SpringBoot 配置pom.xml 添加依赖Redis和Fastjson依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifact...
2019-08-01 20:35:26
227
原创 (1)SpringBoot 2.X 集成Mybatis和Druid数据源
(一)SpringBoot 2.X 集成Mybatis和Druid数据源1.集成Mybatis2. 集成Druid数据源3.代码1.集成Mybatis1.pom.xml中添加依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>...
2019-08-01 20:00:22
670
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人