面试

由一道面试题所想到的--Java实例变量初始化

▼魔方 西西 提交于 2020-11-12 13:52:54
题目是这样的:求下面程序的输出: public class Base { private String baseName = "base" ; public Base () { callName(); } public void callName () { System. out. println(baseName); } static class Sub extends Base { private String baseName = "sub" ; public void callName () { System. out. println (baseName) ; } } public static void main (String[] args) { Base b = new Sub(); } } 很显然一开始我也做错了,原因很简单,这道题目考察什么我大概知道,可是之前在学习类的加载机制时对类的初始化过程还比较了解,但实例变量的初始化过程比较模糊。这里还牵扯的难点有:继承的时候子类的同名属性不会覆盖父类,会将父类的属性隐藏;在父类的构造函数里面调用虚函数引起多态的变态代码。 接下来查看了一下 深入Java虚拟机(Bill Venners著) 等才对该问题有了清楚的认识。下面我会尽量简单而清晰的将其分析的透彻明了。 前面我在JAVA类加载和初始化

品Spring:对@Resource注解的处理方法

蓝咒 提交于 2020-11-12 12:01:04
@Resource是Java的注解,表示一个资源,它具有 双向 的含义,一个是从外部获取一个资源,一个是向外部提供一个资源。 这其实就对应于Spring的注入和注册。 当它用在字段和方法上时,表示前者。 当它用在类上时表示后者。 Spring只提供了对 前者 的支持。 该注解本身表示的是资源,资源的含义是很宽泛的。 由于绝大部分情况下在使用Spring的时候,它的容器里都是普通的bean,所以这个注解就作为 bean的注入 来使用了。 对于依赖注入这个事情,整体可以分为三步: 1) 找出需要被注入的元素,即标了注解的字段或方法 2) 根据注解的描述,在容器中找出依赖的bean 3) 完成注入,即设置字段的值或进行方法调用 我们可以分析下,这里面都会遇到哪些难处理的问题: 1) 找出标注解的字段和方法很简单,使用Java反射即可。 难的是如何表示它们,因为它们就是被注入的元素。 2) 要在容器中找出依赖的bean,首先要知道依赖什么样子的bean,也就是要想办法把依赖需求给表示出来。 我们遇到的首个问题同样是如何表示,如何描述? 等把它们解决了,才会进入如何去做的环节。 举一个例子吧 ,一个老师要将他们班40位同学的成绩排名。 他遇到的第一个问题也是如何把40个成绩表示出来。 假设有三种方式吧: 1)写到excel表格里 2)存到数据库中 3)写到一张纸上 再来看看这三种方式下

面试官扎心一问:数据量很大,分页查询很慢,有什么优化方案?

