自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ArrayList面试问题

1.ArrayList有⽤过吗?它是⼀个什么东⻄?可以⽤来⼲嘛?     有⽤过,ArrayList就是数组列表,主要⽤来装载数据,当我们装载的是基本类型的数据int,long,boolean,short,byte…的时候我们只能存储他们对应的包装类,它的主要底层实现是数组Object[] elementData。     与它类似的是LinkedList,和LinkedList相⽐,它的查找和访问元素的

2020-06-30 23:57:42 588

原创 合并两个有序链表21

方法一:递归思路我们可以如下递归地定义两个链表里的 merge 操作(忽略边界情况,比如空链表等):也就是说,两个链表头部值较小的一个节点与剩下元素的 merge 操作结果合并。算法我们直接将以上递归过程建模,同时需要考虑边界情况。如果 l1 或者 l2 一开始就是空链表 ,那么没有任何操作需要合并,所以我们只需要返回非空链表。否则,我们要判断 l1 和 l2 哪一个链表的头节点的值更小,然后递归地决定下一个添加到结果里的节点。如果两个链表有一个为空,递归结束。class Solution {

2020-06-30 00:56:32 437

原创 移动零283

指针我们创建两个指针i和j,第一次遍历的时候指针j用来记录当前有多少非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪,第一次遍历完后,j指针的下标就指向了最后一个非0元素下标。第二次遍历的时候,起始位置就从j开始到结束,将剩下的这段区域内的元素全部置为0。class Solution { public void moveZeroes(int[] nums) { if(nums==null) { return; } //第一次遍历的时候,j指针记录非0的个数,只要是非0的统

2020-06-30 00:37:15 135

原创 两数之和1

方法一:暴力法暴力法很简单,遍历每个元素 xx,并查找是否存在一个值与 target - xtarget−x 相等的目标元素。class Solution { public int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.length; j++) {

2020-06-30 00:28:19 399

原创 删除排序数组中的重复项26、80

方法:双指针法算法数组完成排序后,我们可以放置两个指针 i和 j,其中 i 是慢指针,而 j 是快指针。只要 nums[i]=nums[j],我们就增加 j 以跳过重复项。当我们遇到nums[j] =nums[i] 时,跳过重复项的运行已经结束,因此我们必须把它(nums[j])的值复制到 nums[i + 1]。然后递增 i,接着我们将再次重复相同的过程,直到 j 到达数组的末尾为止public int removeDuplicates(int[] nums) { if (nums.len

2020-06-30 00:08:42 366

原创 环形链表141

方法 1:哈希表想法如果我们用一个 Set 保存已经访问过的节点,我们可以遍历整个列表并返回第一个出现重复的节点。class Solution { public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } Set<ListNode> set = new HashSet<

2020-06-29 23:43:02 131

原创 两两交换链表节点24

方法一:迭代我们把链表分为两部分,即奇数节点为一部分,偶数节点为一部分,A 指的是交换节点中的前面的节点,B 指的是要交换节点中的后面的节点。在完成它们的交换,我们还得用 prevNode 记录 A 的前驱节点。算法:1.firstNode(即 A) 和 secondNode(即 B) 分别遍历偶数节点和奇数节点,即两步看作一步。2.交换两个节点: firstNode.next = secondNode.next secondNode.next = firstNode3.还需要更新 prev

2020-06-29 23:16:37 323

原创 反转链表(206)

1.双指针法1.1 解题思路1.我们可以申请两个指针,第一个指针叫 prev,最初是指向 null 的。2.第二个指针 curr 指向 head,然后不断遍历 curr。3.每次迭代到 curr,都将 curr 的 next 指向 prev,然后 prev 和 curr 前进一位。4.都迭代完了(curr 变成 null 了),prev 就是最后一个节点了。1.2 代码思路 /** * 双指针迭代 * 我们可以申请两个指针,第一个指针叫 pre,最初是指向 null 的。

2020-06-27 23:34:37 306

原创 分布式解决方案-解决网站跨域请求

1.什么是网站跨域        跨域原因产生:在当前域名请求网站中,默认不允许通过ajax请求发送其他域名。        两个项目之间使用ajax(前端类似后端的httpclient)实现通讯,如果浏览器访问的域名和端口与ajax请求访问的地址不一样的情况下,默认情况下浏览器会有安全机制,这个机制跨域问题,会无法获取返回结果。原理图:2

2020-06-26 15:34:34 466 3

原创 高并发情况下分布式全局Id生成

全局id生成高并发情况下,生成分布式全局id策略1、注意幂等性且全局唯一性2、注意安全性,不能被猜疑3、趋势递增性订单号命名规则:比如“业务编码 + 时间戳 + 机器编号[前4位] + 随机4位数 + 毫秒数”。1、利用全球唯一UUID生成订单号优缺点1.1 从利用全球唯一UUID生成订单号UUID基本概念:UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。UUID组成部分:当前日期和时间+时钟序列+随机数+全局唯一的IEEE机器识别号全局唯一的IEEE机器

2020-06-26 11:01:02 259

原创 互联网安全架构--信息加密与密钥管理

1.单向散列加密散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:1、MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向

2020-06-23 21:58:01 651 1

原创 互联网安全架构--安全接口安全设计

1.互联网开放平台设计1.1.需求:现在A公司与B公司进行合作,B公司需要调用A公司开放的外网接口获取数据,如何保证外网开放接口的安全性。1.2.常用解决办法:2.1 使用加签名方式,防止篡改数据2.2 使用Https加密传输2.3 搭建OAuth2.0认证授权2.4 使用令牌方式2.5 搭建网关实现黑名单和白名单1.3.URL转码1.3.1什么是URL转码不管是以何种方式传递url时,如果要传递的url中包含特殊字符,如想要传递一个+,但是这个+会被url会被编码成空格,想要传递

2020-06-23 21:47:58 364

原创 互联网安全架构--安全漏洞

常见Web安全漏洞1.XSS攻击1.1什么是XSS攻击手段XSS攻击使用Javascript脚本注入进行攻击例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie远程发送给黑客服务器端。<script>alert('sss')</script><script>window.location.href='http://www.itmayiedu.com';</script>对应html源代码: &lt;script

2020-06-23 21:31:04 442

原创 Elasticsearch+Logstash+Kiabana

1.Logstash环境搭建1.1Logstash环境安装1、上传logstash安装包(资料)2、解压tar –zxvf logstash-6.4.3.tar.gz3、在config目录下放入mayikt02.conf 读入并且读出日志信息1.2将Logstash输入到ES中input { # 从文件读取日志信息 输送到控制台 file { path => "/usr/local/elasticsearch-6.4.3/logs/myes.log"

2020-06-22 23:44:31 238

原创 SpringBoot整合Elasticsearch

SpringBoot整合ESSpringBoot整合ES实现网盘搜索引擎项目环境搭建数据结构分析POST /clouddisk/_mapping/disk{ "disk": { "properties": { "baiduaddres": { "type": "keyword" }, "browsetimes": { "type": "long"

2020-06-22 22:33:26 415

原创 elasticsearch倒排索引原理与中文分词器

1. 索引的方式:1.1 正向索引正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护;因为索引是基于文档建立的,若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面。若是有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除。但是在查询的时候需对所有的文档进行扫描以确保没有遗漏,这样就使得检索时间大大延长,检索效率低下。尽管正排

2020-06-15 01:38:43 962

原创 Elasticsearch安装和入门

1.Elasticsearch简单介绍        Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。Elasticsea

2020-06-15 00:08:45 308

M5.6.45-linux-glibc2.12-x86_64.tar.gz

linux下mysql安装包资源分享,有需要的请自取,有需要其他资源的,可以在博客里面留言,tomcat,jdk等

2019-09-08

空空如也

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

TA关注的人

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