面试

字符串比较,居然暗藏玄机(没收获你锤我)

為{幸葍}努か 提交于 2021-01-14 17:14:53
面试编程基本功的时候,很常见的一个题目是: 判断两个字符串是否完全相同? 画外音:先别急着退,没收获你锤我。 很多同学能够很快的写出对应的代码: public static boolean isEqual(byte[] a, byte[] b) { // 先判断长度是否相同 if (a.length != b.length) { // 长度不同,返回false return false; } // 一个一个字符,循环遍历判断 for (int i = 0; i < a.length; i++) { if (a[i] != b[i]) { // 只要一个字符不同,返回false return false; } } // 全部字符相同,返回true return true; } 代码没有问题,甚至JDK底层,也是这么实现的。 然而,MessageDigest.isEqual却被报了bug,并在JDK 1.6.0_17中被fix成了以下的版本: public static boolean isEqual(byte[] a, byte[] b) { // 先判断长度是否相同 if (a.length != b.length) { // 长度不同,返回false return false; } // 返回结果初始化 int result = 0; // 一个一个字符,循环遍历判断 for

21-1-14|新增复现靶场之spring漏洞

房东的猫 提交于 2021-01-14 17:08:49
高质量的安全文章,安全offer面试经验分享 尽在 # 掌控安全EDU # 新增靶场你挑战了吗? 封神台 -掌控安全在线演练靶场,一个在线黑客攻防演练平台。 在成长的道路上怎么能缺少打怪刷级的乐趣呢!但是市面上的网站漏洞组成复杂,而且会有法律风险 所以为了更好的帮助大家对课程中技能的理解,我们给大家准备了一个练手的平台—— 封神台。 课程是和靶场相对应的,听完课去做靶场,熟悉相关技能的原理,熟悉相关技能的操作。 为帮助新老手提供更好的实战环境,靶场新版块 漏洞复现功能不断 更新! 本周新增 5项 靶场 不容错过,快来试试吧~ #PS:我们依旧会 每周 开拓新版块~带来新体验,尽请期待哦~ 新增四项内容如下: (1) Tomcat 任意文件写入漏洞 CVE-2017-12615 (2) spring boot配置不当之RCE (3) spring cloud config server目录遍历漏洞 CVE-2020-5410 (4) php myadmin v4.8.1 后台getshell (5) Discuz!ML 3.x 任意代码执行 地址:https://hack.zkaq.cn/battle#61f4b8cd3b33fb26 还在等什么?直接复制链接 跳转:https://hack.zkaq.cn/battle 详细请看图: 具体位置在靶场的【漏洞复现】板块 如果你是新手

深入拆解多种消息队列及各自优缺点对比

人走茶凉 提交于 2021-01-14 16:02:49
虽然已经年底了,但腾讯、字节等大厂还在招人,其他公司也开始为来年的项目储备候选人。我有个朋友,最近面试屡屡碰壁,一问原因,都是算法、高并发、消息队列这些问题。 拿消息队列来说,大多数人工作中只会使用消息队列等“轮子”来实现业务,并没有机会参与到“轮子”的开发,但底层知识是面试的必考内容。你可能会问:面试官问的这些,真的有用吗? 我的回答是:当然有用,消息队列是每个后端程序员都会用到的中间件,在你技术栈中的重要程度不言而喻。消息的功能很简单,就是收发消息,你可以看一下文档,几分钟就写出一个用消息队列收发消息的 Demo。但是,把消息队列真正应用到生产系统中,就没那么简单了。 在使用消息队列的过程中,会面临很多实际问题,比如: 选择哪款消息队列更适合你的业务系统? 如何保证系统的高可靠、高可用和高性能? 如何保证消息不重复、不丢失? 如何做到水平扩展? 如果你掌握了消息队列的底层技术,无论使用哪种消息队列产品,都可以从原理层面来分析问题,再简单看下它的 API 和相关配置项,就能很快知道该如何配置消息队列,写出高性能并且可靠的程序,而企业想要的,就是这一类人。 说到这里,就一定要给你们介绍一位高手—— 前京东零售技术架构部资深架构师李玥 ,他在 2018 年带领团队重构了京东自研的消息队列产品 JMQ,实现了超过 2000 个节点的超大规模集群部署,抗住了多次“11.11”和“618

throws、throw、try、catch、finally 分别代表什么意义?

百般思念 提交于 2021-01-14 13:12:26
throws、throw、try、catch、finally 分别代表什么意义? Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。 一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。 try:指定一块预防所有“异常”的程序。 catch:紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。 throw:用来明确地抛出一个“异常”。 throws:标明一个成员函数可能抛出的各种“异常”。 Finally:不管发生什么“异常”都被执行一段代码。 最新2020整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君样:756584822 来源: oschina 链接: https://my.oschina.net/u/4412708/blog/4898609

GitHub Star 破万!3w 多人追更,这个 Java 框架你不会还不知道怎么用吧...

。_饼干妹妹 提交于 2021-01-14 12:52:56
作为一个 GitHub Star 破 5w,Fork 超 3w 的 Java 框架,一切都在证明,Spring Boot 已经成为了 Java 程序员必备的技能。 不夸张的说, Spring Boot 是 Java 后端领域最最最重要的技术之一,熟练掌握它对于 Java 程序员至关重要。而且看过很多面经的小伙伴肯定知道,现在去面试,无论大小公司 ,都会跟你扯一扯 Spring Boot 、微服务,如果聊不清楚,很可能直接说拜拜! 正好前段时间自己有整理 Java各种技术专题知识 ,其中就包括 Spring Boot 、微服务、以及我近些年开发和工作过程中的一些感悟、心得。 今天在这免费分享给大家 : 这份资料包含了Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM、设计模式、多线程与高并发、视频教程、电子书及求职面试相关技能知识! ▶Java Java视频包括入门到精通,以及项目实战、框架的使用 Java电子书、文档和思维导图 视频地址:https://space.bilibili.com/346136575 Spring Boot实战文档

秀出天际!腾讯T4梳理的Java核心宝典(框架+原理+笔记+导图)

北战南征 提交于 2021-01-14 10:58:51
Java语言今年已经25岁了,仍常年稳坐各大编程语言榜单前列,一直是大多数开发者心中最流行的编程语言。 Java工程师的就业面广、薪资高,这得益于 Java 语言优良的关键特性。现在越来越多的人仍旧不断地加入到学习 Java 的队伍中来,小编在此就给大家带来一份腾讯T4大佬精心整理的Java核心宝典,来帮助大家学习提升自己! 下面我们来看看这份腾讯T4大佬整理的Java核心宝典: 本文内容分为三部分 第一部分: JavaSE部分,主要讲Java基础的知识(小白看过来),觉得自己基础不是很好的朋友也看看用作参考,查漏补缺 第二部分: 框架部分,主要讲解面试中常见的微服务、网络编程、分布式存储和分布式计算等必备知识点。 第三部分: 原理部分,主要讲解JVM原理、多线程、数据结构和算法、分布式缓存、设计模式等面试必备知识点。 JavaSE部分 目录 限于平台篇幅原因,更多内容展示不了,感兴趣的朋友帮忙帮忙一键三连后,见下图加小助理VX(gyhycx7980)即可免费领取到! 内容 第 2 章 开发环境搭建 第 5 章 Java编码规范 第 11 章 面向对象基础 第 20 章 对象容器—集合 第 27 章 注解 第 29 章 项目实战 限于平台篇幅原因,更多内容展示不了,感兴趣的朋友帮忙帮忙一键三连后,见下图加小助理VX(gyhycx7980)即可免费领取到! 框架部分 目录

最近我学到的ABTest知识

北城余情 提交于 2021-01-14 08:01:10
前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star: https://github.com/ZhongFuCheng3y/3y 如果之前看过我文章的同学就知道我在工作中搞的是推送系统,之前写过一篇 带你了解什么是Push消息推送 ,里面也提到了我们或许可以做 ABTest ,最终提高推送消息的点击率。 那什么是ABTest呢?这篇文章带你们 入门 一下。 一、ABTest的介绍 比如我写了一篇关于ABTest的文章,我希望这篇文章的阅读量能上2500,但是我没想好标题叫什么比较合适。一条推文的标题非常能影响到阅读量,于是我想了几个的标题: 最近我学到的AbTest知识 AbTest入门 而我不知道哪个标题效果会更好一些,于是我做了这么一个尝试: 《最近我学到的AbTest知识》这个标题推送给10%的用户 《AbTest入门》这个标题推送给10%的用户 过一段时间后,我看一下效果,哪个标题的阅读量更高,我就将效果高的标题推送给剩余80%的用户 ABTest过程 要注意的是:在推送的文章的时候, 除了标题不同,其他因素都需要相同 (不能被别的因素给干扰),这样看数据的时候才有说服力。 1.1为什么要做ABTest? 做ABTest的原因其实很简单,我们在做业务的时候会有各种各样的想法,比如说: “我觉得在文案上加入emoji表情,这个推送的消息的点击率肯定高”

小白入门学习打日志

守給你的承諾、 提交于 2021-01-14 07:44:08
前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star: https://github.com/ZhongFuCheng3y/3y 记得之前写过一篇:《阿里巴巴 Java开发手册》读后感,之前自学时由于没怎么接触过打“日志”,所以《手册》中的“日志规约”我就先放一边去了。 而之前写了一篇:在公司做的项目和自己在学校做的有什么区别?中就有提到:公司的项目不会有e.printStackTrace();这种代码的存在。因为这打印出来的错误信息没有日期、等级等等,分析起来不方便。 在工作中去服务器上查日志又是一个非常非常常见的操作,所以当初我又写了一篇 工作中常用到的Linux命令,里边就谈到了查日志时常用的Linux命令。 想着,既然接触日志也有一段时间了,不妨在回看《手册》,看看有什么要注意的地方,于是就有了这篇笔记。 一、Java打日志的基础 以前自己自学的时候,排查问题只会写下面的代码: try { // doSomething } catch (Exception e) { e.printStackTrace(); } ---------- // 查看某个数据的值时: System.out.println(xxxx); 去到公司就发现上面的代码全不见了,剩下的是: LOGGER.info("begin to run Java3y:{}", id); ----

最近我学到的ABTest知识

倾然丶 夕夏残阳落幕 提交于 2021-01-14 07:43:33
前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star: https://github.com/ZhongFuCheng3y/3y 如果之前看过我文章的同学就知道我在工作中搞的是推送系统,之前写过一篇 带你了解什么是Push消息推送 ,里面也提到了我们或许可以做 ABTest ,最终提高推送消息的点击率。 那什么是ABTest呢?这篇文章带你们 入门 一下。 一、ABTest的介绍 比如我写了一篇关于ABTest的文章,我希望这篇文章的阅读量能上2500,但是我没想好标题叫什么比较合适。一条推文的标题非常能影响到阅读量,于是我想了几个的标题: 最近我学到的AbTest知识 AbTest入门 而我不知道哪个标题效果会更好一些,于是我做了这么一个尝试: 《最近我学到的AbTest知识》这个标题推送给10%的用户 《AbTest入门》这个标题推送给10%的用户 过一段时间后,我看一下效果,哪个标题的阅读量更高,我就将效果高的标题推送给剩余80%的用户 ABTest过程 要注意的是:在推送的文章的时候, 除了标题不同,其他因素都需要相同 (不能被别的因素给干扰),这样看数据的时候才有说服力。 1.1为什么要做ABTest? 做ABTest的原因其实很简单,我们在做业务的时候会有各种各样的想法,比如说: “我觉得在文案上加入emoji表情,这个推送的消息的点击率肯定高”

「扫盲」 Elasticsearch

↘锁芯ラ 提交于 2021-01-14 07:43:08
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star : https://github.com/ZhongFuCheng3y/3y 不知道大家的公司用Elasticsearch多不多,反正我公司的是有在用的。平时听同事们聊天肯定避免不了不认识的技术栈,例如说:把数据放在引擎,从引擎取出数据等等。 如果对引擎不了解的同学,就压根听不懂他们在说什么(我就是听不懂的一位,扎心了)。引擎一般指的是搜索引擎,现在用得比较多的就是Elasticsearch。 这篇文章主要是对Elasticsearch一个简单的入门,没有高深的知识和使用。至少我想做到的是:以后同事们聊引擎了,至少知道他们在讲什么。 什么是Elasticsearch? Elasticsearch is a real-time, distributed storage, search, and analytics engine Elasticsearch 是一个 实时 的 分布式存储、搜索、分析 的引擎。 介绍那儿有几个关键字: 实时 分布式 搜索 分析 于是我们就得知道Elasticsearch是怎么做到实时的,Elasticsearch的架构是怎么样的(分布式)。存储、搜索和分析(得知道Elasticsearch是怎么存储、搜索和分析的) 这些问题在这篇文章中都会有提及。