面试

面试:Zookeeper常见11个连环炮

試著忘記壹切 提交于 2021-02-12 13:03:04
面试的时候,面试官只要看到你简历的上写的有Zookeeper(熟悉、掌握)之类,那你至少要准备接下来的11连问。 NO1:说说zookeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现(Chubby是不开源的),它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户 。 Zookeeper一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心,服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据,简单示例图如下: NO2:了解Zookeeper的系统架构吗? Zoo Keeper 的架构图中我们需要了解和掌握的主要有: (1)ZooKeeper分为服务器端(Server) 和客户端(Client),客户端可以连接到整个 ZooKeeper服务的任意服务器上(除非 leaderServes 参数被显式设置, leader 不允许接受客户端连接)。 (2)客户端使用并维护一个 TCP 连接,通过这个连接发送请求、接受响应、获取观察的事件以及发送心跳。如果这个 TCP 连接中断

为什么要阅读Spring源码

痞子三分冷 提交于 2021-02-12 13:02:31
阅读《Spring技术内幕》是因为面试官会提问关于Spring的内容,会提问怎么使用,还有实现的原理,那么为什么面试官要问这些东西呢? 其实,学习编程不是学习配置东西,然后写编程套路。写程序最重要的是你能心中有自己的一套架构思路,比如我现在就没有写Java的项目了。我设计了一个Python的测试系统用来测试我们的服务。一个好的架构和一个差的架构区别很大的,好的架构,简单优雅。要设计架构就要阅读架构。 如果你有认真好好的看《Java编程思想》,你应该能认识到,里面一句深刻的一句话,“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。 读源码三问:“为什么要有这样的架构”,“他是什么样子的”,“他是怎么工作的”。 首先,我们来说说,IoC容器。 IoC容器存在的原因在于对象的解耦,有了简单来说就是我们自己定义我们要怎么去实现对象中调用的接口。其实我们不用去看他的实现,我们先假想,我们怎么实现它。嗯,嗯嗯嗯。嗯嗯嗯嗯嗯嗯,有了。 我们做的不就是容器嘛(丁亮说,我们用新的方式来管理类,那就是容器),我们就定义一个读文件的方法,然后把读到的内容用加载器进行加载,然后放在一个容器里面,名字对应Object(黄勇说,我就是这样做smart框架的),然后开始注入了,我们定义了注入类的位置和被注入类的位置(约定优于配置)。我们就去容器中获取。我们想象这样是不是挺完美的。好像是的。 好了

明年跳槽,我劝你千万别忽略这些“细节”!不然……

自闭症网瘾萝莉.ら 提交于 2021-02-12 13:00:51
招聘黄金季,大厂每月都要吸纳几十名 Java 开发,对普通人来说,那可是几十张通往财务自由的船票。经验要求一般 3 年起,但很多 3 年经验的 Java,却在一面就挂得很惨。 Java 3 年 的“坎”,究竟是什么呢?耐心看完,一定对你有帮助。 技术岗,不是靠工作年限吃饭的岗位。3年经验是个幌子,我整理过一份详细的大厂岗位需求表,很多 20K 以上的 Java 岗,基本都要求具备 高并发分布式的相关经验。老练的 面试官知道,对于一个 Java 程序员而言, 如果对并发编程有全面而深入的了解,那说明技术功底足够扎实。 某招聘网站真实岗位需求 所以,并发编程也是大厂面试的必考项。 例如悲观锁和乐观锁分别适合在什么场景应用?线程、进程和协程的本质区别是什么?常见的高并发分布式系统架构有哪些?互联网流量激增的时代,对 应用程序的 并发性能、处理能力、处理时效性 有着更高要求 ,高并发编程,直接成为资深开发和小白开发本质的分水岭。 然而,高并发场景各不相同,在学习过程中,我们只能死记硬背全部方案吗?当然不是。前58技术委员会主席孙玄(江湖人称“玄姐”)认为, 并发编程的学习不同于其他技术 ,深入理解 JVM、 JMM、Volatile、锁、CAS、Synchronized、AQS 等 底层核心的基础上,再通过实践 Dubbo、Redis 等服务构建高并发系统,这样就能从点到面

「 神器 」绝不简单的截图神器

