我正在为技术访谈做准备,并希望知道如何简要解释一个关于在没有进入不必要的细节的情况下制定以下方案的采访者
1. Program that lets people play tic tac toe with each other over the internet?
2. A suitable data structure for a photo editor or text editor? Why?
3. Implementing code to operate the elevators?
4. Implementing the rendering engine of a web browser?
我可以提出以下内容:
该计划主要有2个部分。有一个涉及板式显示的渲染。另一个是包含找到获胜移动,AI,游戏完成等的方法的实际引擎。然后,将有与网络相关的代码。
由于主元素是文本和相关操作,因此似乎适用于文本编辑器的链接列表。对象的链接列表是否适合照片编辑器?
这再次涉及电梯的显示渲染以及资源同步。
没有多少关于如何接近这个的线索。
足够足够吗?我在接近这些问题时缺少一些重要细节。
照片编辑器是一个有趣的编辑器。
您需要考虑照片编辑器的要求:
我建议在内存中持有多个缩放级别,以一次内存中的较低分辨率和比特 - 深度(如MIPMAPS),以允许在不同的缩放级别下进行有效操作,编码作为修补程序的修补程序,而不是直接编辑基座(即,分别单独改变)。贴片可以被编码为网格,只有仅具有分配给它们的内存的绘制方块。编辑可以被编码为操作(例如工具,鼠标鼠标,移动,鼠标向上)在它们呈现为像素之前 - 这允许将廉价的油漆作为当前MIPMAP级别的补丁进行并快速显示,而背景线程会创建修补程序在其他mipmap级别。
单例双重检查 jvm之垃圾回收: 标记-清除、复制、标记整理 分代算法: 年轻代:分Eden区、Survivor0区、Survivor1区 他们三个是按照8:1:1比例的。大部分对象都是创建在 Eden区。回收是先将eden区存活的对象复制到一个s0区,然后清空eden区;当s0也满了,则将Eden和s0存活的对象复制到s1并清空,然后s0和s1进行交换,保持s1是空的 当s1不足以放下eden和...
五次及以上多项式方程没有根式解(所谓根式解,是指没有像二次方程那样的万能公式) 使用牛顿迭代法来求解这种变态的高次方程。不断 曲线的切线可以拟合曲线,寻找曲线的根点;知乎大神的牛顿法解释 应用牛顿-拉弗森方法求解高次方程的解,需要满足以下要求: 函数在整个定义域内最好是二阶可导的; 起始点对求根计算影响重大,可以不断试错。...
1.JDK和JRE的区别是什么?他们各自有什么作用 答: JDK是Java的开发工具,它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等。JRE只是Java程序的运行环境,它最核心的内容就是JVM(Java虚拟机)及核心类库。 分析: JRE是Java Runtime Environment的缩写,是Java程序的运行环境。既然是运行,...
网络分几层 交换机 路由器属于那一层? 交换机(数据链路层) 数据交换机(Switch)也叫交换式集线器,是一种工作在OSI第二层(数据链路层,参见“广域网”定义)上的、基于MAC (网卡的介质访问控制地址)识别、能完成封装转发数据包功能的网络设备。 路由器(网络层) 路由器是一种连接多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译&rdq...
面试问题收集 AOP的实现过程 类的加载过程 spring自动装配原理 hash扩容原理 数据库锁的实现原理 数据库事务实现原理 数据库的索引设计思想 索引的数据结构 @SpringBootApplication底层 Redis分布式锁的原理 redis分布式锁应用场景 Redis实现分布式锁的场景分析 AOP的实现过程 如果目标对象实现了接口,默认情况下会采用 JDK 的动态代理实现 AOP; ...
面试问题总结(你真的准备好了吗) 1.1.1.祝你好运 准备换一份工作你的真的准备好了吗,朋友送的一份面试资料,本文搞为初稿大致看过,有时间在持续修正更新 1.1.2. 开发流程 1.1.3. 并发 什么是并发:所谓并发操作是指在同一时间可能有多个用户对同一数据进行读写操作. 并发问题的瓶颈在哪儿,读和写。 怎么解决并发: 所谓并发是指大量用户同一时刻读写同一条数据,那关键点就在于读和写...
Nginx负载均衡策略 轮询 默认方式 weight 权重方式 ip_hash 依据ip分配方式 least_conn 最少连接方式 fair(第三方) 响应时间方式 url_hash(第三方) 依据URL分配方式 Redis默认端口号:6379 在解释了Redis的LRU机制之后,如期向大家解释了采用6379作为默认端口的原因。 redis是键值对的数据库,有5中主要数据类型: 字符串类型(st...
背景: redis字典(hash表)当数据越来越多的时候,就会发生扩容,也就是rehash 对比:java中的hashmap,当数据数量达到阈值的时候(0.75),就会发生rehash,hash表长度变为原来的二倍,将原hash表数据全部重新计算hash地址,重新分配位置,达到rehash目的 redis中的hash表采用的是渐进式hash的方式: 1、redis字典(hash表)底层有...
2019独角兽企业重金招聘Python工程师标准>>> 我们平时按下键盘上的‘回车键’,就能实现回车换行【我们在屏幕上所看到的就是光标移到了下一行的开头位置!!ps:不讨论软件实现的特殊功能,如word里的回车智能缩进】。因此对这个按键更准确说应该叫做‘回车换行键’ 就且将这种将光标移到下行开...
首先,在Windows操作系统下安装python,完成python环境的搭建。(我看有的博客需要配置环境变量,其实不必要,因为我们在安装的时候只要勾选如下图所示即可避免不必要的麻烦) 第二步,使用快捷键windows+R或者点击如下图所示,之后点击运行 在其中输入cmd即可进入dos命令。 第三步,输入以下命令 就会自动安装,等待安装完成即可。 第四步,检测django是否安装成功,如果出现如下图...
I have a dataframe and i want to calculate the sum of variables present in a vector in every row and make the sum in other variable after i want the name of new variable created to be from the name of...
I have a very rough project that done partially in zend framework (not ZF2). The 'application', 'library' and 'public' folders are on the same root. Now i need to create a library 'Anil' in the 'libra...
I want to hide some of the categories from magento home page. I have created some categories like New Arrivals, Special Offer Which I would like to show in some different way may be in left panel or r...
I am writing to an internal file in Android Studio The code lets me write lines of data split with commas. I am able to then go to another activity and read it all out at once. However I want to be ab...
I'm new to Ruby On Rails, I used the acts_as_votable gem to create Like and Unlike Buttons to make Users like and unlike Posts but I can't make them change from Like to Unlike (and viceversa) and upda...