被刻印的时光 ゝ 提交于 2020-11-12 11:55:48
点击上方 蓝字 加关注吧 来源:cnblogs.com/youyoui/p/7851007.html 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。 准备工作 为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明。 表名:order_history 描述:某个业务的订单历史表 主要字段:unsigned int id,tinyint(4) int type 字段情况:该表一共37个字段,不包含text等大型数据,最大为varchar(500),id字段为索引,且为递增。 数据量:5709294 MySQL版本:5.7.16 线下找一张百万级的测试表可不容易,如果需要自己测试的话,可以写shell脚本什么的插入数据进行测试。以下的 sql 所有语句执行的环境没有发生改变,下面是基本测试结果: select count (*) from orders_history; 返回结果:5709294 三次查询时间分别为: 8903 ms 8323 ms 8401 ms 一般分页查询 一般的分页查询使用简单的 limit 子句就可以实现。limit 子句声明如下: SELECT * FROM table LIMIT [

Java面试必备的12个技术点解析:Spring全家桶+微服务+Redis+Netty+Kafka等,你掌握了多少?

和自甴很熟 提交于 2020-11-12 11:47:45
跳槽一直是个敏感话题 ,但在如今几乎没有稳定工作的时代,跳槽对很多人来说是再平常不过的事了,而互联网人也是跳槽蛮频繁的一个群体,有人说, 程序员涨薪晋升全靠跳槽,这也不尽然,在一家好企业沉淀几年也许是更好的选择。 然而面对今年的大环境而言,跳槽成功的难度比往年高了很多,很明显的感受就是:对于今年的java开发朋友跳槽面试,无论一面还是二面,都开始考验一个Java程序员的技术功底和基础。就连对应届生来说,面试也没有往年那么宽容了,总归来说,跳槽真的越来越难。 但是,对每一个程序员来说,心中 都有一座大厂梦,这个大厂梦需要坚持和努力,才能实现。所以,程序员如果想要面试拿到心仪的offer,补充好自己的知识库是很有必要的。 以下展示面试资料,有需要获取面试体系文档的朋友 Java 面试题基础篇 Spring 面试专题及答案 SpringBoot 面试专题及答案 SpringMVC 面试专题及答案 SpringCloud 面试专题及答案 微服务面试专题及答案 多线程面试专题及答案 开源框架面试专题及答案 Redis 面试专题及答案 Netty 相关面试专题及答案 ZooKeeper面试专题及答案 以上是部分的专题及答案截图,除了以上专题以外,还有部分专题的内容未展示,包括数据库、设计模式、并发编程、Tomcat、SQL、RabbitMQ、Nginx、MySQL、Linux、Dubbo等。

阿里双11技术详解:容量规划+LDC+弹性架构+大促中控等

别说谁变了你拦得住时间么 提交于 2020-11-12 11:47:30
每一年的双十一都是新技术的演练场,对于技术人员来说,维持双11全天24小时稳定流畅固然不易,但最为考验的时刻当属零点刚过,大家操起手机,刷新早已存好的购物车,点击支付的那一刻! 11年,零点越来越平滑的双11购物背后,支付宝有过哪些不为人知的技术探索。本篇文章原文作者为蚂蚁金服科技。、 # 快速领取通道:( 点这里 )免费获取!诚意满满!!! Java面试精选题、架构实战文档传送门: https://jq.qq.com/?_wv=1027&k=iWJZw1rp 正文: 和过去10年一样,2019年天猫双11又创造了一个全新的纪录。 这个数字背后,是数代支付宝工程师们殚精竭虑、不断突破技术难关。 从外部瓶颈说起 从外部瓶颈说起 事情从一开始就显得不是很顺利。 2011年的双十一,在高峰时期少数用户无法付款,经过调查发现,这是因为少数银行的网银系统在压力下出现故障。早年的支付宝交易,用户点击支付后需要从支付宝和银行的接口去付款,而早年这个接口的性能很差,每秒只能支持几十到上百笔交易,稳定性也比较差,一旦流量上来,容易发生故障。 如果不解决这个问题,今后的每次大促都会出现无法付款的情况,极大影响用户体验。但是,这个问题单靠技术是很难解决的,银行对网银系统的演进有自己的规划,支付宝无法去干涉它们的系统。 不过,聪明的运营人员想出了一个变通的办法。在2012年的双十一

培训机构出来,四面阿里淘系后端,最后成功拿到了offer。

久未见 提交于 2020-11-12 10:25:08
今天谈一件真实事件,这个朋友之前在一个小型公司上班,后来自己去报名了一个课程去学习,我们本来以为他就是个三分钟热度,估计学完了也没有什么作用。然后最近跟我说了如下图的话。这是在干嘛?这是在赤果果的炫耀。 不过不得不说他卧薪尝胆了差不多十个月的时间,再加上他本身就是有过三年的工作经验,培训出来过后直接去面试了阿里和腾讯,并且都拿到了offer,所以我问了问他面试的内容,就有了今天这篇文章。 同时自己也整理了很多大厂的面试题 需要的朋友可以点击: 点这个!点这个! ,暗号:csdn。 一面 自我介绍(必考题,要求条理清晰,层次分明,最好提前预演几遍,避免背诵感) http和https的区别 算法:正则匹配 进程内核态用户态 进程通信方式 进程用户态转到内核态的方式 死锁原因、如何避免 64匹马选最快的四匹 TCP三次握手 mysql一套带走(ACID、并发控制、事务隔离级别、MVCC、undo段) 二面: 要做好准备哦,问题问得比一面要细一点 讲讲项目(把项目摸透,特别是细节方面的问题,注重逻辑感) restful的设计理念、修改和删除资源的时候为什么要把id放在url里而不放在http的参数里 算法题 1)力扣 凑硬币 2)给一个字符串和一个字符s,已知这个s出现了很多次,随机返回一个s的位置(要求等概率、O(1)的空间复杂度) 贪心和动规有什么区别 四次挥手

已拿 Offer!字节跳动面试经验分享

倖福魔咒の 提交于 2020-11-12 09:32:16
去年,学校有位学长参加秋招的时候,拿到了字节跳动、快手、阿里、美团……等等 7 家大厂的 Offer,在此之前,学长一直“默默无闻”,基本可以说是在秋招一战成名,成为众多学弟学妹羡慕的对象。 今年,伴随着疫情的影响,就业形势并不乐观,于是,秋招的准备就变得尤为重要,毕竟毕业之后的第一家公司,决定了以后工作的起点。为此,学校的老师特意邀请了这位学长来做了分享,因为他最后选择了字节跳动,就以字节跳动为例,分享了一些经验。也欢迎你加入「校招交流群」与学长学姐们一起交流经验。 扫描下方二维码,回复“ 校招 ”进群👇 1. 字节跳动并不会特别关心候选人使用什么编程语言,逻辑很简单,你 Java 特别厉害,那转 Go 语言肯定不难。当然,如果你觉得难,那大概率也通不过后面的面试。 2. 在整个的面试流程中,至少会有 3 轮技术面,并且每一轮面试都会考算法。不管你是工程师,还是架构师。 3. 为啥要考这么多算法?其实核心是看候选人是不是足够聪明。和 Netflix 一样,字节跳动招聘工程师的必要条件就是聪明。 4. 怎么考算法呢?一般会分两步,第一步是直接让你说思路,第二步是让你直接上手写代码。字节跳动的算法题一般对应的是 LeetCode 中级模式,要通过面试,你肯定得花时间好好准备。 5. 写算法代码的时候,你可以用白板,也可以用电脑,都行。常见的模式是给你 20 分钟时间

