java学习_java学习原理篇|java程序运行套路
我們生來平等
🐶 :寺水, 你說, 我們都是一樣的嗎?
🐱 :從正態分布來看的話,除去前面和后面的,大多數人,生來差別并不大,可以簡單認為,在出生那一刻是平等的.
????人生忽然已過二十多載.從人生來看,再回到起跑線上,已是不太現實了,但是對于Java學習來說,我們都才學會了HelloWorld,現在是在同一個位置開始,在這里,希望小伙伴們一起來維護了一份
寺水的技能包
在這里可以,可以看到我們已經走過的路和掌握的知識點.生來平筆,而后又拉開了差距,其中很大一部分原因是歸納,總結,轉化的欠缺.所以,有了這個技能包,我們可以時常返回來看一下.
人鬼情未了
🐶 :寺水,你說,人鬼能在一起嗎?
🐱 :按道理講,正常來說是不可以,但可能會在某個條件下得以再續前緣.比如某個月圓之時,比如某個地點. 一如我們寫的代碼,只有通過某個命令來觸發,轉換,才能讓計算機執行.
相信上面這個圖,大家估計都見過很多次了,這里拿出來,和大家聊一下抽象思維. 以前寫過一篇:
當領導說要提升能力時,實際上想讓你提升什么呢?
????這里的人鬼情未了,我們為人, 電腦為鬼,那我們需要一些特殊的轉換器,來使我們和電腦能夠溝通.在以后的兩個不同的系統進行交互的時候, 我們也可以戲成為"人鬼情未了",如前端通過http調用后端接口, 兩個不同的后端服務通過dubbo交互. 虛擬機中方法之間相互的調用.再如生活當中,兩個獨立的人,得通過語言/肢體動作溝通.很多很多, 我們都可以抽象成人鬼情未了.
????再來說到java上. 在抽象了之后,我們就要提煉各種元素, 然后用一個方法去轉換一下,整個過程描述如下:
????先是從給人看的Hello.java, 通過 javac 給轉化成給JVM看的 Hello.class ,然后再轉給電腦去運行.
????這里我們提煉出來的元素有:人,JVM, 電腦,Hello.java源文件.提煉出的方法有: javac 轉換, java轉換,
Hello.class = javac轉換(Hello.java)
java轉換(Hello.class)
????這是一個最基本的流程,在此之上的萬變不會離其根本,比如用idea來執行javac和java , 或者用命令行執行javac和java,或者如我們上篇應用文中所演示,直接用java 去執行 Hello.java, 其實這個是在內存中進行編譯,然后進行執行的. 當我們把握了這些基本點的時候,就有了排查錯誤的思路.
磕磕絆絆終終成正果
🐱 : 唉,終究是人鬼殊途,要在一起太難了,就像最近看的人想和魂獸在一起,中間要經歷的太多了.
🐶 :寺水呀, 其實沒有哪條路是輕松的,就像我們和電腦,想讓電腦做出我們想要輸出/運行結果,就是面說的javac/java 這幾步,哪一步錯了都不行.
????這里會引發一個哲學問題,要看清自己的位置. 這句話, 不僅僅是提醒我們要在人生中思考這個問題,在寫代碼,調程序的時候,要認清我們的位置,報錯了不要慌. 覺著冷靜,大膽假設,小心求證!
????還是以上篇輸出HelloWorld為例(再復雜的邏輯,也是由這樣簡單的邏輯一點點拼起來的),而且,出問題,只會在方法中出問題,如javac 中, 現在我們是單文件編譯, 后面還會有多文件編譯, 如java中, 現在是單文件運行, 后面會有帶上classpath的運行, 所以,我們要明白是哪個過程出了問題, 然后再根據錯誤信息,去定義問題.以編譯時錯誤為例:
public
????以上圖為例, 雖然說是沒有達到預期的結果,但是也給了我們很豐富的提示. 這里我們需要注意上圖標識出的三個地方,
1.javac Hello.java 這個是哪一階段,對哪些元素操作出現的問題, 在這里是命令問題,放到代碼里面可能就是某個類的某個方法出了問題. 這就是上面那個很關鍵的問題, 弄清楚我們的定位!
2.Hello.java:4 這個就是再詳細的定位了, 直接定位到了是哪一行的代碼出了問題, 是Hello.java這個文件的第4行出了問題
3. 需要";" System.out.xxxxxx: 這個是錯誤信息. 也叫錯誤上下文信息,給了一些參考意見.注意這里的措辭, 是參考意見,具體是不是這個錯,還得我們實際看看代碼才知道.
???? 這個例子,大家可以理解為, 是對前面模仿學習的一個闡述,在后面,我們也還會不斷再提及這些, 讓這個方法論更為清晰. 要堅信,任何錯誤,都是紙老虎,我們一定可以解決的!
大道至簡,一生二,二生三
????再復雜的程序也是由一個一個的方法這樣組裝起來的.運行不起來的代碼/出問題的代碼,每次也只會在某一行拋出問題,所以, 我們就要依據錯誤信息,再復雜的應用,錯誤信息也就和上面類似,大家不要被嚇住了, java程序運行, 就這兩個方法,javac, java, 錯誤信息,也就長這個樣子, 就是內容長短不一, 所以,沉著冷靜,就能做到動刀甚微,但問題已解!
本文思考
1.javac 如何編譯多文件?
2.java 命令如何運行多個文件?
推薦閱讀
java學習應用篇|離不開的HelloWorld
java學習應用篇|環境變量的應用
java學習原理篇|多用戶及環境變量
java學習應用篇|windows安裝JDK及配置環境變量
和大家聊一聊學習(二)-如何去模仿學習
關于小刀
1。自封的初級java勸退師
2。自封的java交流群管理員
3。自封的java學習微信客服小哥
4。自封的微信號:best396975802
總結
以上是生活随笔為你收集整理的java学习_java学习原理篇|java程序运行套路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: horizon client 无法识别域
- 下一篇: anaconda3 win7_重装系统w