2014年11月12日到白云区的恒拓开源公司面试,在这个过程之中,我感觉我就是一个被虐的渣渣……看样子几乎连基础都不行的渣渣。那么我现在就回忆一下那个面试的一些基础吧。看过的书,然后忘记了是最大的悲哀,但还有一种情况就是,那本书是前俩天才看过的。
基础很重要
我是按照我这次的经历来写的,只是个人的感想。
基础很重要,重新回顾一下昨天的面试,我已经蠢到家了。在一些细节上的问题回答不出来,对于数据库也还给老师了。好吧,这个是没有复习的原罪。
java的基础类型有哪里
这个问题看起来很蠢吧,但我也回答错误了。
正确答案是:byte short int long float double bollean char
但我的回答却多了个 String
String
是一个字符串类,没错就是字符串的类,为了更好的操作字符而弄出来的类。
默默的翻了一下java 的api文档,搜 String ,好吧,String居然是final的,在类的前面声明了final class String ,从某种角度而言,String是不可被重写的,在比较一个对象的时候,通常,我们会使用 == 或者 equals 比较俩个对象,而String 是一个对象,通常会根据对象所在的内存地址比较。终于感觉到为什么前面那么多次的笔试都被刷了……Orz
String 和StringBuffer的区别
当听到这个的时候,我在想到底有什么区别,然后我傻乎乎的说,现在不是推荐使用StringBuilder么。好,那么你说说String 和StringBuilder的区别。
现在想想总感觉到处都是槽点。我的回答是,StringBuilder的效率比String快,效率高。哪里快了?说来听听……当时我就楞了,QAQ答不上来
String 是java.lang.String ,StringBuffer是java.lang.StringBuilder,从某种程度上而言,就是对象的可操作据别,因为StringBuilder可以操作append 在对象的后天添加数据,而不改变对象本身一开始头指向的内存地址。通常一开始申请StringBuilder的时候,会自身分配比较大的内存空间,在里面的数据满了后会自身扩展内存空间。但首地址是不会改变的。并且,StringBuilder可在对象内任意位置删除字符和增加字符,替代字符。
但String则会改变内存地址,除非是只声明了一次,并且没有在后面使用的时候 + 某些字符串。
HashMap 和 HashSet的区别
当时这个的时候,我想。。。。俩者有区别么,不都是hash计算的么。
后来感觉好像区别在于储存的时候,hashmap是键值对储存 hashset是hash计算储存,就是储存的方式是不一样的。然后再读取的方式上,hashmap可以直接get(键)读取,然后hashset呢……好像是迭代器读取,用到Iterator读取数据。
从某种程度上,hashmap的存储方式是储存那些可能需要经常修改的数据和读取的数据,因为hashmap中的函数有 put set delete replace。
badend
第一次的技术面试就这样的over了,连面试的大大都很想找话题了。但我实在是不知道如何回答好QAQ 也不知道如何去面对好。反正出门的那一刻,我得继续努力找下一份实习和得努力的学习去了,顺便在思考了一天后写下了这篇东西。生活还是要继续的……