原创 Java程序員去騰訊面試,居然扯了半小時的CountDownLatch

一個長頭髮、穿着清爽的小姐姐,拿着一個嶄新的Mac筆記本向我走來,看着來勢洶洶,我心想着肯定是技術大佬吧!但是我也是一個才華橫溢的人,穩住我們能贏。   面試官:看你簡歷上有寫熟悉併發編程,CountDownLatch一定用過吧,跟我

原创 牛皮!阿里P8竟然把《數據結構與算法》講明白了,帶源碼筆記

前言 經歷過校招的人都知道,算法和數據結構都是不可避免的。 在筆試的時候,最主要的就是靠算法題。像拼多多、頭條這種大公司,上來就來幾道算法題,如果你沒AC出來,面試機會都沒有。 在面試(現場面或者視頻面)的時候也會問算法題,難度肯定是沒有

原创 這就是傳說中最經典的外包案例 ?看完再也不去幹外包了

前言 外包是指將承包合約之一或全部委託給承包合約當事人以外的第三人的商業活動決策。其目的爲節省成本、集中精力於核心業務、善用資源、爲獲得獨立及專業人士的專業服務等。 我們先來看下這些傳說中最經典的外包案例 案例一、當天貓的貓撞上人民幣的

原创 Java程序員掌握了被吹的神乎其神的微服務,真的能進阿里嗎?

前言 最近幾年微服務很火,大家都在建設微服務,彷彿不談點微服務相關的技術,都顯得不是那麼主流了。 微服務作爲一項在雲中部署應用和服務的新技術已成爲當下最新的熱門話題。但大部分圍繞微服務的爭論都集中在容器或其他技術是否能很好的實施微服務,而

原创 字節跳動Java崗算法面試有多難?看完這些你就知道了

前言 算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表着用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果一個算法有缺陷,或不適合於某個問題

原创 厲害了,頭一次見有大佬把TCP/IP三次握手四次揮手解釋的這麼明白

計算機網絡體系結構 在計算機網絡的基本概念中,分層次的體系結構是最基本的。計算機網絡體系結構的抽象概念較多,在學習時要多思考。這些概念對後面的學習很有幫助。 網絡協議是什麼? 在計算機網絡要做到有條不紊地交換數據,就必須遵守一些事先約定好

原创 安保人員辦公室巡查見電腦沒關,小手一動,第二天程序員崩潰

寫在前面 作爲程序員的你下班時是不是將顯示器關掉,就揣着手機下班走人了?   曾有安保人員晚上來辦公室巡查時問,爲什麼這些人不關機就下班呢? 作爲程序員,你會心一笑。對方不明白如果關機了,第二天程序員上班可能會崩潰: 打開IDEA,並定

原创 奇葩程序員:新來的同事某個類寫了長達766行,差點被打斷腿

  答應我,別再寫上千行的類了好嗎? 最近在對已有項目進行擴展的時候,發現要改動的一個類它長766行,開放了近40個public接口,我流着淚把它給改完了。爲了防止這樣的慘劇再次發生在我的身上,我覺得有必要寫一篇博客來讓廣大程序猿同胞知

原创 面試官:Arrays.sort()爲什麼可以對int等數組進行排序

前言 排序是在程序開發中最常用到的,最常見的就是針對一些數字進行排序。而現實中像商品的名字,訂單的日期等進行排序。Java的JDK中就自帶了Comparable接口,那麼來看下這個,如何與面試官對答如流。 拋下Arrays.sort()中

原创 java程序員必須知道的內存知識-應用層

1.volatile 可見性,使用volatile修飾的變量可以立刻被其它線程讀取到,經常會被用到多線程同步的關鍵變量上,像aqs的state。 因爲CPU在訪問主存需要大約十幾個時鐘週期,爲了提高cpu的效率便有了高速緩存,當數據被加載

原创 爲什麼有很多程序員沉醉於舒適區,習慣於CRUD,不求上進呢?

    前言 近日,渣渣煙有一次十點多下班,然後喊了一輛首汽約車,接着展開了一段很有意思的聊天。我覺得挺有收穫的,拿來分享一下! ps:這裏說一下,很多人坐專車的時候,都是在那埋頭苦摁手機。但是渣渣煙不一樣(人醜,所以安全),渣渣煙每

原创 還在用if(obj!=null)做非空判斷?帶你快速上手Java8的新特性 Optional來儘量簡化代碼同時高效處理NPE

1.前言 相信不少小夥伴已經被java的NPE(Null Pointer Exception)所謂的空指針異常搞的頭昏腦漲, 有大佬說過“防止 NPE,是程序員的基本修養。”但是修養歸修養,也是我們程序員最頭疼的問題之一,那麼我們今天就要

原创 面試官:爲什麼Mysql索引用B+樹,而Mongodb索引用B樹?

前言 如果面試官問的是,爲什麼Mysql中Innodb的索引結構採取B+樹?這個問題時,給自己留一條後路,不要把B樹噴的一文不值。因爲網上有些答案是說,B樹不適合做文件存儲系統的索引結構。如果按照那種答法,自己就給自己挖了一個坑,很難收場

原创 java中的synchronized和linux系統的futex到底什麼個關係?

首先,futex不是個完整的鎖,它是“支持實現userspace的鎖的building block“。也就是說,如果你想實現一個mutex,但不想把整個mutex都弄到內核裏面去,可以通過futex來實現。但futex本身主要就是倆系統調

原创 如何看待 TIOBE 5 月排行 C 語言六年重回榜首,Java 退居第二?

前言 Java和C語言在4月的時候已經非常接近,但是本月C語言再次超越Java重回榜首, 上一次C語言成爲第一名還是在2015年。 爲什麼C語言崇尚榜首? 我們猜測一下C語言爲什麼再次成爲榜首?Paul Jansen TIOBE Soft