聊一聊让我蒙蔽一晚上的各种常量池

在写之前我们先来看几个问题,假如你对这些问题已经很懂了的话,那大可不用看这篇文章,如果不大懂的话,那么可以看看我的想法。问题1: public static void main(String[] args){ String t1 = new String("1"); t1.intern(); Str ... »

前端面试 - 算法篇(二分法)

前段时间换了份工作,也经历了很多面试,最终通常都会扑在算法上 虽说前端是所有程序员中,对于算法的要求最低的一个岗位,但算法依旧是进阶的必修课 于是决定记录一下与算法相关的面试题,以后拿去面别人 一、面试题 问:有一个一百层的高楼,现在给你两个完全一样的玻璃球,去测出在哪一层楼把球扔出去,刚好能把玻璃 ... »

说说最近一周的面试和想法

不少小伙伴还是在公众号私信问我上周怎么突然没有日更了,我也有在公众号中答应大家后面会给回复。好啦,现在还是简单说一下吧。 过去的一周中,我主要是出去找工作去啦~过去的一周,面了 4 家公司,从小到大都有,最终斩获了 3 个 offer。在经历了一番内心挣扎之后,我于周二上午决心选择了福利待遇相对较差 ... »

JVM(1)---虚拟机在运行期的优化策略

1.解释器与JIT编译器 首先我们先来了解一下运行在虚拟机之上的解释器与JIT编译器。当我们的虚拟机在运行一个java程序的时候,它可以采用两种方式来运行这个java程序: 采用解释器的形式,也就是说,在运行.class运行的时候,解释器一边把.class文件翻译成本地机器码,一边执行。显然这种一边 ... »

JAVA 多线程 seelp,wait,join,yield之间的区别

seelp: 睡眠的意思,是 Thread 的方法,使当前线程在指定时间睡眠,会锁住对象 wait: 等待的意思,是 Object 的方法,使当前线程暂停,使用notify()或者notifyAll()方法唤醒,会释放对象 join: 加入的意思,是 Thread 的方法,其他线程等待向前线程完成后 ... »

面试 16:栈的压入压出队列(剑指 Offer 第 22 题)

我们今天继续来看看周五留下的习题: 面试题:输入两个整数序列,第一个序列表示栈的压入顺序,请判断二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如:压入序列为{1,2,3,4,5},那{4,5,3,2,1} 就是该栈的弹出顺序,而{4,3,5,1,2} 明显就不符合要求; 这道题还是比 ... »

面试题:如何测试微信朋友圈(附图)

如果碰到这种题目,我们可以从以下几个方面来分析: 功能、界面/易用性、中断、网络、兼容性、安全性、性能测试 温馨提示:本文文字内容有点多,如果不喜欢看大篇幅文字的朋友,可自行拖到文末看我整理的测试思维图 功能测试 1、朋友圈发送功能 1)只发送文本 a、考虑文本长度:1-1500字符(该数据为百度数 ... »

面试 15:顺时针从外往里打印数字(剑指 Offer 第 20 题)

面试 15:顺时针从外往里打印数字 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印每一个数字。例如输入: {{1,2,3}, {4,5,6}, {7,8,9}} 则依次打印数字为 1、2、3、6、9、8、7、4、5 这是昨天最后给大家留下的题目,相信大家也有去思考如何处理这道题目了。 初看这 ... »

创业公司的技术总监,去面试,结果凉了。

1、先来个自我介绍 首先,大概介绍下自己,后端开发8年,头两年用.NET,之后用Python至今,大概六年。大概工作到第三年的时候,就开始兼着任管理职位。工作地点是在一个三、四线的沿海城市,本地IT业不发达,公司规模普遍偏小,对技术要求不高,但需要较为全面的人才。而我长时间在这样的氛围下工作,慢慢也 ... »

面试 14:合并两个排序链表

终于又回到了我们的算法习题讲解了。南尘发现最近文章阅读量明显比以前少了不少,就上门请教小伙伴原因。他们都说作为一名 Android 应用开发工程师,实在是在工作中没有接触到算法。做技术这个东西,学习了还是得练,不练过几天一定会忘掉。 不过想必大家读南尘的文章也是深有所感,基本都是站在一个极其普通的程 ... »

面试 12:玩转 Java 快速排序

终于轮到我们排序算法中的王牌登场了。 快速排序由于排序效率在同为 O(nlogn) 的几种排序方法中效率最高,因此经常被采用。再加上快速排序思想——分治法也确实非常实用,所以 在各大厂的面试习题中,快排总是最耀眼的那个。要是你会的排序算法中没有快速排序,我想你还是偷偷去学好它,再去向大厂砸简历。 事 ... »

面试 10:玩转 Java 选择和插入排序,附冒泡最终源码

昨天给大家讲解了 Java 玩转冒泡排序,大家一定觉得并没有什么难度吧,不知道大佬们玩转了吗?不知道大家有没有多加思考,实际上在我们最后的一种思路上,还可以再继续改进。 我们先看看昨天最终版本的代码。 public class Test09 { private static void swap(in ... »

面试 9:Java 玩转冒泡排序

面试 9:用 Java 实现冒泡排序 南尘的朋友们,新的一周好,原本打算继续讲链表考点算法的,这里姑且是卡一段。虽然在我们 Android 开发中,很少涉及到排序算法,因为基本官方都帮我们封装好了,但排序算法也是非常重要的,在面试中 归并排序 和 快速排序 一直为高频考点,但在学习它们之前,我们必须 ... »

好的测试团队需要有妹子!

关于硅谷女性代表性的缺乏,人们进行了大量的谈论。虽然在IT领域努力争取更多的平等人口本身就是一个有价值的事业,但当我们未能积极地将女性纳入测试团队时,实际上对我们行业非常不利。接下来的阅读,你将了解到原因。 托马斯·杰斐逊曾经说过:“意见的差异导致了调查和对真理的探究...”女性的典型认知差异使得她 ... »

面试 8:快慢指针法玩转链表算法面试(二)

昨天在最后给大家留了拓展题,不知道大家有没有思考完成,其实南尘说有巨坑是吓大家的啦,实际上也没什么。我们来继续看看昨天这个拓展题。 面试题:给定单链表的头结点,删除单链表的倒数第 k 个结点。 前面的文章见链接:面试 7:面试常见的链表算法捷径(一) 这个题和前面的文章中增加了一个操作,除了找出来这 ... »

受得了多大的委屈,才做得了多大的事

2012年,8月23日,微信上线了微信公众平台。这个独属于张小龙团队的“发明”,让微信不再只是一个即时通讯工具或社交工具,彻底改写了中国互联网的生态解构。 受得了多大的委屈,做得了多大的事;受得了多大诋毁,就能承的住多大赞美;耐得住寂寞,才能守得住繁华。 为什么一个老板再难,也不会轻言放弃,而一个员 ... »

面试 7:快慢指针法玩转链表算法面试(一)

面试 7:面试常见的链表类算法捷径 链表是我们数据结构面试中比较容易出错的问题,所以很多面试官总喜欢在这上面下功夫,为了避免出错,我们最好先进行全面的分析。在实际软件开发周期中,设计的时间通常不会比编码的时间短,在面试的时候我们不要着急于写代码,而是一开始仔细分析和设计,这将给面试官留下一个很好的印 ... »

阿里分布式服务框架Dubbo的架构总结

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider ... »

深入理解JAVA中的NIO

前言: 传统的 IO 流还是有很多缺陷的,尤其它的阻塞性加上磁盘读写本来就慢,会导致 CPU 使用效率大大降低。 所以,jdk 1.4 发布了 NIO 包,NIO 的文件读写设计颠覆了传统 IO 的设计,采用通道+缓存区使得新式的 IO 操作直接面向缓存区,并且是非阻塞的,对于效率的提升真不是一点两 ... »

面试 6:拓展性更好的代码,更容易拿到 Offer

编辑文章 今天给大家带来的是 《剑指 Offer》习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考。 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分,希望时间复杂度尽量小。 看到这道题,想必大多数人 ... »