目錄
一、程序運行結果
1、自增變量
如下代碼的運行結果:
public static void main(String[] args) {
int i = 1;
i = i++;
int j = i++;
int k = i + ++i * i++;
System.out.println("i=" + i);
System.out.println("j=" + j);
System.out.println("k=" + k);
}
輸出:
2、類初始過程
以下代碼運行結果:
結果:
初始化順序爲:
父類靜態變量、父類靜態代碼塊、子類靜態變量、子類靜態代碼塊、
父類非靜態變量、父類非靜態代碼塊、父類構造函數、子類非靜態變量、子類非靜態代碼塊、子類構造函數
注意:子類和父類具有同名的靜態變量(不會被覆蓋)和非靜態變量(會被覆蓋);靜態成員只有在類加載時初始化一次
3、方法的參數傳遞機制
以下程序輸出什麼
結果:
i = 1
str = hello
num = 2
arr = [2,2,3,4,5]
my.a = 11
①形參是基本數據類型:傳遞數據值
②實參是引用數據類型:傳遞地址值;特殊的類型:String、包裝類等對象不可變性
4、局部變量與成員變量
以下程序輸出什麼
結果:
分析:
(1)Exam5 obj1 = new Exam5();
靜態變量、非靜態變量初始化:i=0【obj1 】,j=0【obj1 】,s=0【Exam5 】
執行非靜態代碼塊:i=0【obj1 】,j=1【obj1 】,s=1【Exam5 】,i=1【局部】
(2)Exam5 obj2 = new Exam5();
靜態變量、非靜態變量初始化:i=0【obj2】,j=0【obj2】,s=0【Exam5 】
執行非靜態代碼塊:i=0【obj2 】,j=1【obj2 】,s=2【Exam5 】,i=1【局部】
(3)obj1.test(10);
i=1【obj1 】,j=1【obj1 】,s=3【Exam5 】,j=11【局部】
(4)obj1.test(20);
i=2【obj1 】,j=1【obj1 】,s=4【Exam5 】,j=21【局部】
(5)obj2.test(30);
i=1【obj1 】,j=1【obj1 】,s=5【Exam5 】,j=31【局部】
二、框架
1、spring bean的作用域
(1)singleton:默認值,當IOC容器一創建就會創建bean實例,而且是單例的
(2)prototype:原型的,當IOC容器一創建不會實例化該bean,每次調用getBean創建一個新的對象
方法時再實例化bean,而且每次
(3)request:每次請求實例化一個bean
(4)session:在一次會話中共享一個baen
2、SpringMvc工作流程
三、Linux常用服務類相關命令
四、git分支相關操作
五、MYSQL什麼時候建索引
六、Redis在項目中的使用場景
數據類型 |
使用場景 |
String |
比如說 ,我想知道什麼時候封鎖一個IP地址。Incrby命令 |
Hash |
存儲用戶信息【id,name,age】 Hset(key,field,value) Hset(userKey,id,101) Hset(userKey,name,admin) Hset(userKey,age,23) ----修改案例---- Hget(userKey,id) Hset(userKey,id,102) 爲什麼不使用String 類型來存儲 Set(userKey,用信息的字符串) Get(userKey) 不建議使用String 類型 |
List |
實現最新消息的排行,還可以利用List的push命令,將任務存在list集合中,同時使用另一個命令,將任務從集合中取出[pop]。 Redis—list數據類型來模擬消息隊列。【電商中的秒殺就可以採用這種方式來完成一個秒殺活動】 |
Set |
特殊之處:可以自動排重。比如說微博中將每個人的好友存在集合(Set)中, 這樣求兩個人的共通好友的操作。我們只需要求交集即可。 |
Zset |
以某一個條件爲權重,進行排序。 京東:商品詳情的時候,都會有一個綜合排名,還可以按照價格進行排名。 |
七、Elasticsearch 和 solr 的區別
- 當實時建立索引的時候,solr會產生io阻塞,而es則不會,es查詢性能要高於solr。
- 在不斷動態添加數據的時候,solr的檢索效率會變的低下,而es則沒有什麼變化。
- Solr利用zookeeper進行分佈式管理,而es自身帶有分佈式系統管理功能。Solr一般都要部署到web服務器上,比如tomcat。啓動tomcat的時候需要配置tomcat與solr的關聯。【Solr 的本質 是一個動態web項目】
- Solr支持更多的格式數據[xml,json,csv等],而es僅支持json文件格式。
- Solr是傳統搜索應用的有力解決方案,但是es更適用於新興的實時搜索應用。
- 單純的對已有數據進行檢索的時候,solr效率更好,高於es。
- Solr官網提供的功能更多,而es本身更注重於核心功能,高級功能多有第三方插件。