面试宝典相关知识
-
Android年薪30万面试宝典-不定期更新Android年薪30万面试宝典1、Activity的生命周期生命周期:对象什么时候生,什么时候死,怎么写代码,代码往那里写。注意:当打开新的Activity,采用透明主题的时候,当前Activity不会回调onStoponCreate和onDestroy配对,onStart和onStop配对(是否可见),onResume和onPause配对(是否在前台,可以与用户交互)打开新的Activity的时候,相关的Log为: Main1Activity: onPause Main2Activity: onCreate Main2Activity: onStart Main2Activity: onResume MainA1ctivity: onStop异常状态下的生命周期:资源相关的系统配置发生改变或者资源不足:例如屏幕旋转,当前Activity会销毁,并且在onStop之前回调onSaveInstance
-
Java面试宝典之基础问题1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。 2.JDK和JRE的区别是什么? Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。它同时也包含了执行applet需要的浏览器插件。Java开发
-
面试宝典系列-mysql性能优化方案表结构优化:1、根据自己的业务选择合适的引擎2、表设计时尽量符合第三范式第一范式:表的列的具有原子性,不可再分解,即列的信息,不能分解, 只有数据库是关系型数据库就自动的满足。第二范式:表中的记录是唯一的, 就满足第二范式, 通常我们设计一个主键来实现第三范式:表中不要有冗余数据, 即表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放.为什么说尽量符合? 因为有些系统为了提高运行效率,就必须降低范式标准,适当保留冗余数据。3、表的字段尽可能使用NOT NULL4、如果知道字符串固定长度,那么就用char型,不要用varchar型5、主从分离,读从库,写主库6、当表的字段过多时,进行垂直分割;如果数据过多时,进行水平分割sql优化:1、不使用Select *,只查询需要的字段,查询所有占用内存2、多表连接时,尽量小表驱动大表,即小表 join 大表3、插入多条数据时,尽量组合成一天sql批量插入4、使用存储过程5、使用枚举或整数代替字符串类型6、开启慢查询,对慢sql使用explain
-
面试宝典系列-mysql性能优化方案表结构优化:1、根据自己的业务选择合适的引擎2、表设计时尽量符合第三范式第一范式:表的列的具有原子性,不可再分解,即列的信息,不能分解, 只有数据库是关系型数据库就自动的满足。第二范式:表中的记录是唯一的, 就满足第二范式, 通常我们设计一个主键来实现第三范式:表中不要有冗余数据, 即表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放.为什么说尽量符合? 因为有些系统为了提高运行效率,就必须降低范式标准,适当保留冗余数据。3、表的字段尽可能使用NOT NULL4、如果知道字符串固定长度,那么就用char型,不要用varchar型5、主从分离,读从库,写主库6、当表的字段过多时,进行垂直分割;如果数据过多时,进行水平分割sql优化:1、不使用Select *,只查询需要的字段,查询所有占用内存2、多表连接时,尽量小表驱动大表,即小表 join 大表3、插入多条数据时,尽量组合成一天sql批量插入4、使用存储过程5、使用枚举或整数代替字符串类型6、开启慢查询,对慢sql使用explain
面试宝典相关课程
面试宝典相关教程
- 4. 贪心算法的典型应用 这是一个非常经典的编程题,题名为:洞中取宝,题目的描述如下:假设山洞中有 n 种宝物,每种宝物有一定重量 w 和相应的价值 v,毛驴运载能力有限,只能运走 m 重量的宝物,一种宝物只能拿一样,宝物可以分割。那么怎么才能使毛驴运走宝物的价值最大呢?注意:由于宝物有重量和价值两种特征,我们的贪心是应该取价值还是重量呢?还是二者兼顾?这样会产生三种贪心策略:每次挑选价值最大的宝物,直到无法运载下一个宝物为止;每次挑选重量最轻的宝物,直到无法运载下一个宝物为止;每次挑选价值/重量 最大的宝物,直到无法运载下一个宝物为止;很明显,我们贪心的策略应该选择第三种,这样能兼顾宝物价值和重量,找到满足要求的最优解:$ts[i]¥:表示第 i 个宝物的价值 i=1...ni=1...ni=1...n;ws[i]ws[i]ws[i]:表示第 i 个宝物的重量 i=1...ni=1...ni=1...n;ttt:表示毛驴最大运载能力。此时我们需要计算宝物的单位价值:pre_value[i]=ts[i]ws[i],i=1,⋯,npre\_value[i]=\frac{ts[i]}{ws[i]},i=1,\cdots,npre_value[i]=ws[i]ts[i],i=1,⋯,n
- 淘宝 再来看看淘宝网,它也使用了一些雪碧图来支持图标的切换:这三个网站几乎是国内最流行的三个网站了,但是这还并没有展现出雪碧图的潜力,在最后我们将会以实战的形式带领大家使用雪碧图来制作无限循环的炫酷动画效果。
- 4. 面试题 模块化在面试中经常会被问到,掌握其深层原理是回答这类问题的关键。下面是面试中参考的两道题,这里和大家分享一下,提供的答案仅供参考。commonjs 规范与 es module 规范的区别?两个规范的区别可以从以下几个方面来回答:模块的导出和导入:commonjs 使用的是 module.exports 和 require;es module 使用的是 export 和 import;模块的引入方式:commonjs 是动态引用;esmodule 是静态分析,export 和 import 只能出现在代码的顶层,在编译时就可以确定引用;模块的引用类型:commonjs 对基本类型传递值,esmodule 对基本类型是传递引用;CommonJs 的 this 是当前模块,ES6 Module 的 this 是 undefined;对 webpack 来说,想要支持 tree shaking,包必须采用 es module 规范。JS 在加载时分为两个阶段:编译和执行,而 ES6 模块是在 编译时进行加载(也可以叫:静态加载),这使得静态分析成为可能。es module 自动采用严格模式,不管你有没有在模块头部加上 "use strict";。题目:commonjs 规范的循环引用这是一道经典的 commonjs 的面试题,分析下列这段代码,并解释原理。//main.jsvar a = require('./a')console.log(a)// a.jsmodule.exports.a = 1var b = require('./b')console.log(b)module.exports.a = 2// b.jsmodule.exports.b = 11var a = require('./a')console.log(a)module.exports.b = 22回答本题的核心就是要知道 require 后的模块是会被缓存的,还需要注意的是先加入缓存,然后再执行。这样在按照代码同步的执行顺序去分析代码就会很清晰。具体分析如下:使用 node main.js 执行 main.js 文件内容;执行 require('./a') 会将 a 模块加入缓存,然后执行 a 模块中的内容,执行权交到了 a 模块中,执行 a;执行第一行将缓存的 a 值赋值为 1,然后执行第二行 require('./b') 把 b 模块加入缓存,并把执行权交到 b 模块中;b 模块中把 b 的值赋值为 11,在 require('./a') 时,是从缓存中取的值,这里就会在控制台打印 {a: 1},最后把缓存中的 b 值修改为 22,执行权交给上一级;代码执行权回到 a 模块中,这时 b 从缓存中取的值是 22,控制台中打印 { b: 22 } ,最后把缓存中的 a 值修改为 2,执行权交给上一级;代码执行回到 main 模块中,这时缓存中的 a 是 2,控制台中打印 { a: 2 } ,然后代码执行完毕。
- 2. 面试技巧 面试官出的面试题一般会有 3 个特点:强调原理性: 通过面试者对问题原理性的讲解,可以了解面试者是否真正理解、掌握了相关知识。对于知识而言,用是一个层次,说出来又是一个层次;强调基础性: 基础的知识才是永恒的,任何高级的运用都是建立在基础知识之上,通过对基础知识的提问可以了解面试者认知的深浅。是浮于表面,还是扎根源头;讲究细节: 很多学生学完后,自我感觉非常好,但是面试题一般都会问到一些学习过程易忽视的细节内容。面试者解答时,需要掌握 3 个技巧:要有专业性: 同一道题目,正确答案只有一个,若干面试者中,为什么面试官选择了他而没有选择你。一个可能性就是答案不专业,没有切到中心点;有很多面试者,面试完后,自我感觉回答的很好,但没有接到再面试的通知。有一方面原因是回答的不专业。要有自己的见解: 有的人不是在回答问题,而是在向面试官背答案。答案没有错,如果缺少自己的独有理解,如果同时有一个面试者除了给出专业的答案,还附有自己的理解。如果你是面试官,请问你会选择谁;要有层次性: 或者说是条理性、逻辑性,答案要有条理。1、2、3 结构明显,脉络清晰。最忌讳杂乱不清。面试心态,当大家实力相当时,心态就有可能成为决定结果的有利因素:不着急,不恐慌;相信自己;我是来找工作的,我是来找一家值得自己付出的公司,在面试一家能展现自己价值的公司。如果没有被录用,说明还有不足或者说明暂时没有达到这家公司的要求;学会放下,有重新再来的勇气。
- 2. 面试题 即使候选者对上面这些问题全部都对答如流,也不一定能够灵活的运用这些知识。而这道面试题不仅考察了候选人的基础,更考察了候选者对基础知识的灵活运用,来看看这道面试题:(鼠标点击可以互动)要求如下:边框九宫格的每个格子中的数字都要居中鼠标经过时边框和数字都要变红格子中的数字居中用flex实现点击九宫格会弹出对应的数字具体实现如下:1243
- 1. 字典简介 字典由键和对应值成对组成,字典中所有的键值对放在 {} 中间,每一对键值之间用逗号分开,例如:{‘a’:‘A’, ‘b’: ‘B’, ‘c’:‘C’}字典中包含 3 个键值对键 ‘a’ 的值是 ‘A’键 ‘b’ 的值是 ‘B’键 ‘c’ 的值是 ‘C’{1:100, 2: 200, 3:300}字典中包含 3 个键值对键 1 的值是 100 键 2 的值是 200 键 3 的值是 300字典通常用于描述对象的各种属性,例如一本书,有书名、作者名、出版社等各种属性,可以使用字典描述如下:>>> book = {'title': 'Python 入门基础', 'author': '张三', 'press': '机械工业出版社'}>>> book['title']'Python 入门基础'>>> book['author']'张三'>>> book['press']'机械工业出版社'在第 1 行,创建了一个字典用于描述一本书;在第 2 行,使用字符串 ‘title’ 作为键(索引)访问字典中对应的值;在第 4 行,使用字符串 ‘author’ 作为键(索引)访问字典中对应的值;在第 6 行,使用字符串 ‘press’ 作为键(索引)访问字典中对应的值。
面试宝典相关搜索
-
mac osx
machine_start
macox
magellan
malloc
manifest
manifest文件
map
map 遍历
mapreduce编程
maps google com
margin
margin bottom
margin left
margin right
margin top
marginbottom
marginheight
marginleft
margintop