想当程序员中间万元户吗?这几个MySQL核心技术点必须要搞懂!

。_饼干妹妹 提交于 2020-11-12 09:29:37
前言 MySQL 是业务后台系统经常用到的结构化数据库。 掌握 MySQL 相关知识是研发人员必备的能力。 与此同时,在面试过程当中,MySQL 的知识点也是经常被当做面试题目,以此来考量候选人的能力。 随着业务量的增加,对于 MySQL 性能优化的要求也越来越高, 而索引方面是性能优化重点考虑的方向,所以深入理解 MySQL 索引对于未来的优化起到很重要的作用。 深入理解MySQL底层实现 MySQL 的初始、组成 MySQL 的常用引擎(InnoDB、Myisam、MariaDB) 数据存储原理 数据结构 MySQL 数据结构 MySQL 的优化 来自一线大厂高频面试题 唯一索引比普通索引快吗, 为什么 MySQL查询缓存有什么弊端, 应该什么情况下使用, 8.0版本对查询缓存有什么变更. MySQL怎么恢复半个月前的数据 做过哪些MySQL索引相关优化 一千万条数据的表, 如何分页查询 订单表数据量越来越大导致查询缓慢, 如何处理 简要说一下数据库范式 MySQL事务的隔离级别, 分别有什么特点 上面的一些大厂高频面试题以及答案已经整理成文档,需要领取的同学可以关注我, 点我 免费领取 哦! 来自一线互联网公司总结的真题面试收录 一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert

姐夫半夜不睡觉,躲在被窝偷看:操作系统+程序员必知硬核知识大全,第二天的两只熊猫眼真可爱!

给你一囗甜甜゛ 提交于 2020-11-12 08:56:52
前言 现在很普遍的一个现象就是,已经做了开发的程序员会有的顾虑就是:以后会有出路吗?挣得薪资高吗?工作好找吗?...... 相对而言,那些还没有开始学,萌芽了这个想法的程序员会有的顾虑就是:Code很难吗?需要多长时间呀?真的可以坚持得住吗?其实无论你是已经选择了还是没有选择的,都会有很多问题接踵而来的,这不就是很正常的运作吗?只要你准备好了,并且坚持了,那么你就成功了,谁的成功是一步登天的,不要轻易选择,更不要轻易地去放弃。 各种语言就好比文字,编程的过程就是用文笔书写诗篇,假设对于语言的应用已经十分透彻了,那么编程的难点在哪里?在使用的思路,还是各种算法,还是以人脑却用电脑的方式思考问题? 首先, 大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机软件硬件打交道的程序员,大家都是和CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不了计算机最核心的——CPU。 Part 1 程序员必知的硬核知识大全 CPU是什么 CPU实际做什么 CPU的内部结构 CPU指令执行过程 什么是内存 内存的物理结构 内存的使用 为什么用二进制表示 什么是二进制数 移位运算和乘除的关系 便于计算机处理的补数 算数右移和逻辑右移的区别 逻辑运算的窍门 认识压缩算法 几种常用压缩算法的理解 认识磁盘 磁盘构件 节约内存 操作系统环境

HCIE北京考场体验报告

拈花ヽ惹草 提交于 2020-11-12 08:37:20
在参加了北京考场的考试之后,笔者简单的对华为HCIE北京考场的参考体验做一下总结,希望可以帮到后续考生。 目录 一、地点 二、考场硬件环境 整体点评 1、等候区域 2、HCIE考试中心 3、面试考场 4、实验考场 5、实验室计算机 6、零食及休息区 7、卫生间 8、吸烟区 三、考试软件环境 1、考试系统主页面 2、模拟器页面 3、TAC答题页面 4、操作系统及其他 四、考试流程 1、签到 2、存包 3、登录考试系统、阅读考试须知 4、上午考试 5、午休和就餐 6、下午考试 7、考试结束 一、地点 截止发稿时,华为HCIE北京考场地点在上地八街瑞萨3F。从上地八街融科融智园区大门进入。沿途会有保安指引,地点问题不用担心 二、考场硬件环境 整体点评 华为北京HCIE实验考场据悉去年底刚刚启用瑞萨新考区,整体环境很好。 优点: 办公区和考试中心,照明灯光明亮舒适、空气温度湿度适宜。 考试期间的工位和座椅体感很舒适。 键盘全部使用樱桃红轴。 缺点: 午餐菜品口感一般。 零食种类较少。 1、等候区域 等候区域位于华为瑞萨三楼前台。前台有小墩子,可以乘坐歇脚。 2、HCIE考试中心 北京考试中心平面布局如下: 3、面试考场 如上图,面试考场为一个单人房间,内有一台电脑。考官通过ZOOM与考生远程进行视频会议。 面试期间全程进行屏幕共享。电脑配有绘图板,可以快速进行手绘。 4、实验考场