⑴ 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 源码来的读者一个很好的建议,其实,任何事都没有一蹴而就的方法,想做成它,最好的方法就是,保持淡定的心态,一步步,走下去!作为过来人,还是给个建议,从 虚拟化开始看,因为这个里面用到了适配器设计模式,你稍微看一点就知道了这个包是干嘛的了,而且,可以提升你继续看源码的信心。
转载