这样的模板方法在我们当舔狗跟妹妹们聊天的时候也是可以用到的,比如这样一个模板: “宝,XXXX了,XXXX什么XX?...X你的XXX” 当我拿到这样一个模板的时候,我就可以举一反三直接套用了,我们直接填参数就可以了,比如: “宝,我打疫苗了,打的什么苗 ,爱你的每一秒 ” “宝,我做核酸了,做的什么酸,得不到你的心酸”...“宝,今天去输液了,输的什么液,想你的夜” ..............companyA和companyB分别输出了对应的请假流程。 细心的同学可能已经发现了,做为模版方法中里面除了可以有抽象方法外,还可以有具体的实现方法以及钩子方法。...宝,明天我可能无法正常更新了,我生病了在输液。 ?
Java 的 OutOfMemoryError 是比较严重的问题,需要分析出根因,所以对生产应用一般都会这样设置 JVM 参数,方便发生 OOM 时进行堆转储: -XX:+HeapDumpOnOutOfMemoryError...我们继续分析下,到底是不是这样呢。...对于真实案例,查看大字符串、大数据的实际内容对于识别数据来源,有很大意义: 看到这些,我们已经基本可以还原出真实的代码是怎样的了。...你甚至可以在这个 HashMap 上点击右键,选择 Java Collections->Hash Entries 功能,来查看其内容: 这样就列出了所有的 Bean,可以在 Value 上的 Regex...可以发现,有了堆转储,几乎相当于拿到了应用程序的源码 + 当时那一刻的快照,OOM 的问题无从遁形。
他招募了一些聋哑女性,具体工作就是对天文台拍摄的照相底片进行测量和分类工作,实际上就是以人工计算来做今天计算机的工作,因此她们也被称为哈佛计算机, 当然严格的说,她们并不算是程序员,而是从事机械重复同时也很重要的计算工作的人...Cosmopolitan 杂志在 1967 年发表了一篇名为「The Computer Girls」的文章,主要表达的观点就是女性从事电脑编程工作是一件很自然且非常有优势的事情。...提到「现在耀眼的大计算机来了,一起到来的还有女性的新职业:编程。」 秘密2:史上第一个 bug 是程序媛抓住的 ?...在一次故障中,Grace 排查后发现某个继电器内飞进了一只蛾子,导致了整个计算机无法运作,她便用镊子小心地将飞蛾夹出,并把它贴在记录本中标上「First actual case of bug being...尽管女神节,女王节这些,都是被生造出来的节日,但还是被许多蠢蠢欲动的男生过出了节日的气氛,毕竟,又多了一个名正言顺接近姑娘的机会。
之前我们已经已经把DFS的核心思想讲清楚了,也就这么回事儿,也再次向大家宣扬了一种循序渐进的思想,从基本解法向外去击破。...那我们大概要走深度优先搜索来遍历了。 那基本方针就这么确定了,那剩下来的就是思考不一样的地方了。这个最长路径可能不经过根节点,这会是个麻烦的地方,我们要想办法处理一下。...那当前节点的深度也就是左右节点深度的最大值+1。 当前节点的直径也就是左节点深度+右节点深度+1。这样我们在每到一个节点时都会计算经过该节点的最长直径是多少。...我们可以用一个全局变量保存到目前为止的最长直径,这样在最后我们就能得到最终的最长直径了。 万事俱备!...现在我们可算是熟门熟路了,我们可以采用跟上题类似的套路解题,用DFS遍历的逻辑不变,只要把计算深度的代码换成求和的代码就可以了,同时为了求最大值,忽略那些和为负数的路径。
-- 这样表示两个字段连起来不能重复,两个字段添加一个约束。...可读性好 select e.ename,d.dname from emp e,dept d 这样出现的条数就是两张表条数的乘积。 ...,这就出现了脏读取。...11.4.2.2、读已提交 对方事务提交之后的数据我们才可以读到,这种隔离级别解决了脏读现象,但是却出现了不可重复读现象。 这个级别是oracle的默认隔离级别。...11.4.2.3、可重复读 我们无法看到已提交的事务了,这种隔离级别虽然解决了不可重复读的问题,但是却带来了幻读的问题。
JDK8提供的Stream虽然好用,Lambda虽然简洁,但一定不能滥用,我举一个实际遇到的例子(已做脱敏处理): Map> studentMap = students.stream...但是,如果我们真正遇到这样的“大神级”代码怎么办?还好有IDEA这样的神奇帮助我们,鼠标移动到代码处,点击右键出现以下菜单: ? 点击“Show Context Actions”,出现以下内容: ?...: toSort) { studentkMap.putIfAbsent(integerListEntry.getKey(), integerListEntry.getValue()); } 这样看代码逻辑清晰了...如果按照开始的Stream+Lambda表达式,别说优化,连看懂都是问题。当我们把代码改为“传统”代码后,逻辑一下就清晰了。...list = new ArrayList(); map.put(list); } list.add(student) } 适当是使用Stream和Lambda这样是不是更好呢
记录一下今天的文章开始写的时间00:53,夜深人静了,我们来学一下分布式锁,我们要悄悄地学习,然后经验所有人。 什么是分布式锁?分布式锁又可以解决哪些问题呢?...其中数据库实现分布式锁比较简单,也很容易理解,直接基于数据库实现就可以了,在一些分布式的业务中也经常使用,但是这种方式也是效率最低的,一般是不使用的,我们就着重介绍一下其他三种方式的实现。...顺序临时节点:熟悉Zookeeper的同学都知道,Zookeeper提供了多层级的节点命名空间,每个节点都是用斜杠分隔的路径来表示,类似于我们的文件夹。...Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势,在Java实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类。...Redisson不管是单节点模式还是集群模式,都很好的实现了分布式锁,一般用的多的都是集群模式,在集群模式下,Redisson使用RedLock算法,很好的处理了Master节点宕机时切换到另外一个Master
当然了,新版本提示应用中可能存在一些小 Bug,不过为了体验这次重磅更新,极客君还是在第一时间下载了新版微信。下面就带大家一探究竟。...社交和移动支付之后,第三个颠覆用户体验的接口 小游戏的前身,可以追溯到当年微信 5.0 的「飞机大战」游戏,当时的好友排行榜以及礼物互赠的套路,与新版本如出一辙。大概是早期的商业化尝试得到了甜头。...商家通过小程序很好地结合了微信社交链,如好友关系、微信群等,形成微信用户的自发传播,从而产生并带来效益。小程序中的应用也与日俱增。...这些日常看似方便不少的操作,对于小程序的普及是无比珍贵的资源。...倒不至于说小程序有撼动应用市场的威力,但此时的它,正让越来越多的开发者和用户去适应它的玩法。
大家好,我是可爱又机灵的开源小妹! 想必作为程序员,写教程、写文档实在是太普遍的事情了。但如果真正想写好了,还是得花点功夫。 尤其是涉及到一些操作的介绍分享,键盘操作通常就是口头介绍而无法直观展示。...今天小妹就来大家分享一款高颜值的工具 - Keyviz,优雅直观展示你的键盘操作!...工具简介 Keyviz是一款开源、免费的按键可视化工具,可实时显示键盘当前按下的按键,还可以自定义按键的风格、样式,非常适合演示键盘操作使用。...2、使用很简单,在设置界面的 Style 里自定义喜欢的键盘样式以及大小、位置、按键的颜色等等。 尤其是有个人 IP 的话,自定义显示按键风格、样式,有利于打造一个鲜明的个人标识。...3、还可以在“外观”中设置按键出现在屏幕的位置、留存时间等等。 设置好之后就可以愉快地展示你的键盘了~~目前工具唯一的不足就是没有中文版,但是完全不影响使用。
大家在看AQS源码的时候会发现AQS不是这样做的,它会多一个节点。AQS队列的头结点永远是当前持有锁的线程占用,为什么要这样做呢?...唤醒 未抢到锁的线程为了不占用资源阻塞了自己,拿到锁的线程执行完任务需要来唤醒,不然就会出现奇怪的现象:抢到锁的线程执行完任务退出了,未抢到锁的线程全部阻塞在那里等待唤醒。...插入队列后会进行两次自旋,如果都没抢到锁,就会将它的前置节点的waitStatus改为-1。注意一下这里,改的不是自己的waitStatus,而是它前置节点的。为什么要这样做呢?...这就是自旋锁算法CLH的理论。相当于在它的前置节点上设置了一个闹钟,这样在唤醒的时候就不需要去队列取数据,直接判断自己的该属性就可以了。...如果是队列中的第二个节点但是抢锁失败了,这个时候就将自己的waitStatus设置为1。这样的线程就得不到调度机会了,会被其他线程从队列中移除。
如果想看到与众不同的效果,大家可以在上面的Demo做一下相关的操作。 比如,将容器慢慢的变小,或者选择复选框,就能看到不同的效果: 那么这样的效果是怎么实现的呢?这就是接下来要介绍的。...那么这样的效果是怎么实现的呢?...:ellipsis和white-space来控制文本,当然这个时候短文本就不显示了 大致就是这样的一个工作原理。...虽然这种方法让我们实现了灵活的overflow,效果是更让人感觉很爽,但对于追求HTML干净的同学而言,这是一件无法忍受的事情。为了这种效果,让我们的HTML变得冗余。鱼和熊掌不可兼得嘛!...通过这个效果,再次验证了CSS的强大! 除此之外,为了记残障人士能更好的访问网站,这里还通过aria-hidden='true'以及title之类的属性,增强可阅读性。
之前我们讲过,原型其实也会一个对象,既然是对象,我们也可以用最原始的方式来创建他: ?...var obj = new Object() obj.name = "人生代码" console.log(obj.name) // 人生代码 其实原型对象就是通过 Object 创建的,之前讲过实例的...proto 指向构造函数的 prototype,可以理解成,Object.prototype 是所有对象的根对象,所以我们可以更新以下: 原型链 每一个对象都有原型,通过 proto 指向上一个原型,...默认并不会复制对象的属性,相反,JavaScript 只是在两个对象之间创建一个关联,这样,一个对象就可以通过委托访问另一个对象的属性和函数,所以与其叫继承,委托的说法反而更准确些。...总结 使用new生成实例的函数就是构造函数,直接调用的就是普通函数; 每个对象都拥有一个原型对象; 每个引用类型的隐式原型都指向它的构造函数的显式原型; Object.prototype 是所有对象的根对象
你可以这样想象这样的一天: 早上“起床模式”,一个语音唤醒所有灯光并拉开窗帘,听着音箱里自动播放早间新闻;下班回来前启动“回家模式”,提前打开空调/暖通、窗帘电视,回家即躺平~ 还有“影音模式”“离家模式...像当前引发关注的电动车进入电梯这种危险场景也都兼顾到了。 便捷性有了,安全性有了,我朋友却告诉我,这还不是真正他心动关键。...这次联动方案,不光一次性解决了上述问题,还能取两家之所长,延展出更多的服务来。 首先,它交付即实现房屋智能,业主需要做的就只是注册个小程序。 而且真正实现了物业需求“随叫随到”“用完即走”。...通过智能化设备的感应,出现问题不再需业主这样一个中间角色,就可直接报备给物业,发挥物业的主动性。 而且,随着更多的物业服务通过小程序、中控屏等设备传输到业主,用户与社区之间的交流也将会得到促进。...无疑,这的确是AI企业快速落地的方式之一;而社区,也只是云知声整个智慧物联业务的一个板块。 表面上看,云知声之所以能给出这样一套方案,得益于与房地产公司的“双剑合璧”。
在这个高呼“网络安全”的时代,网民却日渐没有了安全感,不管是订票出行账户还是酒店开房账户,都已经被历史证明,没有什么是不可能泄露的。...我们根据公布的10万条密码进一步分析,发现了诸多亮点。 键盘恐成最大背锅侠 人们常常用阿Q精神安慰自己一介草民,不会惊动黑客这种高智商犯罪团伙。...显然,这三种密码都呈现明显的键位特征,这在黑名单公布的10万种密码中也比较常见。 当绞劲脑汁也想不出合适的密码时,总有人放弃了抵抗,选择了最省事的方法,选取键盘中的一行连续敲了过去。...我们按照数字和符号作为分隔符,提取出英文子串,统计了最常出现的英文子串,发现频率最高的20个词中除了出现144次的“qwerty”呈现明显的键位特征之外,别的都能看出清晰的含义特征。...(点击查看大图) 在密码中最常出现的英文名是是“alex”,出现了一共116次。而日式英文名“naruto”在英文名字中显得格外瞩目,作为鸣人的英译名,可以看出这部漫画在世界范围内的影响力。
作者最近在开发公司项目时使用到 Redis 缓存,并在翻看前人代码时,看到了一种关于 @Cacheable 注解的自定义缓存有效期的解决方案,感觉比较实用,因此作者自己拓展完善了一番后分享给各位。...Spring 缓存常规配置 Spring Cache 框架给我们提供了 @Cacheable 注解用于缓存方法返回内容。但是 @Cacheable 注解不能定义缓存有效期。...这样的话在一些需要自定义缓存有效期的场景就不太实用。按照 Spring Cache 框架给我们提供的 RedisCacheManager 实现,只能在全局设置缓存有效期。...key 的序列化规则。...erializeValuesWith():设置 Redis 的 value 的序列化规则。computePrefixWith():计算 Redis 的 key 前缀。
文章期号:20190405 最近听说,一个很热的自媒体人 和 她的自媒体朋友们毕业了。 我用毕生绝学,分析了1000多篇文章写了什么,因为每个自媒体人都渴望毕业。...惊奇的发现:毕业了,文章却写成这样。 1,1000+文章写了什么? 毕业的那些自媒体朋友写了什么,省去繁文,主要看标题,让满屏的标题飞一会。是不是深深的吸引了你的双眼.... '别!再!劝!我!生!...我顿时有想到了一个本文的好标题:《毕业了:天呀,文章却写成这样!》。是不是独具一格,有魅力。如果是学术论文,这标题。。。好吧,小学生的作文标题。...2.3 关键词抽取:大女人主义 拉偏架:打击男性,宠溺女性,假装情感专家,专治疑难杂症,站在女性的角度,假装惺惺相惜,成为女性之友,贬低男性,展示自己的高谈阔论,真想问一问你,你们的感情问题也是这样解决的吗...感情与金钱挂钩:有钱,月薪,年薪 给人的感觉钱好像是灵丹妙药,能治愈所有感情的伤,钱是感情的物质基础,固然重要,但一味的鼓吹,有点偏激和拜金了,希望广大女性保持冷静,相信有些感情还是需要我们饱含热泪的去相信和拥有的
本期是Robust的第二期,开启了正式的节目更新。本期全部听完需要21分钟左右,你可以通过网易云、企鹅FM收听。时间不长,你可以在上班路上免流量听,也可以睡前躺听。...如果你觉得Robust这样一档技术类的谈话节目还不错,希望我继续做下去,不妨打赏支持。你可以本文后面的打赏功能给我打赏。...,是听了另外一档播客teahour后的冲动,在节目的取名上,实在是想了很久想不出好的名字,于是就想编程领域有那些比较特别的,其他领域不存在的词?...最后选择了robust这个词,中文翻译为“鲁棒性”,可简单理解为“程序的健壮性”。 做一档语音节目有什么意义呢?目前还看不出来?...♂️我想把自己在一段时间内看到的一些技术相关的东西、事情和其他人分享,表单自己的一些看法,就这么简单的出发点。相信如果做一件事能够坚持去做,那自会有它的漂亮之处。
一、如何避免接收垃圾短信 众所周知,针对短信和邮箱都有相应的屏蔽号码或者是邮箱号的设置,但是并不是很智能。因为我们永远不知道下一秒钟究竟会是哪个大佬来光顾我们。...既不用担心泄露手机号码,也不会再接收到垃圾短信和邮件了。 Top 1.云短信 神器地址: https://www.materialtools.com/?...,而云短信则是专注手机短信领域方面,二者虽领域不同,但功能差不多,都是使用虚拟的号码来代替真实的号码在注册,这样以后再也不用担心别人发骚扰信息了,感觉世界会清净许多,下面我们来看下它的界面: ?...这样就完成了我们的个性化邮箱了。...总结 通过对上面两个神器的了解,相信任何人用上了它们,都会给你的日常生活带来更好的感觉,不知道你是怎么认为的了?又或者你还有什么有趣的神器了?欢迎下方评论区留言。 看完本文有收获?
前言 都说“人靠衣装佛靠金装”,同理我们出去找工作,简历也是我们的门面了,你想找到好工作,就得先过简历这一关了。 正文 吹完了那我们简历到底要有哪些基本要素,又应该怎样去写每一块东西呢?...,刚好两页,也是比较适合的页数了,我自己在实习和后面投递简历的时候基本上也是按照这个布局写的,也都是两页刚好那样。...简历模板 选个简约的模板,找对字体就好了,整个简历的颜色不要超过三种颜色,其实黑白就挺好的。 像下面这种,像上个世纪的非主流,不仅不会吸引到面试官,反而会反手直接得到一个拒绝。...[image-20210509184431055] 说是要简约,但是也不要简约过头了,像我们初高中那种格子简历,出社会还是成熟点好了。...简历的模板我已经在GitHub上开源了 https://github.com/shaoxiongdu/resume 大家可以fork到自己仓库中,基于这个模板进行修改。
领取专属 10元无门槛券
手把手带您无忧上云