08 2018 档案
摘要:将整数字符串转换成整数值 给定一个字符串str,如果str符合日常书写的规范,并属于32位整数的范围,返回str所代表的整数值,否则返回0。如 023, A13, 2147483648,均返回0。 【解题思路】 定义四个变量,flag表示正负,res表示结果,minq表示最小值除以10的商,minr
阅读全文
摘要:判断两个字符串是否互为旋转词 如果一个字符串str,把字符串str前面的任意部分挪到后面形成的字符串叫做str的旋转词。给定两个字符串,判断是否互为旋转词。比如 a="abcd",b="cdab",true a="abcd",b="bcad",false 【解题思路】 如果长度不一样,肯定是fals
阅读全文
摘要:去掉字符串中连续出现K个0的子串 给定一个字符串str,和一个整数k, 如果str中正好有连续K 个'0'字符出现,把连续的 k 个 '0'去掉,返回处理后的子串。 【解题思路】 1. 定义两个变量,count表示'0'连续出现的次数,start表示连续出现的开始位置, 2. 将去掉连续0 的时机放
阅读全文
摘要:海量数据处理面试题与方法大总结 针对海量数据处理问题,是面试中的常见考点,发现一个不错的帖子,整理如下。 1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限
阅读全文
摘要:collection和map集合类知识点总结 最近在准备java基础知识的总结,发现对于集合类的知识点很多很杂,借鉴网上的帖子,整理如下。 一、定义 一、定义 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构,在java中的集合框架主要分为两部分:Collection接口和Map接口。 二
阅读全文
摘要:字符串中数字子串的求和 给定一个字符串str,求其中全部数字串所代表的数字之和 1. 忽略小数点,“ A1.3 ” 表示的数字就是包含两个数字 1 和 3 2. 紧贴数字的左边出现 “-”,其连续出现的数量如果为奇数,就视为 负,如果为偶数,就视为 正 “ A-1BC--23” 表示的是 -1 和
阅读全文
摘要:判断两个字符串是否互为变形词 给定两个字符串 str1 和str2 ,如果两个字符串中出现的字符种类一样,次数也一样,则互为变形词,实现一个函数判断两个字符串是否互为变形词。例如 str1=“123”,str2=“132”,true; str1=“123”,str2=“1332”,false; 【解
阅读全文
摘要:数据库分库分表 一、常见的主键生成策略 1. UUID:非常长,占用存储空间,建立索引和基于索引进行查询时都会存在性能问题。 2. Flickr的主键生成策略:建立两台以上的数据库ID生成服务器,每个服务器都有一张记录各表当前ID的Sequence表,但是Sequence中ID增长的步长是服务器的数
阅读全文
摘要:单点登录原理与实现 关于单点登录,在项目中用到的是对于cookie中设置的domain 为二级域名,这样二级域名下的cookie都可以共享,将sessionId存储在cookie中,对于session信息,则是将sessionId 和session信息分别作为键值对存储在Redis中,这样可以简单实
阅读全文
摘要:Redis的持久化策略 Redis的持久化策略主要有两种,下面主要对每种策略的特点及应用简要总结。 ○ RDB § RDB:是redis的默认持久化机制。相当于照快照。保存的不是数据,保存的是一种状态。20G数据 > 几kb快照 § 优点:快照保存数据速度极快,还原数据速度极快;适用于灾难备份,复制
阅读全文
摘要:生产者-消费者模式 1. 阻塞队列 生产者消费者模式中,一般采用阻塞队列来实现。阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。 2. 阻塞队列的运用 当队列中没有数据的
阅读全文
摘要:单例模式 设计目的:想在系统中只能出现一个类的实例 特点:私有构造函数;类内部维护一个实例;生成一个静态获取实例的方法(延迟加载实例) 实现方式:双重检测方式;静态内部类方式;枚举类实现 双重检测方式 静态内部类 枚举类实现
阅读全文
摘要:代理模式 代理类和委托类有相同的接口,一个代理类的的对象与一个委托类的对象关联。代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法来提供特定的服务。代理类就像是明星,委托类就像是经纪人。关于代理模式的原理,不做过多的介绍,网上有很多帖子,本文主要侧重于代码的实现。 静态代理: 因为
阅读全文
摘要:按照左右半区的方式重新组合单链表 给定一个单链表的头部节点 head,链表长度为 N ,如果 N 为偶数,那么前 N/2 算作前半区,后 N/2 算作后半区,如果 N 为奇数,那么前 N/2 算作前半区,后 N/2 + 1算作后半区。左半区从左到右依次记为 L1->L2->...,右半区从左到右依次
阅读全文
摘要:合并两个有序的单链表 给定两个有序单链表的头节点 head1 和 head2,合并两个有序链表,合并后链表依然有序,并返回合并后的链表的头节点,例如:0->2->3->7->null 和 1->3->5->7->9->null,合并后的链表为 0->1->2->3->3->5->7->7->9->n
阅读全文
摘要:Java中的线程池 一、线程池的好处 1. 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2. 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 3. 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线
阅读全文

浙公网安备 33010602011771号