不打扰是莪最后的温柔 提交于 2021-02-12 12:35:21
今天给大家推荐一款比QQ截图、微信截图强出一个次元的截图神器,但它并不仅是个普通的截屏软件那么简单。 它有以下特点: 完全免费、功能强大、干净安全、没广告没捆绑 截图:强大、细腻、精确、高效的截图功能 Snipaste 的屏幕截图功能非常丰富且细腻好用!除了可以像素级精确地移动和控制截图区域 (截图框) 之外,它也能智能检测出界面元素 (譬如一个按钮或一个输入框) 的区域边界,实现点击自动扑捉。另外也能支持窗口阴影截图。 智能截图:自动检测界面元素边界 相比大多数截屏软件只能检测整个应用窗口边界,Snipaste 对界面元素的判定让你操作时可以更加精准快捷 精确控制截图范围 你可以可用鼠标拖放或者键盘快捷键移动或调整截图框大小,实现截图取景框的像素级精准移动。 键盘 w / s / a / d 可以移动光标上下左右精确移动 Shift + ↑ / ↓ / ← / → 缩小截图区域 Ctrl + ↑ / ↓ / ← / → 扩大截图区域 屏幕取色 先按下 F1 开始截图,然后对准想要取色的地方,按下键盘 C 键即可获取 当前像素点的 RGB 颜色值, 当你取色完成之后,你还可以把颜色值复制出来 (支持RGB、HEX等格式) 贴图:特色功能 - 将图片作为窗口置顶显示 贴图是 Snipaste 一个很有特色的功能。它可以把截图的结果或者本地的图片变成一个活动的无边框窗口贴在屏幕上展示

经典算法之回溯法

牧云@^-^@ 提交于 2021-02-12 11:31:37
概念 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。 但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯 条件 的某个 状态 的点称为“ 回溯点 ”。 基本思想 回溯法按深度优先策略搜索问题的解空间树。 首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利用剪枝函数判断该节点是否可行(即能得到问题的解)。 如果不可行,则跳过对该节点为根的子树的搜索,逐层向其祖先节点回溯; 否则,进入该子树,继续按深度优先策略搜索。 回溯法的基本行为是搜索,搜索过程使用剪枝函数来为了避免无效的搜索。 剪枝函数包括两类: 1. 使用约束函数,剪去不满足约束条件的路径; 2.使用限界函数,剪去不能得到最优解的路径。 问题的关键在于如何定义问题的解空间,转化成树(即解空间树)。 解空间树分为两种: 子集树和排列树。 两种在算法结构和思路上大体相同。 实现思路 回溯法的实现方法有两种: 递归和迭代 。 一般来说,一个问题两种方法都可以实现,只是在算法效率和设计复杂度上有区别。 1. 递归 思路简单,设计容易,但效率低,其设计范式如下: //针对N叉树的递归回溯方法 void backtrack ( int t ) { if ( t > n ) output ( x ); //叶子节点

索引+sql优化

本秂侑毒 提交于 2021-02-12 11:01:37
索引的概念 : 索引是提高查询速度的一种手段。 索引有很多种,以下是索引树的结构 要求查询出薪资大于 5000 的雇员信息,只要在树中找到 5000 的节点,直接查询该节点右边的数据即可,左边就不用管了,这样提高了查询的效率。 将数据按照索引数据的方式保存需要先创建索引。 基本语法: CREATE INDEX 索引名 ON 数据表(字段名) ; 删除索引: DROP INDEX 索引名 ; 注意:系统默认主键使用索引。 复合索引 一个索引在多个字段上创建,就是一个索引作用于多个字段。 例如: CREATE INDEX 索引名 ON 数据表(字段 1 ,字段 2 ) ; 注意:查询数据使用字段 2 ,此时使用的是全表扫描模式,查询数据使用字段 1 ,此时使用的是索引扫描模式。(此现象叫做索引的 最左原则 ) 在 Oracle 中使用了多个字段,并且是 AND 连接的条件,那么字段的顺序不影响扫描的方式(索引扫描),如果是 mysql 则需要和复合索引的字段顺序一致。使用 OR 连接条件会导致索引失效,应该使用 UNION ALL 代替 OR 查询。 总结: 索引不能随便用。如果一张数据表更新频率太高,更新数据之后需要重新创建索引,这一过程很耗费性能。 Sql 的优化 *(面试题) 1、 对查询进行优化,要尽量避免全表扫描,首先应考虑在进行条件判断的字段上创建索引。

网络安全Day14

风格不统一 提交于 2021-02-12 11:00:42
5.3.1 密码安全 5.3.2 邮件安全 5.3.3 上网安全 密码安全 为什么要培训安全《意识》? 何为意识? 意识是人脑对大脑内外表象的觉察,用于辨识真伪的功能,必须有一定的刺激强度和一定的持续刺激时间才能产生知觉。 密码安全 个人电脑登录密码 企业邮箱 服务器 网盘 wifi密码 加密文档密码 网站登录密码 手机密码 哪些是弱口令? 1.ssx123456 2.qwer1234!@#$ 3.ssx$%^& 4.p@ssw0rd 5.123qwe! @# 8.2wsx#EDC 9.3edc$RFV 10.6yhn&UJM 11.2wsx!QAZ 12.13522213215 为什么会产生弱口令? 个人习惯相关与意识相关,为了避免忘记密码,使用一个非常容易记住的密码,或者是直接采用系统的默认密码等。 123456 Admin Password 123qwe! @# admin888 屏幕 1.离开未锁屏或关屏幕 2.桌上项目文件随便放 服务器密码安全 网站后台密码 密码不要设置成类似或一样 密码通用性 文档加密 周报,没有文档加密 用中文加密 重要文件进行加密 笔记本硬盘加密 那些神像密码 密码:ppnn13%dkstFeb.1st, 解释:娉娉袅袅十三余,豆蔻梢头二月初 密码:for_$n(@RenSheng)_$n+=”die” 解释:人生自古谁无死 密码:doWhile

