- 博客(296)
- 资源 (12)
- 收藏
- 关注
原创 乐优商城最终篇
目录一、总结1.1 架构图1.2 包含的微服务1.2.1 网关微服务1.2.2 授权中心微服务1.2.3 购物车微服务1.2.4 评论微服务(新增)1.2.5 配置中心微服务1.2.6 页面详情微服务1.2.7 后台管理微服务1.2.8 订单微服务1.2.9 Eureak注册中心1.2.10 搜索微服务1.2.11 秒杀微服务(新增)1....
2018-12-12 21:56:49 16513 43
原创 SpringBoot集成Thrift
前言:编写一个微服务,即能提供http调用,也可提供rpc调用,并且在rpc调用时采用pb进行序列化。一、项目结构thrift-test - .idea - pom.xml - thrift-client - src - thrift-serverserver端提供服务,client端进行调用二、Server端2.1 pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://m
2021-06-05 21:23:59 609 1
原创 跨域
简单请求只要同时满足以下两大条件,就属于简单请求条件1:使用请求方法GET HEAD POST条件2:Content-type值仅限于以下三个之一application/x-www-form-urlencoded text/plain multipart/form-data
2020-12-19 18:28:06 503 1
原创 Kubernetes快速入门
一、Kubernetes快速入门使用Kubernetes创建Tomcat容器的步骤:1 、定义服务的RC文件(RepliactionController)2、将定义好的RC文件发布到k8s集群中3、创建一个当前服务于kubernetes service关联的SVC文件4、将定义好的SVC文件发布到k8s集群中1.1 环境准备1、关闭CentOS防火墙systemctl disable firewalldsystemctl stop firewalld2、更新yumyum update
2020-06-26 21:00:36 350
原创 二分查找
二分查找一、基本原理二分查找又名折半查找,是一种效率较高的查找方法,时间复杂度是O(logn),要求待查找序列必须有序。二、传统代码模板public int binarySearch(int[] nums, int target) { int low = 0; int high = nums.length - 1; while (low <= high){ ...
2020-02-05 20:04:06 525
原创 2019秋招面经总结
2019.6.12 vivo提前批后台(安卓方向)面向对象的三大特征hashmap的底层实现https和http的区别网页请求流程插入排序小白菜价20W2019.7.6 中兴提前批JVM内存回收算法写单例接口和抽象类的区别设计模式2019.7.9 字节跳动提前批一面:编程题:生产者消费者模式,n个排序数组求前k个数项目中用到多线程的地方,商品详情页面熔断的概念秒杀...
2019-10-14 13:22:07 1300 4
原创 2019春招面经总结
2019.3.4 今日头条(后台开发)自我介绍项目介绍Vue的生命周期Restful接口的作用es底层实现原理Web页面请求过程Set底层实现原理二维矩阵顺时针输出买卖股票的最佳时机json字符串处理2019.3.8 华为(上午)照着简历一条一条扒微服务和模块化的区别为什么使用慢开始和拥塞避免为什么使用红黑树一个二进制文件怎么执行synchronized底层...
2019-10-14 13:20:40 1293 9
原创 ShareX+七牛云搭建博客图床
一、安装ShareX二、配置文件示例{ "Name": "qiniu", "DestinationType": "ImageUploader, FileUploader", "RequestType": "POST", "RequestURL": "http://up-z0.qiniu.com/", "FileFormName": "file", "Arg...
2019-07-02 15:03:06 1444 2
原创 Spring Boot集成Hprose
一、项目搭建引入SpringBoot和Hprose相关依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...
2019-06-19 21:31:46 873 1
原创 第七天课程预览和发布
文章目录一、Eureka注册中心1.1 Eureka介绍1.2 高可用Eureka搭建1.3 服务注册1.3.1 将CMS注册到Eureka Server1.3.2 将manage-course注册到Eureka Server二、Feign远程调用2.1 Ribbon2.1.1 Ribbon介绍2.1.2 Ribbon测试2.2 Feign2.2.1 Feign介绍2.2.2 Feign测试三、课...
2019-05-27 15:04:47 953
原创 奇偶链表
一开始老是想着交换节点的值,但是这特么是链表又不是数组,直接把奇数位的节点拿出来拼成一条链,偶数位也拼成一条链,然后将后者拼接到前者末尾,搞定。。。。。。。。。。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ...
2019-05-10 13:51:28 375 1
原创 Pow(x,n)
class Solution { public double myPow(double x, int n) { boolean tag = false; double result = 1; if (n == 0){ return 1d; } if (n < 0){ ...
2019-05-09 13:49:18 206
原创 下一个排列
很诡异的题,看了好几遍题没看懂说什么,然后去搜了一下,方法如下:从右往左遍历 找到第一个索引满足:,如果不存在就反转整个数组 再找第二个索引,满足: 交换和 最后从开始反转整个数组class Solution { public void nextPermutation(int[] nums) { int length = nums.length; ...
2019-05-09 13:01:26 212
原创 两数相除
思路一不能用除法,那就用乘法,设置一个计数器,然后通过比较与的大小,让计数器累加,不满足条件跳出循环即可。先对除数和被除数进行处理,都取绝对值,最后返回结果的时候再处理,因为题目设置的是整数范围,所以为了确保处理的正确性,使用类型的临时变量。 public static int divide(int dividend, int divisor) { if (di...
2019-05-07 13:01:29 273
原创 SpringBoot原理分析(初级版本)
一、启动类package com.example;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * @Author: 98050 * @Time: 2019-05-02 20:06 *...
2019-05-06 22:28:54 1454
原创 两两交换链表中的节点
思路采用递归的方式进行求解。先找递归终止的条件:没有交换的时候就递归终止,即当链表只剩一个节点或者没有节点的时候。找返回值:因为是两两交换,所以递归的每一层返回的都是已经交换完成的链表。每层递归要做的事情:每一层可以保存两个节点和,我们要做的事就是交换它两的位置:,那么为了让每一次递归返回的链表连接起来,那么还需要做的是:上一次递归返回的结果。具体执行过程如下代码...
2019-04-29 10:33:31 338
原创 Z字形变换
思路:直接模拟Z字变换的过程,将每个字符添加到对应的行即可。用一个计数器来记录当前字符应该添加到哪一行,当时让重新置0即可。在这个过程中要设置一个标记位用来规定方向,一开始是从上到下为每一行中添加字符,当把置0后,那么方向就要改变,换成从下到上,所以通过来控制添加的顺序。package leetcode.problem6;import java.util.ArrayList;i...
2019-04-24 13:38:09 192
原创 括号生成
方法一:暴力破解生成所有可能的字符串组合,然后检查有效的字符串。一共可以生成的字符串个数为:为了生成所有序列,我们使用递归。长度为n的序列就是'('加上所有长度为n-1的序列,以及')'加上所有长度为n-1的序列。为了检查序列是否为有效的,我们会跟踪平衡,也就是左括号的数量减去右括号的数量的净值。如果这个值始终小于零或者不以零结束,该序列就是无效的,否则它是有效...
2019-04-20 14:03:40 246
原创 第六天课程管理
文章目录一、我的课程1.1 需求分析1.2 PageHelper1.3 前端页面说明1.4 API接口1.5 POJO1.6 Mapper1.7 Service1.8 Controller1.9 测试1.10 前端1.10.1 API1.10.2 获取课程列表1.10.3 调用1.10.4 测试二、新增课程2.1 需求分析2.2 课程分类查询2.2.1 介绍2.2.2 数据结构2.2.3 分类查询...
2019-04-20 10:23:58 881
原创 第五天课程计划管理
文章目录一、课程管理1.1 需求分析1.2 环境搭建1.2.1 前端工程1.2.2 后端工程二、课程计划2.1 课程计划查询2.1.1 需求分析2.1.2 页面原型2.1.3 API接口2.1.3.1 数据模型2.1.3.2 自定义Tree组件数据2.1.3.3 接口定义2.1.4 课程管理服务2.1.4.1 sql2.1.4.2 Mapper2.1.4.3 Service2.1.4.4 Cont...
2019-04-12 19:27:17 873 2
原创 第四天CMS页面发布
文章目录一、页面发布1.1 技术方案1.2 页面发布消费方1.2.1 需求分析1.2.2 创建Cms Client工程1.2.3 RabbitmqConfig配置类1.2.4 定义消息格式1.2.5 PageDao1.2.6 PageService1.2.7 ConsumerPostPage1.3 页面发布生产方1.3.1 需求分析1.3.2 RabbitMQ配置1.3.3 API接口1.3.4 ...
2019-04-12 19:26:52 880 1
原创 第三天页面静态化和页面预览
文章目录一、页面静态化需求1.1 为什么要进行页面管理1.2 如何修改页面的内容1.3 如何对页面进行静态化1.4 页面静态化及页面发布流程如下图二、FreeMaker入门三、页面静态化3.1 页面静态化流程3.2 数据模型3.2.1 轮播图DataUrl接口3.2.1.1 需求分析3.2.1.2 接口定义3.2.1.3 DAO3.2.1.4 Service3.2.1.5 Controller3....
2019-04-12 19:26:27 583
原创 FreeMaker入门
文章目录一、FreeMarker介绍二、为什么使用FreeMarker三、FreeMarker快速入门3.1 创建测试工程3.2 创建模型类3.3 创建模板3.4 创建Controller3.5 创建启动类3.6 测试四、FreeMarker基础4.1 核心指令4.1.1 数据模型4.1.2 List指令4.1.3 遍历Map数据4.1.4 if指令4.2 其它指令4.2.1 运算符4.2.2 空...
2019-03-28 15:51:56 467
原创 第二天CMS前端页面查询开发
一、CMS前端页面查询(分页)开发1.1 页面原型1.1.1 创建页面1.1.1.1 页面结构在model目录创建cms模块的目录结构在page目录创建pageList.vue:<template> <textarea>测试</textarea></template><script> export defa...
2019-03-27 10:45:32 1270
原创 第一天CMS服务端开发
一、CMS需求分析1.1 什么是CMSCMS (Content Management System)即内容管理系统,不同的项目对CMS的定位不同,比如:一个在线教育网站,有些公司认为CMS系统是对所有的课程资源进行管理,而在早期网站刚开始盛行时很多公司的业务是网站制作,当时对CMS的定位是创建网站,即对网站的页面、图片等静态资源进行管理。CMS有哪些类型?上边也谈到每个公司对每个项目的CMS...
2019-03-22 19:57:12 1281 1
原创 买卖股票的最佳时机
方法一:暴力破解 public int maxProfit(int[] prices) { int result = Integer.MIN_VALUE; for (int i = 0; i < prices.length; i++){ for (int j = i+1; j < prices.length; j+...
2019-03-21 22:53:38 313
原创 最长回文字串
给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为1000。动态规划代码: //动态规划 public static String longestPalindrome(String s) { final int length = s.length(); int maxLength = 0; i...
2019-03-21 21:58:31 257
原创 四数之和
给定一个包含n个整数的数组nums和一个目标值target,判断nums中是否存在四个元素a,b,c和d,使得a+b+c+d的值与target相等?找出所有满足条件且不重复的四元组。思路:与处理三数之和一样,先对nums排序,然后固定前两个数字,在剩余的数字中查询满足条件的数字。代码:public List<List<Integ...
2019-03-20 22:41:14 170
原创 三数之和
给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。思路:首先对数组排序,使用快排。然后用一个for来遍历数组,首先判断该数是否大于0,如果大于0,那么就直接break掉,因为后面的数加起来不可能等于0;如果小于0,首先计算target = 0 - nums[i]的值,然后在[i+...
2019-03-20 22:40:14 811
原创 链表中环的入口结点
思路一:借助一个list遍历链表,将遍历过的结点都放入list中,当遇到重复结点时,说明找到了环的入口public ListNode EntryNodeOfLoop(ListNode pHead) { ArrayList<ListNode> list = new ArrayList<>(); while (pHead != ...
2019-03-20 11:56:13 135
原创 爬楼梯
思路:爬到n阶的方法有两种:1. 从n-1阶爬上来2. 从n-2阶直接上来同理到达n-1阶的方法也有两种:从n-2阶上或者从n-3阶上,到达n-2阶的方法也有两种:从n-3阶上或者从n-4阶上………………递归问题,要想求到达n阶的方法数,必须求到达n-1阶和n-2阶的方法数。得到递归方程:f(n)=f(n-1)+f(n-2)那么初始状态为:f(1) = 1,f(2...
2019-03-15 21:34:11 203
原创 不同路径(二)
在一的基础上增加了障碍:思路一样,状态转移方程不变,但是要改变转移的条件。为了便于计算,障碍物赋值-1情况一:边界处理当边界中含有障碍物时,那么障碍物以后的位置都要赋值-1,不可达。情况二:中间当不在边界上时,计算经过每一个位置的路径M【i】【j】时,需要注意,当M【i-1】【j】和M【i】【j-1】都不为-1的时,它两的和才赋值给M【i】【j】;只要它两中有一个为-1...
2019-03-15 21:23:58 209
原创 求不同路径
思路:动态规划重点:问题分解因为只能向右或者向下移动,那么第一行和第一列中的每一格都设为1,其余格的值都等于M【i,j】 = M【i-1,j】+M【i,j-1】代码:public int uniquePaths(int m, int n) { int[][] M = new int[m][n]; for(int i = 0; i < ...
2019-03-15 21:22:50 162
原创 手写MyBatis
一、MyBatis与数据库的交互方式使用传统的MyBatis提供的API使用Mapper接口二、使用Mapper接口MyBatis 将配置文件中的每一个 节点抽象为一个 Mapper 接口:这个接口中声明的方法和 节点中的<select|update|delete|insert> 节点项对应,即<select|update|delete|insert> 节点的...
2019-03-06 16:10:35 716
原创 二叉树的右视图
思路一:对树进行层次遍历(从左往右),保存每层的最后一个节点/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x;...
2019-03-01 14:18:58 600
原创 二叉树与链表
一、二叉树转链表思路一:递归版本思路是先利用DFS的思路找到最左子节点,然后回到其父节点,把其父节点和右子节点断开,将原左子结点连上父节点的右子节点上,然后再把原右子节点连到新右子节点的右子节点上,然后再回到上一父节点做相同操作。步骤如下:首先找到最左节点3 1 / \ 2 5 / \ \3 4 6断开父节点2和4的连接 把3连...
2019-02-25 13:58:40 3142
原创 手写SpringMVC
一、Spring MVC的运行流程⑴ 用户发送请求至前端控制器DispatcherServlet⑵ DispatcherServlet收到请求调用HandlerMapping处理器映射器。⑶ 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。⑷ DispatcherServlet通过HandlerAdap...
2019-02-23 18:39:16 429 1
原创 字符串的排列
题目输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。分析先确定字符串中第i个位置上的字符,剩余的字符递归进行全排列。例如,确定第一个位置上的字符为a,那么继续求bc的全排列就可以找到所有以a开头的字符串;确定第一个位置上的字符为b,求ac的全排列;确定第一个位置...
2019-02-19 13:17:14 226
原创 @Scope 详解
一、概念bean在spring容器中的创建方式。二、Scope的五种取值 1)singleton (单一实例) 此取值时表明容器中创建时只存在一个实例,所有引用此bean都是单一实例。此外,singleton类型的bean定义从容器启动到第一次被请求而实例化开始,只要容器不销毁或退出,该类型的bean的单一实例就会一直存活,典型单例模式,如同servlet在web容器中的生命周...
2019-02-18 20:21:34 1234
乐优商城前端
2018-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人