
第一期回顧
歷次討論主題記錄: 每次討論主題的記錄
第二期
DIY班: 其一,Deeply Inspire Yourself 深度激發自己
其二,Do It Yourself 實踐出真知
以前總是聽說阿里某某大佬,聽說孤盡老師,也時常琢磨他的開發規范,有些初看不明白,當深入了才知厲害,去年就聽說有DIY班,但已經召集結束了,還好后來同學其他朋友間接偷學了點,今年終于能有機會系統和孤盡老師交流,好幸運,所以就想努力試試,我也知道規則時間的苛刻,但我真的就想只是一個膚淺的碼農,真的就只能排查簡單的問題,都說武林功法萬變不離其宗,這個宗,我想去找,想要內化于心,所以,我的目的是學習,是想認識更多優秀的你,所以其他都是次要,謝謝孤盡老師
聽說規則后,我也有時候覺得不盡人意,但這么好和大佬接觸的機會,有一次就有一次的歡喜,所以,我先去爭做班委,努力承擔更多責任,其次,想要去歸納總結形成博客,對每次的分享都吃透,
快排
孤盡老師下午測驗自己最快幾分鐘寫完快排,并且直接測驗通過,3分鐘,
孤盡老師添加了注釋,算是給大家一個開胃小菜
/**
* 快速排序
*
* @param source 排序的陣列
* @param left 陣列磁區后的閉區間的最左邊的下標
* @param right 陣列磁區后的閉區間的最右邊的下標
*/
public static void quickSort(int[] source, int left, int right) {
// 遞回的退出條件,陣列下標left必須大于等于right,陣列是空陣列或只有一個元素,直接回傳
if (source == null || left >= right) {
return;
}
?
// 設定最左邊的陣列元素為基準值,陣列中比pivot小的放在左邊,比pivot大的放在右邊
int pivot = source[left];
// 定義兩個指標,分別指向最左邊和最右邊,都是往中間方向移動
int pointerLeft = left;
int pointerRight = right;
while (pointerLeft < pointerRight) {
// 如果pointerRight向左移,遇到比pivot大的值
while (pointerLeft < pointerRight && source[pointerRight] >= pivot) {
// 右邊的指標往左邊移動一下
pointerRight--;
}
// 交換一下,不要怕,左邊的值就是pivot,下個回圈一定能夠讓指標進一步往右邊移動
swapValue(source, pointerLeft, pointerRight);
?
// 如果pointerLeft向右移,遇到比pivot小的值
while (pointerLeft < pointerRight && source[pointerLeft] <= pivot) {
// 左邊的指標往右邊移動一下
pointerLeft++;
}
swapValue(source, pointerLeft, pointerRight);
}
?
// 引數的left和right作為邊界的存在,在這里終于用到了
quickSort(source, left, pointerLeft - 1);
quickSort(source, pointerLeft + 1, right);
}
?
private static void swapValue(int[] source, int pointerLeft, int pointerRight) {
// 如果交換的時候,指標已經重合,那么不需要再交換
if (pointerLeft >= pointerRight) {
return;
}
?
int t = source[pointerLeft];
source[pointerLeft] = source[pointerRight];
source[pointerRight] = t;
}
}
金九銀十:給Java開發者的大廠面試心法
金九銀十:給Java開發者的大廠面試心法-開課吧
體會最深的
架構是一個能力,不是一個職位
前提:
架構要把
架構先進性轉換成技術先進性
技術先進性轉換成商業先進性
架構在演變程序中,
對設計模式的了解
對架構本身的了解?架構的目的,
架構的方法論
架構要解決的問題:
確定你的系統的邊界在哪里?
指導設計演化的原則是什么
確定非功能性需求
里氏代換原則(Liskov Substitution Principle LSP)面向物件設計的基本原則之一, 里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現,
舉例:警匪片中“放下武器,立刻投降”, 武器是抽象的,對應匪徒手中具體的手槍,刺刀等
把一個確定性的描述,轉換成代碼并不難
但是,在整個科技世界中,都是不確定的問題,正是因為我們需要解決不確定的問題,所以才需要利用程式員的智商迭代,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299930.html
標籤:其他
上一篇:2021Java最新技術發展趨勢
