小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

學會編程, 而不是學會Java

 小小郡 2016-09-02

學會編程, 而不是學會Java

很多初學者,尤其是半路出家的遇到了一個很普遍的情況: 那就是只學會了Java 的語法, 而沒有學會編程。

我拿一個例子來說一下, 下面是一個SimpleList 的類, 模仿java 的ArrayList, 已經定義好了接口,需要實現(xiàn)具體的業(yè)務:

/**

* 自定義的一個模仿ArrayList的類, 你需要實現(xiàn)其中的add, get, remove , 等方法

* @author 劉欣

*/

public class SimpleList<T>{

private Object[] elementData;

private int size=0;

public int size() {

return -1;

}

public SimpleList(){

}

public boolean isEmpty() {

return false;

}

public boolean add(T e) {

return false;

}

public boolean remove(Object o) {

return false;

}

public T get(int index) {

return null;

}

}

然后我拿這個類給幾個人測試, 我發(fā)現(xiàn)很少人能夠順利的把這幾個方法給實現(xiàn)了, 哪怕是非常粗糙的實現(xiàn)也沒有。

感興趣的同學也可以用你擅長的語言嘗試一下。

這個題目不要求實現(xiàn)復雜的算法, 也不需要進行面向對象的設計,也不需要考慮多線程下的線程安全, 況且已經給了提示:

用一個Object數組來實現(xiàn)。

如果說有一點語法層面的難度, 那就是使用了一點泛型。

其實如果我把泛型去掉, 估計他們還是實現(xiàn)不了, 因為這個類的核心邏輯不是泛型。

這個SimpleList 要求的就是能對一個數組進行操作,核心就兩點:

1. 能往數組添加數據, 記錄size ,如果數組空間不夠了, 需要增大空間

2. 能刪除數組指定位置的數據,并且把之后的數據往前挪動。

難嗎? 這其實是編程序的基本素養(yǎng), 編程的本質,和用什么語言實現(xiàn)沒有關系。

如果不是Java , 學的是C#, 或者Python, 我估計結果也差不多。

我想可能是不少人都缺乏最最基本的數據結構和算法的訓練, 還沒有養(yǎng)成面向計算機的邏輯思考的方式。

解決的辦法其實也很簡單:就是多實踐,多編碼, 我推薦多做數據機構和算法的習題, 這也是我個人的經驗, 大學時把數據結構的習題都做一遍, 后來工作中只要不是設計算法, 基本上沒要難住我的。

如果以后想選擇碼農作為職業(yè), 這種編程能力是必不可少的, 所以在校的同學, 不妨從現(xiàn)在就開始, 把缺失的能力不上。

JAVA學習交流群 374320282 學JAVA有困難需要視頻資料可以加 婷婷QQ 3185337157 一起學習交流,晚上有時間還可以參加永久免費分享的高清視頻直播課程(免費分享哦)

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多