阿里P7总结的测试常用技能点,白嫖你要不要

南笙酒味 提交于 2021-02-12 10:41:27
你是不是经常在工作中、面试中遇到过这些问题: Linux下查看端口占用命令你还记得吗? python容器数据操作你清楚吗? 自学找不到门路 ,迟迟没有进展 市面上的视频零零散散 不系统 ,不能系统串联知识点 代码0基础 ,脚本看不懂,改都不知道怎么改 最核心的问题是 没有项目实战 ! …… 以上这些,你以为通过 “求一求人”、“Baidu搜一搜” ,轻松解决? 还是太年轻啊~最可怕的是,很多时候自己吭哧吭哧忙活半天的工作,同事轻轻松松就搞定了。 怎么解决95%的软件测试人, 找个基础命令 , 百度一小时粘贴1分钟的难题! 这里有个捷径, 只需以下两大法宝 《20部实战精品课大礼包》 & 《测开技能地图2.0》 为了帮助更多软件测试人, 解决面试无实战、技术问题不会答 , 我们免费送出—— 想要吗?想要免费送! 20部 实战视频 5000+ 分钟 涵盖软件测试全栈技术实战教学视频 从快速入门到自动化进阶全搞定 《20部精品实战课》 23个 知识点+ + 1000+ 学员调研汇总+ 200+ 超实用命令 万名 测试人员实名推荐 《测开技能地图》 总价值原价10000+ 想获得技能的你仅需 0元 长按二维码 回复:万元 课 ▲ 仅限前100人免费领 01 20+部实战视频精品课 作为一名光荣的测试打工人,只会理论知识远远不够哦~ 我们整理了将近50个G的视频资料,后来觉得太杂乱,没有重点

MySQL 查询结果保存为CSV文件

馋奶兔 提交于 2021-02-12 09:16:31
点击上方“ IT共享之家 ”,进行关注 回复“ 资料 ”可获赠IT学习福利 MySQL支持将查询结果直接导出为文本格式,格式如下: into outfile ‘导出的目录和文件名’ 指定导出的目录和文件名 fields terminated by ‘字段间分隔符’ 定义字段间的分隔符 optionally enclosed by ‘字段包围符’ 定义包围字段的字符(数值型字段无效) lines terminated by ‘行间分隔符’ 定义每行的分隔符 举个栗子: select * from [表名] where [字段名] = '条件' into outfile 'c:/test.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n' ; 执行后,会把指定表中记录数据导出到c:/test.csv文件中。每个字段以,(逗号)分隔,字段内容是字符串的以”(双引号)包围,每条记录使用\r\n换行。如图所示 如果导出的过程中出现: the MySQL server is running with the -- secure - file - priv option so it cannot execute this statement 首先了解一下secure-file

JVM的垃圾回收机制 总结(垃圾收集、回收算法、垃圾回收器)

谁说胖子不能爱 提交于 2021-02-12 07:12:22
如果想了解Java内存模型参考: jvm内存模型-和内存分配以及jdk、jre、jvm是什么关系(阿里,美团,京东) 相信和小编一样的程序猿们在日常工作或面试当中经常会遇到JVM的垃圾回收问题,有没有在夜深人静的时候详细捋一捋JVM垃圾回收机制中的知识点呢?没时间捋也没关系,因为小编接下来会给你捋一捋。 一、 技术背景你要了解吧 二、 哪些内存需要回收? 2.1 引用计数算法 2.1.1 算法分析 2.1.2 优缺点 2.1.3 是不是很无趣,来段代码压压惊 2.2 可达性分析算法 2.3 Java中的引用你了解多少 2.4 对象死亡(被回收)前的最后一次挣扎 2.5 方法区如何判断是否需要回收 三、常用的垃圾收集算法 3.1 标记-清除算法 3.2 复制算法 3.3 标记-整理算法 3.4 分代收集算法 3.4.1 年轻代(Young Generation)的回收算法 3.4.2 年老代(Old Generation)的回收算法 3.4.3 持久代(Permanent Generation)的回收算法 四、常见的垃圾收集器 五、GC是什么时候触发的(面试最常见的问题之一) 5.1 Scavenge GC 5.2 Full GC 结束语 一、 技术背景你要了解吧   按照套路是要先装装X,谈谈JVM垃圾回收的前世今生的。说起垃圾回收(GC)