暂时未有相关云产品技术能力~
暂无个人介绍
自己也想写一个类似这种的特效,就是鼠标放图片上时图片会悬停,就是那种戳一下动一下的效果,本文会先分解实现的步骤,使用到知识点都会有案例,那么我们开始吧。
在队长战场小包和队员Ylimhs的齐心协力下,捉迷藏的运营大大们的小游戏算是成功上线了,之前队长战场小包有对整个游戏的总体进行了一个大概的介绍和主要模块的展示,那今天由我来带大家看看,我们当初是如何设计翻牌模块的。
因为写的几个创意代码的特效都十分的简单,就合并到这篇文章里了,文章会从实现思路和遇到的问题两方面讲解实现如何现实这些简单的特效。
实际上针对Spring Cloud的面试题更加深入的是上面这些组件的原理,比如Ribbon中一般使用的是什么算法, Gateway里的自定义路由应该怎么做,Feign组件的底层是什么,它与Http有什么区别,这些都是值得我们去深入了解的。
这个题目有点麻烦,如果是使用的暴力法,会直接超时,使用自顶向下的归并排序的话,其实也没有多大的提升,目前是没有好的解决方案的,后期继续思考吧。
对于需要一直寻找到最终结果或者条件的题目,一般使用回溯算法,还有就是不要忽略题目的隐藏的一些点,如果忽略,可能某个测试用例就会报错,同时也要做判空处理。
这个题为什么借助栈会变得很容易呢,因为都是在利用栈先进先出的特点,然后匹配左右括号,如果只有其中之一则不满足,不满足的从栈里取出,剩下的就是满足条件的。
Spring一直都是经典中的经典,所以是必须掌握的,而且里面有很多优秀的设计模式的巧妙使用,我们也可以借鉴,然后运用到实际的开发中去。
JVM的面试题一般都很有难度,需要面试者对JVM有很透彻的理解,不然即使把'八股文背'下来,不能消化理解加实际操作验证那么知道的只是皮毛而已,再深入点就没法回答了。
关于Redis还有深入的问题是它为什么这么快?它的底层使用了什么使得它存取数据这么快?还有就是针对情况不同选择其持久性类型,这些都是值得深入思考的问题。
对于回溯算法大家都不陌生,为此还有题友写成了回溯算法的模板,只要按模板套题都能灵活解题,算是开辟了一种做题的方式吧,有的算法题还是很磨人的。
其实这个题用题友的双指针解法比较简洁而且效率更高,针对数据是有序,而且相同元素最多保留N位的问题可以使用此方案解题。
关于分布式这块的面试中,面试官问得最多的就是如何解决分布式事务,用什么方法,还有没有更好的方法,题目是开放性的,所以结合工作中的遇到的问题和解决方案回答即可。
针对Zk的面试题而言,很多面试官喜欢问的就是注册和watcher这两大模块,这两块也是zk的核心,所以必须要掌握。
可以看到题目已经有限制使用现有函数sort了,也就是很多时候我们在解题的时候会使用到现有的函数,算是偷懒了,这也是一个提醒,做题的时候一定要把题目审清楚,不然写完了才发现不对。
关于回文的题目,核心思路还是依次比较,找到回文,然后进行其他的操作,另外官方题解中心扩散法也是一个最优解。
解这道题时,我首先考虑的是遍历,后面感觉用遍历不太对,因为有一个测试用例总是通不过,后面看了官方题解才知道问题点在哪里,还有就是如果用递归的话比遍历要好容易理解。
MySQL考察的点其实在面试中不是很多,面试官一般喜欢问的是Spring还有其他开源框架,还有就是MySQL的架构也要了解。
关于Mybatis很多小伙伴都不陌生,其实它比Spring的架构简单多了,只要弄清楚,一条SQL是然后执行的。掌握其原理基本上就差不多了,其他一些譬如SQL注入这块的,在我们的日常开发中都知道的。
Dubbo的面试题远远不止上面这些,这些但是我之前在面试中遇到频率较高的,因为面试的公司不同,业务不同,公司的技术侧重点也会不同,所以有时候背'八股文'是没有意义的,要自己多看多思考才行。
双指针的查找使用范围很广,也是必须掌握的一种解题方案,由上题比对我们也可以看到,在算法中要考虑到多种情况,如果遗漏掉某一些环节,就有可能发生异常,所以算法还是对思维严谨性要求比较高的,所谓失之毫厘差之千里。
这是一道特别好的题目,虽然题目难度是简单,其实我们往往都会把简单问题复杂化,所以会导致问题越解越难,这就是要看看我们的大脑够不够灵光了。
连续序列系列的题目也很多,我大概看了一下,解决方案里动态规划用得很多还有就是借助哈希表去实现,只能说题友们的思路真的很好,还有就是也应该尝试一下写出最优解。
做这类的题目可能最先想到的都是暴力法,直接双层循环,依次比较,但是时间复杂度就高了,如官方题解里借助Hashset的特点去存储元素的话其实更加的简洁明了一些,还是得多看看题解,多学习学习这种思路。
对于二叉树的题目很多就是涉及到遍历二叉树的,针对其一般使用的方法有枚举,深度优先搜索以及双向DFS,当然其难度系数就有点高了,遇到难得题目可以暂时跳过,不然一直解不出来也打击信心。
双指针法确实在很多算法题里都遇到了,其用法很普遍,掌握起来也不难,还有就是回文系列的题目都有共通点,做多了就明白里面的
题友的哈希映射法,不需要额外的空间,相比较我这个,使用了现成方法的,其实优秀很多,当然如果在实际的业务开发中,需要用到算法时,包装过的方法有时候是比较有优势的。
关于二叉树的题目,深度优先和广度优先是最佳首选,其次就是利用hash或者栈的特点结合,也可以快速解决问题,另外还是没有找到之前动态二叉树的网站,估计已经没了,不然更加容易理解。
MQ的题目在面试和笔试中很常见,所以得用心去准备一下,挑关键点进行解答即可,就在考察实现原理这块时,也不可能说百分之百的记住每一个步骤,大体的流程知道就可以了。
有时候一些题目如果借助额外的空间,比如hash这种会事半功倍,但是其实这种算是一种'投机取巧'的做法,在现有的前提是实现算法,解题的最佳方法应该是不借助额外的空间,即减小其时间复杂度。
在本题中使用栈作为媒介确实要比使用MAP好很多,而题友的想法更好,不用借助其他媒介,节省了使用空间,感觉自己还是很愚笨,在算法题上有先入为主的思想,比较容易吃亏,还是得多思考,换角度思考,不怎么做还能怎么做。
感觉做算法题以来,看到这种类似的题型就是循环,然后匹配,实际上时间复杂度这些没有去关注,比如这一题,题友的做法就少了一层循环,时间复杂度肯定比我的小,还是老生常谈的问题,慢慢积累吧,算法这事急不得。
当看到这个题目时我第一个想法是循环遍历,但是思路不对,然后去看了题友的解题思路才想有点想法。有时候没有思路也可以参考题友的做法,我们的最终目的是学习而不是跟自己硬磕,理解思路,学会其思路也是一种收获。
有时候看到很多题解都是使用现有的方法去实现,其实管它黑猫白猫,能解题就行了,我之前面试遇到算法题的第一印象是不会考虑现有方法的,比如list的排序,肯定不会考虑list.sort,所以有时候还是得学会变通,灵活运用。
二叉树的题目还是很抽象,之前记得有个动态二叉树的生成网站现在已经关闭了,试用了好几款生成二叉树的开源框架感觉不是很好,不然有动态图理解起来会更加容易一些。做算法题其实空想是没用的而且效率不高,要有图协助才能事半功倍,另外题解的技巧也需要慢慢积累的,不要急着想一天两天就能完美解题的。
有时候自己一直找不到突破口是因为自己把问题想困难了,其实有的问题很简单,需要不断的分解。无论怎么样,这也是自己思考后的产物
关于二叉树的题目其实是我的弱项,虽然二叉树不是很难理解,但是从学校开始接触二叉树开始就对它不是很感冒,所以很多时候都避开它,但是再难咬的骨头也的得啃,二叉树运用在很多程序的底层实现里,比如MySQL的索引实现就是B+树,我们懂得使用索引的同时也得知道,索引为什么这么快,而其快的原因就是底层里B+树得实现。
一直都想用Easypoi实现导出/导入Excel和Word文件,可是项目里一直没有用上,很多时候都是自己写方法去实现,所以今天跟大家一起来看看这个号称很Easy又好用的开源框架EasyPoi到底是不是真的很easy上手。
在前面的文章里有介绍过hutool工具的邮件发送,但是在实际的业务中并不是调用其sendMail方法就能实现业务的,有时候我们得对其进行改造或者自己写方法实现,那今天来看看我是如何实现发送邮件及多个附件功能的。
今天我们继续研究算法,还是那句话,程序中最伤脑筋的就算法,写算法不比CURD,都所有情况都考虑进去才行,那么接下来我们再来看看这道题怎么解决。
之前在消费金融平台的时候,公司有一个专门给线下销售人员使用的APP,APP记录销售推广公司贷款产品赚取的佣金以及一些门店开拓和打卡的功能,后端是由我和另外一个同事开发的,其中有一个模块是全国门店内的销售佣金实时排名,说到排名很多人的第一反应都是这是个Top N的问题,从数据库取出来用MySQL的top函数不就可以实现了,事实上当时无法从表里取到数据,数据还要配合权限,有全国和大区的排名,还需要计算大区经理下所有人员的有效佣金,还要求是实时的,从数据库读取再计算肯定不行,跳到排名页至少等待5s左右数据才能出来,那怎么办呢,可以放Redis里,那么接下来我们一起看看如何用Redis实现这个排名功能
对于后端开发来说,在开发过程中,我们基本时时都在与数据库打交道。我们一般使用的数据库都有MySQL、SQL Server、DB2,以及NO SQL里的Redis和MongoDB,还是就是现在的流行的云数据库,而其中使用频率高的应该是MySql,这些数据库有什么特点呢,除了云数据库你都得安装,而今天要说的数据库是H2不需要那么复杂,不需要安装,但是其作为内嵌数据库,数据其实是保存在内存里的,重启后数据就没了,适用于初学者学习和一些特殊场景使用。
Redis在我们的开发中一般作为缓存,作用就是个缓存器,比如token,用户信息或者一些业务上需要临时存储不用入数据库的信息我们都可以往Redis里放,而且其作为单线程执行读取都比较快,这里就不去赘述其数据类型和常用的场景了,今天我们来看看如何使用Redis的发布订阅的,发布订阅传递当然还是消息,而一般在项目中发布订阅的场景我们使用的都是MQ,而Redis的与其类似,接下来进入正题。
由于之前做过贷款平台和电商平台,所以对于订单这个东西十分的敏感,有段时间有点疯狂的喜欢逮着京东、淘宝、拼多多的订单页看,思考别人在做的购物车和订单这块是怎么实现的,尝试找找Bug什么的,后面出去面试别人看我的项目也会问一些关于订单如何设计和实现的问题,所以感觉这个东西还是有讲的必要,下面进入主题。
每年过年,不管是大街小巷还是春晚的舞台上,歌曲都是必不可少的,热热闹闹才是年嘛,那今天跟着我一起来用我这个半吊子前端水平开发的简易的手机音乐盒听听那些新年歌曲吧,我是90后所以歌都比较的老,但是越老的歌越有味道嘛,来吧看看这个简易手机音乐盒是怎么实现的。
今天的主题是拼图小游戏,主角是虎年最火,人见人爱花见花开的到处送祝福的小老虎。
前天不是开工嘛,然后刚刚到公司前端说测试环境好像挂了,开工就直接王炸了,找了运维,运维说服务器过年关机了回来发现有个配件坏了,暂时修不好。那我就本地部署一套当测试环境用,我同步了一份生产库到本地,然后问题就来了,之前好好的功能全部出现了问题,因为年前有需求改动,debug了好几遍代码也没有查出问题,然后突然想到MySQL版本不对。
今天的主题就是新年幸运签,快来抽取你的新年幸运签吧,下面我们来看看是怎么实现一个简易版的抽签小功能。
我们在开发中一般遇到会对于敏感词的过滤或者屏蔽,因为之前做过社区类的APP,在这方面也踩了不少的坑,算是也积累了一点点的经验,那么今天我们来看看hutool里对于敏感词的一些操作,工具类SensitiveUtil()
在我们的系统里验证码是必不可少的,比如注册登录时,忘记密码时,设置支付密码时或者支付下单时,那验证码的作用在哪里呢?其实就一条为了防止来着黑客和机器人恶意的攻击,那么下面我们来看看hutool里验证码工具类。