day2

報告:

1,完成遍歷代碼並單元測試通過;

對集合進行遍歷,Active爲true且不爲空輸出對象 
VersionedScript getActiveScript(List<VersionedScript> list) {
        //TODO
        Iterator<VersionedScript> iter = list.iterator();
        while (iter.hasNext()) {
           VersionedScript s = (VersionedScript)iter.next();
            println s;
            if (s.getActive()&&s.getActive()!=null) {
                return s
            }
        }
        return  null;
    }

2,使用Studio連接mongodb

3,學習lamda表達式

4,學習阿里java開發手冊

5,瞭解消息隊列原理

6,瞭解Paas,Saas,Iaas的區別

IaaS, PaaS和SaaS是雲計算的三種服務模式。

1. SaaS:Software-as-a-Service(軟件即服務)提供給客戶的服務是運營商運行在雲計算基礎設施上的應用程序,用戶可以在各種設備上通過客戶端界面訪問,如瀏覽器。消費者不需要管理或控制任何雲計算基礎設施,包括網絡、服務器、操作系統、存儲等等;
2. PaaS:Platform-as-a-Service(平臺即服務)提供給消費者的服務是把客戶採用提供的開發語言和工具(例如Java,python, .Net等)開發的或收購的應用程序部署到供應商的雲計算基礎設施上去。

客戶不需要管理或控制底層的雲基礎設施,包括網絡、服務器、操作系統、存儲等,但客戶能控制部署的應用程序,也可能控制運行應用程序的託管環境配置;

3. IaaS: Infrastructure-as-a-Service(基礎設施即服務)提供給消費者的服務是對所有計算基礎設施的利用,包括處理CPU、內存、存儲、網絡和其它基本的計算資源,用戶能夠部署和運行任意軟件,包括操作系統和應用程序。

消費者不管理或控制任何雲計算基礎設施,但能控制操作系統的選擇、存儲空間、部署的應用,也有可能獲得有限制的網絡組件(例如路由器、,防火牆,、負載均衡器等)的控制。

區別:

SaaS 是軟件的開發、管理、部署都交給第三方,不需要關心技術問題,可以拿來即用。普通用戶接觸到的互聯網服務,幾乎都是 SaaS,下面是一些例子。

客戶管理服務 Salesforce

團隊協同服務 Google Apps

儲存服務 Box

儲存服務 Dropbox

社交服務 Facebook / Twitter / Instagram

PaaS 提供軟件部署平臺(runtime),抽象掉了硬件和操作系統細節,可以無縫地擴展(scaling)。開發者只需要關注自己的業務邏輯,不需要關注底層。下面這些都屬於 PaaS。

Heroku

Google App Engine

OpenShift

IaaS 是雲服務的最底層,主要提供一些基礎資源。它與 PaaS 的區別是,用戶需要自己控制底層,實現基礎設施的使用邏輯。下面這些都屬於 IaaS。

Amazon EC2

Digital Ocean

RackSpace Cloud

問題:

1,mongodb服務啓動正常,命令行可操作,使用Studio3 T 連接時測試正常,連接後無數據庫出現,如圖:

連接後無數據庫:

2,對集合屬性判斷,如果是類的話,可根據需求判斷所有屬性是否爲空

//創建工具類判斷對象及屬性是否都爲空
public class CheckObjectIsNullUtils {
    
    /**
     * 判斷對象是否爲空,且對象的所有屬性都爲空
     * ps: boolean類型會有默認值false 判斷結果不會爲null 會影響判斷結果
     *     序列化的默認值也會影響判斷結果
     * @param object
     * @return
     */
    public  boolean objCheckIsNull(Object object){
        Class clazz = (Class)object.getClass(); // 得到類對象
        Field fields[] = clazz.getDeclaredFields(); // 得到所有屬性
        boolean flag = true; //定義返回結果,默認爲true
        for(Field field : fields){
            field.setAccessible(true);
            Object fieldValue = null;
            try {
                fieldValue = field.get(object); //得到屬性值
                Type fieldType =field.getGenericType();//得到屬性類型
                String fieldName = field.getName(); // 得到屬性名
                System.out.println("屬性類型:"+fieldType+",屬性名:"+fieldName+",屬性值:"+fieldValue);
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            if(fieldValue != null){  //只要有一個屬性值不爲null 就返回false 表示對象不爲null
                flag = false;
                break;
            }
        }
        return flag;
    }
    
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章