class Person: def __init__(self): self.age = 1 def __call__(self, *args, **kwargs): print 'age', self.age self.age += 1 return self person = Person() person()()() print type(person()) 实例+()调用__call__,返回self,可实现循环调用. 知乎面试后端有问到. C++/C 对语言而言的严格都才是足够高的.…
这是前一阵子群友发在群里的一道面试题,利用 Python 字典的特性,可以巧妙地使用精简代码达成完美解. 题目 将 data 转换成 new_data 这种形式,写出转换过程. data = { 'a_b_h':1, 'a_b_i':2, 'a_c_j':3, 'a_d':4, 'a_c_k':5, 'a_e':6 } new_data = { 'a':{ 'b':{ 'h':1, 'i':2 }, 'c':{ 'j':3, 'k':5 }, 'd':4, 'e':6 } } 可以看出,转换的过…
今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个“父目录不存在”的警告. echo $dir."创建成功<br>"; //输出创建成功的目录 }else{ $dirArr=explode('/',$dir); /…
预定义类加载器和双亲委派机制 JVM预定义的三种类型类加载器: 启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib下面的类库加载到内存中(比如rt.jar).由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作. 标准扩展(Extension)类加载器:是由 Sun 的 ExtClassLoader(sun.misc.Launcher$ExtClassLoader)…
一.科普定义 这篇博文的两个主角“synchronized”和“读写锁” 1)synchronized 这个同步关键字相信大家都用得比较多,在上一篇“多个线程之间共享数据的方式”中也详细列举他的应用,在这就不多说只做几点归纳: Java提供这个关键字,为防止资源冲突提供的内置支持.当任务执行到被synchronized保护的代码片段的时候,它检查锁是否可用,然后获取锁,执行代码,释放锁. 常用这个关键字可以修饰成员方法和代码块 2)读写锁 我们对数据的操作无非两种:“读”和“写”,试想一个这样的…
回来想了想,写出了如下的程序: /** * 一道面试题,按照其描述要求进行快速排序(英文的,希望理解是对的..) * 要求:和一般的快速排序算法不同的是,它不是依次交换pivot和左右元素节点(交换2次),而是交换pivot左边的元素和pivot右边的元素. * * 自己笔写的程序大体上是正确的,但是递归的结束条件没有处理好(我当时写的是返回的i索引值大于0). * 递归的结束条件??? * * 现在看看代码,实际运行了,感觉返回的i索引值大于0这个递归结束条件真的是不对的,因为可能一次排序后根…
一.科普定义(原文:http://903497571.iteye.com/blog/1874752) 这篇博文的两个主角“synchronized”和“读写锁” 1)synchronized 这个同步关键字相信大家都用得比较多,在这就不多说只做几点归纳: Java提供这个关键字,为防止资源冲突提供的内置支持.当任务执行到被synchronized保护的代码片段的时候,它检查锁是否可用,然后获取锁,执行代码,释放锁. 常用这个关键字可以修饰成员方法和代码块 2)读写锁 我们对数据的操作无非两种:“…
__init__函数 当一个类实例被创建时, __init__() 方法会自动执行,在类实例创建完毕后执行,类似构建函数.__init__() 可以被当成构建函数,不过不象其它语言中的构建函数,它并不创建实例--它仅仅是你的对象创建后执行的第一个方法.它的目的是执行一些该对象的必要的初始 化工作.通过创建自己的 __init__() 方法,你可以覆盖默认的 __init__()方法(默认的方法什么也不做),从而能够修饰刚刚创建的对象__init__()需要一个默认的参数self,相当于this.…
前一段时间在网上看到这样一道面试题: 有个老的手机短信程序,由于当时的手机CPU,内存都很烂.所以这个短信程序只能记住256条短信,多了就删了. 每个短信有个唯一的ID,在0到255之间.当然用户可能自己删短信. 现在要求设计实现一个功能: 当收到了一个新短信啥,如果手机短信容量还没"用完"(用完即已经存储256条),请分配给它一个可用的ID. 由于手机很破,我要求你的程序尽量快,并少用内存. 1.审题 通读一遍题目,可以大概知道题目并不需要我们实现手机短信内容的存储,也就是不用管短信…
Java中有关构造函数的一道笔试题解析 1.详细题目例如以下 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时运行 D.一个class仅仅能定义一个constructor 2.解析说明 (1)class中的构造函数是能够省略的 /** * @Title:User.java * @Package:com.you.user.model * @Desc…
看到园友的一道面试题,很好奇,测试了一下结果. public class A { public static int X=B.Y ; public A() { ++X; } } public class B { public static int Y = A.X ; static B() { ++Y; } } static void Main(string[] args) { Console.WriteLine(A.X.ToString()); Console.WriteLine("B.Y&qu…
  题目如下: private static void change(StringBuffer str11, StringBuffer str12) { str12 = str11; str11 = new StringBuffer("new world"); str12.append("new world");} public static void main(String[] args) { StringBuffer str1 = new StringBuffe…
背景:学习java的基础知识,每次回顾,总会有不同的认识.该文系转载 最近去面试了几家公司,被问到hashCode的作用,虽然回答出来了,但是自己还是对hashCode和equals的作用一知半解的,所以决定把它们研究一下. 以前写程序一直没有注意hashCode的作用,一般都是覆盖了equals,却没有覆盖hashCode,现在发现这是埋下了很多潜在的Bug!今天就来说一说hashCode和equals的作用. hashcode提升查找效率 先来试想一个场景,如果你想查找一个集合中是否包含某个…
Python中的__init__()和__call__()函数 在Python的class中有一些函数往往具有特殊的意义.__init__()和__call__()就是class很有用的两类特殊的函数. __init__() 在Python中,__init__()函数的意义等同于类的构造器(同理,__del__()等同于类的析构函数).因此,__init__()方法的作用是创建一个类的实例. __call__() Python中的函数是一级对象.这意味着Python中的函数的引用可以作为输入传递…
function Foo() { getName = function () { alert(1); } return this; } Foo.getName = function () { alert(2); } Foo.prototype.getName = function () { alert(3); } var getName = function () { alert(4); } function getName () { alert(5); } 这是在网上看到的一道面试题  嗯 考…
前言 之所以在这里写下python爬虫常见面试题及解答,一是用作笔记,方便日后回忆:二是给自己一个和大家交流的机会,互相学习.进步,希望不正之处大家能给予指正:三是我也是互联网寒潮下岗的那批人之一,为了找工作而做准备. 一.题目部分 1.scrapy框架专题部分(很多面试都会涉及到这部分) (1)请简要介绍下scrapy框架. (2)为什么要使用scrapy框架?scrapy框架有哪些优点? (3)scrapy框架有哪几个组件/模块?简单说一下工作流程. (4)scrapy如何实现分布式抓取?…
前言 之所以在这里写下python爬虫常见面试题及解答,一是用作笔记,方便日后回忆:二是给自己一个和大家交流的机会,互相学习.进步,希望不正之处大家能给予指正:三是我也是互联网寒潮下岗的那批人之一,为了找工作而做准备. 一.题目部分 1.python中常用的数据结构有哪些?请简要介绍一下. 2.简要描述python中单引号.双引号.三引号的区别. 3.如何在一个function里设置一个全局的变量. 4.python里面如何拷贝一个对象?(赋值.浅拷贝.深拷贝的区别) 5.如果custname字…
这是一道面试题, 请先思考,在看讲解 :) var param = 1; function main() { console.log(param); var param = 2; console.log(this.param); this.param = 3; } //下面两条语句分别会在控制台打印什么? main(); var m = new main(); 讲解如下: 1. main() , 打印的结果为: undefined , 1 a. >  来看第一个打印的值为什么是 undefine…
关于一道面试题,使用C#实现字符串反转算法. 题目见http://student.csdn.net/space.php?do=question&ac=detail&qid=490 详细内容如下: ///<summary> ///使用C#实现字符串反转算法 /// e.g. 输入"12345", 输出"54321" ///请使用你认为的最优算法 ///</summary> ///<param name="s&qu…
被问到了这样一道面试题,当时就懵了,内心一直觉得C++肯定在很多方面要比C#或者java要牛b的. 但是真的不知道怎么回答. 问题是:你以前一直做得是.NET相关项目,现在为什么找C++开发相关工作呢? 1.性能? 2.跨平台? 3.开发难易程度? 4.大公司选择(还是回答题目了)? 真心请教下大家,C++到底牛b在哪里?为什么有时候必须用C++.(园子里以.NET居多吧,但是你们真的不觉得C++比C#牛b吗?) PS: 广州,最近雨一直下,窗外的雨声和音响里的音乐声交错在一起,为什么会有那么一…
珍藏版 Python 开发工程师面试试题 说明:不拿到几家公司的offer,那就是卑鄙的浪费 一.Python_基础语法 1.可变与不可变类型: 2.浅拷贝与深拷贝的实现方式.区别:deepcopy如果你来设计,如何实现: 3.__new__() 与 __init__()的区别: 4.你知道几种设计模式: 5.编码和解码你了解过么: 6.列表推导list comprehension和生成器的优劣: 7.什么是装饰器:如果想在函数之后进行装饰,应该怎么做: 8.手写个使用装饰器实现的单例模式: 9…
一句软件工程界的名言,让我想起了一个和一道笔试题有关的故事.希望更多的人了解 UML 背后的思想比他的语法更重要,是笔者写作本文的一点小愿望. 一.从一句软件工程名言说起 对很多事情的处理上,东西方都大相径庭.究其根底,往往是东西方文化的差异使然. “ 有工具的傻子还是傻子!( A Fool with a Tool is Still a Fool! ) ” 这句在软件工程界颇为有名的话,就体现了西方人说话不大客气的特点.作为中国人,您可能不大喜欢这句话的表达方式,但其内容的正确性是不容置疑的 —…
一道面试题引发的对Java内存模型的一点疑问 问题描述 如上图所示程序,按道理,子线程会通过 num++ 操作破坏 while 循环的条件,从而终止循环,执行最后的输出操作.但在我的多次运行中,偶尔会出现 while 循环一直不结束的场合.像我截图一样,程序一直不终止,JDK7.JDK8 均已试验,均能偶然触发. 回复 [西湖の风]:变量前加个 volatile. [csyangchsh]:volatile 使用读写屏障强制刷新缓存,如果不加就由 CPU 决定何时刷新. [sofkyle]:由…
前言 最近小农的朋友--小勇在找工作,开年来金三银四,都想跳一跳,找个踏(gao)实(xin)点的工作,这不小勇也去面试了,不得不说,现在面试,各种底层各种原理,层出不穷,小勇就遇上了这么一道面试题,因为没有回答好,面试被PASS,让他备受打击,作为大(lao)哥(si)哥(ji)的我,肯定要安慰一下,到底是什么样的面试题,让小勇又一次夭折在面试的路上,好奇怪为什么要说又?简直让人喜极而泣,哈哈哈,言归正传,我们一起来看一下! 话说小勇正襟危坐在面试官面前,这已经是小勇的第五次面试了,前几次都是…
  今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个"父目录不存在"的警告. echo $dir."创建成功<br>"; //输出创建成功的目录 }else{ $dirArr=explode(…
LeetCode 80--删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1: 给定 nums = [1,1,1,2,2,3], 函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 . 你不需要考虑数组中超出新长度后面的元素. 示例 2: 给定 nums = [0,0…
题目1:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2. 你不需要考虑数组中超出新长度后面的元素. 示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的长度 5, 并且原数组 n…
一道测试工程师面试题(来自搜狗): 自己写了解法: # -*- coding: utf-8 -*- import re #从整体log中过滤出有用的部分,缩小搜索范围 def filter_log(the_log): r = r'[CRIUS]' return re.findall(r, the_log) #统计每个目标字符出现过的最少次数,即最少出现过几次完整log def check_count(target,target_log): target_dic = {} for one in t…
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. [微软笔试题] 难度系数:⭐⭐⭐ 考察频率:⭐⭐⭐⭐⭐ 题目描述: 找出单链表中的倒数第k个元素,例如给定单链表:1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7,则单链表的倒数第3个元素为5. 方法一:顺序遍历法 这种方法需要对单链表进行两次遍历,第一次遍历得到单链表的长度,这样我们在第二次遍历过程中就知道了什么时候找…
有这么一道iOS面试题 以下代码有没有什么问题?如果有?如何解决? for (int i = 0; i < largeNumber; i++) { NSString *str = [NSString stringWithFormat:@"hello -%04d", i]; str = [str stringByAppendingString:@" - world"]; } 局部释放池和RunLoop释放池的概念: 主线程的RunLoop是默认开启的(视图用[[…