自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java后端

项目经验 + 技术原理

  • 博客(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 254

原创 解决matplotlib画多幅子图时,出现图形部分重叠的问题

1.问题描述:问题解决前问题解决后2.解决方法: tight_layout()函数3. fig.tight_layout()函数解释 :功能:使得子图横纵坐标更加紧凑,主要用于自动调整图区的大小以及间距,使所有的绘图及其标题、坐标轴标签等都可以不重叠的完整显示在画布上。参数:Pad:用于设置绘图区边缘与画布边缘的距离大小w_pad:用于设置绘图区之间的水平距离的大小...

2020-04-30 19:41:00 9276

原创 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 2404

原创 Linux下tensorFlow各版本清华镜像以及查看TensorFlow安装版本和路径

https://pypi.tuna.tsinghua.edu.cn/simple/tensorflow/

2020-01-02 11:30:35 3260

原创 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 638

原创 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 233

原创 0919滴滴笔试编程题代码+思路

第一题垃圾分类首先根据题意,一堆垃圾最多只有两个约束条件,相当于一个点最多连两条边,那么这个图就只存在孤立点、单链和简单的环,这里我们需要注意,有奇数个点的环是非法的首先是解除非法的情况,就是说对于一个有奇数点的环,我们要删去一个点(n- -)然后对于所有的合法情况,我们会发现,所有的环或者是链,其染色后的两种颜色的节点个数差最多是1个也就是说在分配两个车的垃圾的时候我们至多会出现一个车的...

2019-09-20 10:11:56 691

原创 LeetCode-动态规划

完全平方数给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.class Solution { /** * 直接思路:找出N最接近的平方数,再循环找出剩余最接近的平方数集合(结果可能不是最优) * 比如:12...

2019-09-19 13:56:31 245

原创 LeetCode-分治

为运算表达式设置优先级LeetCode给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。输入: "2-1-1"输出: [0, 2]解释: ((2-1)-1) = 0 (2-(1-1)) = 2public List<Integer> diffWaysToComp...

2019-09-19 10:05:24 89

原创 回溯

排列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 131

原创 顺丰科技笔试(第一题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 288

原创 剑指OFFER

剑指OFFER部分题解23. 链表中环的入口结点题目描述解题思路23. 链表中环的入口结点题目描述一个链表中包含环,请找出该链表的环的入口结点。要求不能使用额外的空间。解题思路使用双指针,一个指针 fast 每次移动两个节点,一个指针 slow 每次移动一个节点。因为存在环,所以两个指针必定相遇在环中的某个节点上。假设相遇点在下图的 z1 位置,此时 fast 移动的节点数为 x+2...

2019-09-06 12:35:24 230

原创 20届携程秋招笔试

携程笔试2.括号里的反转字符串((ab)cd)第一次翻转----->(bacd)-------> dcab思路:非右括号入栈,右括号出栈直到遇到左括号,然后刚出栈的除左括号入栈public static String reverse(String str){ Stack<Character> stack = new Stack<>();...

2019-09-05 10:55:10 513

原创 2019Java秋招面经

饿了吗 一面(2019.8.31)1. 自旋锁的使用条件2. Dubbo3. 有没有了解别的

2019-08-31 16:10:07 355

原创 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 969 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 101

转载 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 154

原创 (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 2306

转载 浅析前后端分离

嗯。再来说一下,为什么要做前后端分离。前端后端有两种协作方式,一种可以称之为是服务器端渲染,一种是叫做前后端分离。这两种方式的差别是什么呢?服务器端渲染的方式,是指在服务器端就将网页直接生成,浏览器这里拿到的是一整个网页,CSS和JS的部分是在浏览器端执行的,而网页的内容部分,也就是数据,是由服务器端生成的。这叫做服务器端渲染。至于你是用NodeJS,还是用PHP,还是Python,还是Java,...

2019-08-05 19:32:19 237

原创 (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 786

原创 (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 708

原创 (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 317

原创 (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 711

原创 (12)SprintBoot 2.X 集成RabbitMQ

12)SprintBoot 2.X 集成RabbitMQ1. pom.xml中添加依赖2. application.properties中添加配置3. 4种交换机模式实现(Direct、Topic、Fanout、Headers),[具体原理参考1](https://blog.csdn.net/WilsonSong1024/article/details/81536171),[具体原理参考2](ht...

2019-08-04 18:27:13 144

原创 (11)SprintBoot 2.X 页面优化技术(页面静态化,前后端分离)(二)秒杀静态化+订单详情静态化

(11)SprintBoot 2.X 页面优化技术(页面静态化,前后端分离)(二)秒杀静态化+订单详情静态化1.秒杀静态化1.1 改造商品详情页面的点击秒杀的业务逻辑,我们调用js方法实现ajax异步发送消息,如果秒杀成功,那么直接由客户端去跳转详情页面1.2 修改MiaoshaController,通过json返回给我们的前台,秒杀成功则返回订单信息,不成功返回相应的数据信息2. 订单详情静态...

2019-08-04 17:06:07 262

原创 (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 678

原创 (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 413

原创 (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 229

原创 (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 572

原创 (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 610

原创 (6)SprintBoot 2.X 基于Redis的分布式session

1.基本原理Session的作用Session 是客户端与服务器通讯会话跟踪技术,服务器与客户端保持整个通讯的会话基本信息。客户端在第一次访问服务端的时候,服务端会响应一个sessionId并且将它存入到本地cookie中,在之后的访问会将cookie中的sessionId放入到请求头中去访问服务器,如果通过这个sessionid没有找到对应的数据那么服务器会创建一个新的sess...

2019-08-03 16:28:02 182

原创 (4)SprintBoot 2.X 通用Redis缓存Key的封装

1.为什么要对缓存Key进行封装?当Redis存在大量的缓存引用时会导致一个问题,缓存key冲突,不能识别不同模块中的缓存(如相同的用户id和商品id不做任何修改,直接作为Redis的可以,就可能会导致key冲突)解决:利用一个抽象类,定义BaseKey(前缀),在里面定义缓存key的前缀以及缓存的过期时间从而实现将缓存的key进行封装。让不同模块继承它,这样每次存入一个模块的缓存的时候,加...

2019-08-03 15:25:36 590 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 923

原创 (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 207

原创 (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 648

空空如也

空空如也

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

TA关注的人

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