⑴ C++程序源代碼看不懂
再仔細看看。
首先要知道 源代碼使用了哪些庫,把這些庫的用法搞懂;
其次開始編譯,讓程序跑起來。
最後熟悉main函數,搞懂main函數運行的原理;
最後利用gdb或者其他調試工具步步跟下去。
然後:寫一篇總結
⑵ jQuery 源代碼看不懂,怎麼辦。。有沒有解釋jQuery 源代碼的書籍
要不要閱讀別人代碼?
要。
閱讀別人代碼干什麼?
提高自己的代碼質量。
試圖通過閱讀別人代碼找出代碼的邏輯?
錯誤。
試圖通過閱讀別人代碼找出想要實現自己的邏輯的代碼?
正確,只有遵循了這個原則,才能實現物為我所用。
毫無目的去看別人代碼 不暈才怪呢。
⑶ html+css的網頁源代碼太復雜 特別是樣式看的頭的暈了 如何看這類網站的源碼
可以使用GOOGLE瀏覽器,按F12可以查看元代碼,你選在那個元素上,那個元素的代碼,包括他所連接的CSS樣式就出現了
⑷ 源碼看的很頭疼,java中的HttpURLConnection類中的,有高人嗎
建議使用httpclient框架,這個比HttpURLConnection好用多了,以下是請求示例:
1. GET 方式傳遞參數
//先將參數放入List,再對參數進行URL編碼
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "數據")); //增加參數1
params.add(new BasicNameValuePair("param2", "value2"));//增加參數2
String param = URLEncodedUtils.format(params, "UTF-8");//對參數編碼
String baseUrl = "伺服器介面完整URL";
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);//將URL與參數拼接
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //發起GET請求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//獲取伺服器響應內容
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
2. POST方式 方式傳遞參數
//和GET方式一樣,先將參數放入List
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));//增加參數1
params.add(new BasicNameValuePair("param2", "第二個參數"));//增加參數2
try {
HttpPost postMethod = new HttpPost(baseUrl);//創建一個post請求
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //將參數填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //執行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //獲取響應內容
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
⑸ GHOST源碼編譯,過360安全衛士,我實在是頭痛了,有什麼方法好了,我試過,模擬點擊根本沒有用老是會變,
過不去就先退一下 360 然後過會再上就好了吧
⑹ 如何看java源代碼
在eclipse中查看源文件用 「Ctrl+超找的源文件」 就可以了。 如我要查看String 我按住Ctrl,然後用滑鼠移動到String下面點擊就行了。
如果彈出一個窗口, 說「Source not found ... ... 」
在彈出的窗口上點擊那個按鈕「attach source」,會出來一個窗口讓你選擇jdk源碼包所在的位置,你選擇一下,比如在我機器上是「C:\Program Files\Java\jdk1.6.0_03\src.zip」,你類比著找一下,這樣就可以用「Ctrl+超找的類名「了。
⑺ 學習JAVA的同學都是怎麼讀源碼的
剛參加工作那會,沒想過去讀源碼,更沒想過去改框架的源碼;總想著別人的框架應該是完美的、萬能的,應該不需要改;另外即使我改了源碼,怎麼樣讓我的改動生效了?項目中引用的不還是沒改的jar包嗎。回想起來覺得那時候的想法確實挺??
工作了一年多之後准備跳槽了,開始了一輪的面試,其中有幾個面試官就問到了相關的源碼問題:ArrayList、HashMap的底層實現,spring、mybatis的相關源碼。問源碼的面試一般就是回去等消息,然後就沒然後了。
那時候開始意識到,源碼這東西在之前的工作的中感受不到,但是在面試中好像面的還挺頻繁的,從此有意識的開始了jdk部分源碼的閱讀(主要是集合)。一開始看源碼,看的特別糙,知道個大概,知道ArrayList的底層實現是數組,HashMap的底層是散列表(數組+鏈表);更深入一點的擴容、hash碰撞等等就不知道了。
讀spring源碼起於工作中遇到了一個問題(spring jdbcTemplate事務,各種詭異,包你醍醐灌頂!),排查一段時間最終是解決了,但過程讓我非常難受,各種上網查資料、各種嘗試,感覺就像大海撈針一樣,遙遙無期。我下定決心,我要看一看spring的源碼,於是我買了一本《spring源碼深度解析》,結合著這本書、打開著eclipse,開始了spring的源碼閱讀之旅。至此,讀源碼成了習慣,源碼已經進入了我的心裡。
後來,springboot的火熱,讓我也想蹭上一蹭,於是有了springboot的啟動源碼系列,雖然還在進行中,但是我相信我能將其完成;工作中用到了shiro,我又結合著《跟我學shiro》將shiro的源碼看了個大概,有了shiro源碼系列博文,還差一篇認證與授權(應該很快就能面世),shiro源碼系列就封筆了。最近在搭建自己的後台管理系統,用到了quartz,集成的過程也遇到了一些問題,因此有了quartz的兩篇文章。
慢慢的,從一味的網上找資料變成了很多時候會從源碼中找答案。不求能讀太多的源碼,但願自己接觸的技術都能讀上一讀,路漫漫其修遠兮,吾將上下而求索!
大家為什麼要讀源碼?
很多人一定和我一樣的感受:源碼在工作中有用嗎?用處大嗎?很長一段時間內我也有這樣的疑問,認為哪些有事沒事扯源碼的人就是在裝,只是為了提高他們的逼格而已。
那為什麼我還要讀源碼呢?一剛開始為了面試,後來為了解決工作中的問題,再後來就是個人喜好了。說的好聽點是有匠人精神;說的委婉點是好奇(底層是怎麼實現的);說的不自信點是對黑盒的東西我用的沒底,怕用錯;說的簡單直白點是提升自我價值,為了更高的薪資待遇(這里對真正的技術迷說聲抱歉)。
源碼中我們可以學到很多東西,學習別人高效的代碼書寫、學習別人對設計模式的熟練使用、學習別人對整個架構的布局,等等。如果你還能找出其中的不足,那麼恭喜你,你要飛升了!會使用固然重要,但知道為什麼這么使用同樣重要。從模仿中學習,從模仿中創新。
讀源碼不像圍城(外面的人想進來,裡面的人想出去),它是外面的人不想進來,裡面的人不想出去;當我們跨進城內,你會發現(還是城外好,皮!)城內風光無限,源碼的海洋任我們遨遊!
首先我們要對我們的目標有所了解,知道她有什麼特點,有些什麼功能。對對方都還不了解,就想著進入別人的內心世界,那不是臭不要臉嘛,我們要做一個有著流氓心的紳士;對她有個大致的了解了,就可以發起攻勢,一舉拿下。
那麼怎麼樣了解了,方式有很多,我這里提供幾種,僅供參考
最好的方式就是官方參考指南,親生父母往往對孩子是最了解的,對孩子的描述也是最詳細的;比如Spring Boot Reference Guide就是對springboot最詳細的描述,怎麼樣使用springboot、springboot特性等等,通過此指南,springboot在你面前一覽無遺;
但是,springboot畢竟是外國人的孩子,如果英語不好,估計讀起來有點頭疼了,不過我們有google翻譯呀,咬咬牙也是能看的。源碼世界的丈母娘、老岳丈是非常慷慨的!
其次是書籍,國外優秀的有很多,國內也不乏好書,比較推薦此方式,自成體系,讓我們掌握的知識點不至於太散。這就是好比是源碼的閨蜜,對源碼非常了解,重點是挺大方,會盡全力幫助我們了解源碼。
再次就是博客,雖然可能覺得知識點比較散,但是針對某個知識點卻特別的細,對徹底掌握非常有幫助,園子內就有很多技術大牛,寫的博客自然也是非常棒,非常具有學習價值。當然還有社區、論壇、github、碼雲等等。這就是源碼的朋友圈,我們從中也能獲取到非常多關於源碼的信息。
設計模式的了解
優秀的框架、技術從不乏設計模式;jdk源碼中就應用了很多設計模式,比如IO流中的適配器模式與裝飾模式、GUI的觀察者模式、集合中的迭代器模式等等;spring源碼中也是用到了大量的設計模式。設計模式有什麼優點、各適用於什麼場景,不是本文的內容,需要我們大家自行去了解。
我們只需要對一些常用的設計模式有個大致了解,再去讀源碼是比較好的;不需要將23種設計模式都通讀,也不需要將常用設計模式完全理解透;對於全部通讀,我們時間有限,另外有些模式確實不太好理解、用的少,性價比不高,沒必要全部都讀。
推薦書籍:《Head First Design Patterns》(中文版:《Head First 設計模式》)、《Java與模式》;
另外我比較推薦的一種學習設計模式的方式是讀別人博客:java_my_life,劉偉技術博客,chenssy的設計模式;
設計模式之於源碼,就好比逛街購物之於女人,想順利勾搭源碼,我們需要好好掌握設計模式這個套路。
配合ide進行斷點追蹤
我們通過源碼的圈子對源碼的了解終究只是停在表面,終究還是沒有走進她的內心,接下來我就和大家分享下,我是如何走進她的內心的!
相信看過我的源碼博客的小夥伴都知道,我非常喜歡通過idea斷點來進行源碼追蹤,斷點追蹤源碼是我非常推薦的一種方式。斷點不僅可以用來調試我們的代碼,也可以用來調試我們用到的框架源碼。
面對未知的、茫茫多的源碼,我們往往沒有足夠的時間、經歷和耐心去通讀所有源碼,我們只需要去讀我們關注的部分即可(有人可能會說我都不關心,這?)。那為什麼要用斷掉調試的方式來跟源碼,而不是直接從源代碼入手去跟我們關注的部分呢?
嘗試過的小夥伴應該知道,如果我們對源碼不熟悉,直接通過源碼的方式去跟,一方面很容易迷路(多態,會有很多子類實現),不知道接下來跟哪一個,另一方面也很容易跟丟,當我們跟入的很深的時候,很有可能就忘記上一步跟到哪了。所以讀源碼的重要性淺顯易懂了。
⑻ 為什麼我復制別人的源碼打開後和別人的不一樣
[PConline技巧]經常在網上遇到一些無法復制的文章,那麼問題來了,有什麼辦法可以繞開這種限制,將網頁內容輕松下載回來呢?其實既然是網頁內容,那麼意味著HTML代碼是公開的,將相關文本復制下來根本不是問題,一起來看看要怎麼做吧。
最簡單的就是禁用JAVA腳本,把瀏覽器的安全設置設成最高就行了。
方法一. 手機拍照識別
難度:●○○○○
效果:●●●●○
這是最簡單一個辦法了,如今的手機都自帶文字識別功能。首先用QQ或微信將要識別的網頁截取成圖片,發送到你的手機。然後打開手機「掃一掃」,選擇剛剛收到的網頁截圖,最後點擊「識別文字」就可以了。一般來說,只要你的照片足夠清晰,字體基本標准,那麼實現95%以上的識別率還是不成問題的。稍後通讀一下文章,將裡面的識別錯誤簡單修正一下,就能直接生成文件使用了。
手機OCR識別網頁內容
方法二. 切換IE內核
難度:●○○○○
效果:●●●○○
很多小夥伴都忽略過這個辦法,如今IE已經被邊緣化,絕大多數瀏覽器都是WebKit內核,網頁設計師也是一樣,因此當你發現一個網站設置了禁止復制時,不妨將網址拖拽到IE瀏覽器里試一試,沒准會有意外驚喜!
使用IE內核試一試,沒准會有意外驚喜
順便說一句,如今很多國產瀏覽器都使用了雙內核,其中「兼容模式」就是IE核心,點擊切換試一試吧,和拷貝到IE里是一個效果!
方法三. 查看源代碼
難度:●●●●○○
效果:●●●●○○
如果藉助上面這個方法「撿漏」不成功,那麼就得動用一些「大招」了!這個方法基本可以搞定90%以上的網站,但操作起來稍微麻煩了一點。
1. 在禁止復制的網頁上右擊滑鼠,選擇「查看源代碼」;
右鍵選擇「查看源代碼」
2. 將打開的源碼頁面下拉,找到帶有文字內容的區域。選中這個區域,將內容粘貼到Word文檔中;
這就是打開的效果了,下拉頁面可以找到文字內容
3. 直接粘貼過來的內容會夾雜很多不必要的代碼,這時就是「查找與替換」大顯身手的時候了,將其中的代碼復制到「查找」框內,然後將「替換為」設空,最後點擊「全部替換」按鈕,直至代碼全部刪除為止;
復制過來夾雜的不必要代碼,直接用「查找與替換」搞定!很容易的!
方法四. 保存網頁格式
難度:●●○○○○
效果:●●●●●○
這其實是上一組方法的「人性化」版,至少沒有看起來很頭疼的代碼頁了,而且它可以用在那些禁止滑鼠右鍵的網頁中。
1. 打開禁止復制的網頁,按下快捷鍵Ctrl+S;
2. 在彈出的保存對話框中選擇「網頁,僅HTML」;
3. 雙擊保存好的網頁文件,這時你會發現原本無法復制的內容已經可以正常拷貝了;
類似於方法三,但操作起來更簡便
方法五. 列印法
這個方法只能用於WebKit內核瀏覽器(包括國產多數雙核瀏覽器),只要在禁止復制的網頁上按下Ctrl+P,進入列印預覽模式,就能直接通過滑鼠完成復制操作。
如果上面這些方法都不奏效,或者操作步驟太繁瑣,這里還有一個終極大法,那就是藉助插件完成。類似的插件有很多,比如Enable Copy,操作時只要將它安裝到瀏覽器上,遇到有復制限制的頁面點擊一下,就能輕松破解這些限制,具體的大家可以自行嘗試一下。
⑼ 怎樣看懂易語言源碼
首先你要有易語言,在任何代碼的位置按下
F1,...
下面會有一個提示框,,,提示框里會告訴你想知道的一切...
代碼的用途,他的類型,返回的數據...等等..
因為屬性較多,且每個代碼的使用方法
都不是一樣,所以無法一一列出..
⑽ 如何閱讀openstack源碼
OpenStack 本身用 python 語言編寫,雖然我一直覺得自己的 python 功底已經不錯了,但在看源碼的過程中,還總是覺得自己掌握的東西太少了,所以,首要的一點,如果你在看 OpenStack 源碼,請一定要打牢你的 python 基礎,不然有些技巧性的代碼可能讓你停滯不前。
看源碼,如果能一氣呵成最好。什麼叫一氣呵成呢?我先講個每個人生活中都可能遇到的一些情況:你在做 A 事,但是突然 B 打電話,讓你幫著解決 C 事,然後你就去做 C 事了,等你做完 C 事,發現家裡有 D 事必須要做,然後你又去做 D 事……這樣的結果就是,你把 A 事給遺忘了,即便你空閑時候想起來了,但是再去做的時候,發現沒有第一次那樣熟悉 A 事了,你需要重新花費一些時間來熟悉它。試想,如果一開始你就把 A 事做到底,會怎樣?
看源碼其實是一個很漫長的過程,特別對一個大型項目而言,如果你要看完它的源碼,過程是很曲折的,這里的看完不僅僅是過目了一遍,腦子里還要能把邏輯關系理順。你可能有疑問了,要看源碼,一天兩天解決不了,但是又要保證一氣呵成,這根本就是無稽之談嘛!事情也的確是這樣,魚與熊掌不可兼得!這里就有一個技巧的問題了,你不妨想像,這么大一個項目,它是怎麼開發出來的?難道一開始,項目就已經策劃好了?需要多少個源文件,每個文件裡面的源碼是什麼也都做好了?有點經驗的程序員都知道,這是不可能的。項目的開發是慢慢細化的,一開始只是核心,然後是骨架,然後有血肉,然後有做 A 事的工具……到這里,或許你知道我要說什麼了,源碼怎麼一步步寫出來的,我們就怎麼一步步的去看它。先研究核心,再研究骨架,然後血肉,其它工具……。還有一個問題,就算我知道怎麼看這些源碼,我怎麼去一氣呵成?這就好比你要完成一件大事情,但是你發現給自己定這么宏大的目標對自己來說比登天還難,所以你就想到用小目標來不斷激勵自己,最終不斷接近大目標。這里的一氣呵成既然不能一氣把所有源碼呵成,那就分段吧!不要心急,不要總想著還有很多源碼都還沒看,保持淡定!
其實,看源碼都是一樣的,從架構處著手,然後慢慢擴展到細枝末葉。這里,說一些 utilities 。看源碼是很枯燥的,一點都不形象不說,還要讓腦子一直保持著源碼中的很多東西,如果你想偷懶,如果你想讓生活更簡單,那就用圖形吧,圖形加速了整個 IT 的發展,它的強大與便利有目共睹。源碼中的各個模塊,類怎麼耦合的,用了什麼設計模式,拿張紙,畫幾筆,就顯而易見了,當然,做個 PPT 更好。源碼之間的互相交錯是最讓人頭疼的,很多人一開始看源碼,就從這個源文件的某個函數跳轉到另一個源文件的某個函數,我想問一下,你以為你的大腦是電腦嗎?你的大腦也可以像電腦那樣按著調用順序依次調用各個函數??如果你在看一個源文件,OK,先把這個源文件一氣呵成再說,不要跳轉到其它源文件,如果引用的其它源文件中的函數你不知道是幹嘛的,先 pass ,以後再說,只要你知道調用它的函數是幹嘛的就行,等你以後研究到另外一個源文件的時候,這個關系就很明確了。還有一個現象,很多人一接觸一個項目的源碼,看見那麼多源文件,一下子就懵了,不知道如何下手,別人說,從 main 開始看,於是,他就從 main 開始看了,其實這個無所謂,還是那句話,不要以為你的大腦是電腦,做一些人腦力所能及的事,隨便找個源文件,然後用心去看它,不要覺得這里的隨便就是隨便,雖然它的確是隨便,但是如果你不知道我說的隨便是哪個隨便,那就只有隨便你了。不管哪個項目,源碼包中大致結構一看,基本上就知道各個東西大致是幹嘛的,開發這些東西的也是人腦,不是電腦,為了方便理解,基本上文件取名都還是見名知意的。看源碼是一件很有挑戰的事情,對源碼而言,記住,你永遠都要站在它的對面,而不是將自己深埋進源碼中,一旦你鑽進去了,你就已經迷失了自己。還有很多……(稍後補充)
上面說了那麼多,都沒有談到 OpenStack ,其實這個是相輔相成的,上面的你知道了,看 OpenStack 你也應該沒有問題了,OpenStack 的核心項目是 nova, glance, swift ,最核心的就是 nova 了,所以,從 nova 開始看吧。nova 源碼包中有很多子包,源文件。除了版權版本以及和其它組件交互的東西,隨便找一個開始看吧。切記,在開始看之前,最好能把你知道的 nova 架構圖爛熟於心。 這個很重要,因為你之後隨時有可能沉迷進源碼大軍中。
好了,文章到這里,基本上就結束了。貌似沒有給沖著 OpenStack 源碼來的讀者一個很好的建議,其實,任何事都沒有一蹴而就的方法,想做成它,最好的方法就是,保持淡定的心態,一步步,走下去!作為過來人,還是給個建議,從 虛擬化開始看,因為這個裡面用到了適配器設計模式,你稍微看一點就知道了這個包是幹嘛的了,而且,可以提升你繼續看源碼的信心。
轉載