写了段R code elifecycle报错,老有错,不知道怎么回事

Android(21)
在研究别人的代码或者Cpoy出现R.java文件不见了的情况,R.java导入错误
(解决方式:在这段中package名写对,他会自己生成
R.java文件
&manifest xmlns:android=&/apk/res/android&
& & package=&com.llx.news.activity&
& & android:versionCode=&1&
& & android:versionName=&1.0& &
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:145602次
积分:2454
积分:2454
排名:第16764名
原创:80篇
转载:108篇
译文:10篇
评论:23条
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'今天本来以为在评论里互相探讨问题,没想到火药味这么大,后来看到答案才知道自己被喷了.作者在答案里喷完不爽又来评论里喷,也不知道为啥这么大的火气.&br&&br&说明以下几点:&br&1. 写几个脚本,分享一下star的python代码,就叫装X,也挺无语了.&br&2. 刚写答案的时候题主还没有补充内容,看前半段的时候题主没有说是0基础,所以当时也没考虑题主0基础的情况.&br&3. 也不知道怎么看出我不理解函数式编程,面向对象,面向过程的概念了.&br&&br&=================================&br&更新 13:50:24&br&&br&lz可以问问自己为什么要编程?为什么要学python,不就是为用吗!!!&br&难道lz没有什么idea想要在电脑上实现,光学习脑子里根本记不住.&br&&br&至于优秀的开源项目的确很有用,它都是好多人总结提炼成的,你可以想一想如果你要实现sqlmap你改怎么做,不是要你敲一遍,是让你理解它的思维.而且它的代码格式和习惯都是应当值得学习的.&br&&br&比如我以前这么写:&br&&div class=&highlight&&&pre&&code class=&language-text&&if value & 100:
value = 100
if value & 0:
&/code&&/pre&&/div&看到别人这么写:&br&&div class=&highlight&&&pre&&code class=&language-text&&max(min(value, 100), 0)
&/code&&/pre&&/div&&br&再比如我原来这么写:&br&&br&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&k&&if&/span& &span class=&n&&value&/span&&span class=&p&&:&/span&
&span class=&n&&a&/span& &span class=&o&&=&/span& &span class=&mi&&1&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&n&&a&/span& &span class=&o&&=&/span& &span class=&mi&&2&/span&
&/code&&/pre&&/div&&br&后来我看到原来可以这么写:&br&&br&&div class=&highlight&&&pre&&code class=&language-text&&a = 1 if value else 2
&/code&&/pre&&/div&&br&我也是个大菜鸟,还在学习,我知道的就这么多了...&br&&br&&br&============================================&br&原稿&br&&br&这里有个项目,每天一题,可以试着做一下
&a href=&///?target=https%3A///Yixiaohan/show-me-the-code& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Yixiaohan/show-me-the-code · GitHub&i class=&icon-external&&&/i&&/a&&br&外国的一个游戏网站,有中文翻译,具体没做过,不过看起来还挺好玩的 &a href=&///?target=http%3A//www.checkio.org/station/home/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://www.checkio.org&i class=&icon-external&&&/i&&/a&&br&还有就是 leetcode 里面有 python 的题目可以拿来练手&br&&br&=============================================&br&更新 日20:53:46&br&&br&从简单入手,说实话看书或者看视频有限,许多问题书上根本学不到,介绍一下自己写的帮题主打开一下思路.&br&&br&项目一:远程关机&br&有时候有事情去不了实验室,实验室的机子也不能总开着啊,然后就写了个脚本,通过微博关实验室的电脑.&br&&figure&&img src=&/be8d19b6d828b58c56ffc_b.jpg& data-rawwidth=&587& data-rawheight=&257& class=&origin_image zh-lightbox-thumb& width=&587& data-original=&/be8d19b6d828b58c56ffc_r.jpg&&&/figure&&br&地址: &a href=&///?target=https%3A///taizilongxu/weibo_robot& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&taizilongxu/weibo_robot · GitHub&i class=&icon-external&&&/i&&/a&&br&&br&&b&项目二: douban.fm&/b&&br&&br&有一天逛着 github 发现了这个:&br&&figure&&img src=&/1ce8ca9dad7bea215ba10d0eb2a628f4_b.jpg& data-rawwidth=&796& data-rawheight=&539& class=&origin_image zh-lightbox-thumb& width=&796& data-original=&/1ce8ca9dad7bea215ba10d0eb2a628f4_r.jpg&&&/figure&这个是 node.js 做的,自己也不太会,就拿 python 仿照着做了一个,一开始以为挺简单的,后来实际操作中发现还是有困难的,自己还是菜鸟,边学习边做, shell, 线程进程,同步异步,日志,异常,跨平台,重构优化,各种意想不到的 bug,包发布,还得自己抓 豆瓣的 API...不过最后还是可以用了&br&&br&地址: &a href=&///?target=https%3A///taizilongxu/douban.fm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&taizilongxu/douban.fm · GitHub&i class=&icon-external&&&/i&&/a&&br&&br&&b&项目三:网站&/b&&br&&br&自己收藏看的,一个简单网站论坛的 tornado 的源码 &a href=&///?target=https%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& · GitHub&i class=&icon-external&&&/i&&/a&&br&这个是 the5fire 的 django blog &a href=&///?target=https%3A///the5fire/django_selfblog& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&the5fire/django_selfblog · GitHub&i class=&icon-external&&&/i&&/a&&br&还有个tango with django 的中文教程 &a href=&///?target=http%3A///Twd/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Tango with Django 中文文档&i class=&icon-external&&&/i&&/a&&br&&br&&br&&br&&br&一些比较小的项目,利于初学者能看懂的:&br&&br&&a href=&///?target=https%3A///Flowerowl/ici& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Flowerowl/ici · GitHub&i class=&icon-external&&&/i&&/a& 在在终端上查询单词&br&&a href=&///?target=https%3A///bfontaine/term2048& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&bfontaine/term2048 · GitHub&i class=&icon-external&&&/i&&/a& 终端上的2048&br&&a href=&///?target=https%3A///np1/mps-youtube& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&np1/mps-youtube · GitHub&i class=&icon-external&&&/i&&/a& 终端上的 youtube&br&&a href=&///?target=https%3A///skyline75489/SimpleDNS& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&skyline75489/SimpleDNS · GitHub&i class=&icon-external&&&/i&&/a& A lightweight yet useful proxy DNS server powered by Python Twisted&br&&a href=&///?target=https%3A///binux/qiandao& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&binux/qiandao · GitHub&i class=&icon-external&&&/i&&/a& 每日定时签到&br&&a href=&///?target=https%3A///jiffies/GouYong& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&jiffies/GouYong · GitHub&i class=&icon-external&&&/i&&/a& linux 下划词翻译&br&&a href=&///?target=https%3A///laiwei/thepast& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&laiwei/thepast · GitHub&i class=&icon-external&&&/i&&/a& 你好旧时光&br&&a href=&///?target=https%3A///DTVD/rainbowstream& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&DTVD/rainbowstream · GitHub&i class=&icon-external&&&/i&&/a& Terminal-based Twitter Client&br&&br&还有一些收藏的用 python 写的开源项目:&br&&br&&a href=&///?target=https%3A///binux/pyspider& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&binux/pyspider · GitHub&i class=&icon-external&&&/i&&/a& 一个可视化的爬虫&br&&a href=&///?target=https%3A///scrapy/scrapy& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&scrapy/scrapy · GitHub&i class=&icon-external&&&/i&&/a& python知名爬虫&br&&a href=&///?target=https%3A///mitsuhiko/flask& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&mitsuhiko/flask · GitHub&i class=&icon-external&&&/i&&/a& flask, web 微框架&br&&a href=&///?target=https%3A///reddit/reddit& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&reddit/reddit · GitHub&i class=&icon-external&&&/i&&/a& reddit网站源代码&br&&a href=&///?target=https%3A///tornadoweb/tornado& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tornadoweb/tornado · GitHub&i class=&icon-external&&&/i&&/a& 知乎使用的 web 框架(异步)&br&&a href=&///?target=https%3A///kennethreitz/requests& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&kennethreitz/requests · GitHub&i class=&icon-external&&&/i&&/a& 给人用的HTTP&br&&a href=&///?target=https%3A///whtsky/WeRoBot& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&whtsky/WeRoBot · GitHub&i class=&icon-external&&&/i&&/a& 微信机器人框架&br&&a href=&///?target=https%3A///goagent/goagent& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&goagent/goagent · GitHub&i class=&icon-external&&&/i&&/a& 大名的goagent&br&&a href=&///?target=https%3A///sqlmapproject/sqlmap& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&sqlmapproject/sqlmap · GitHub&i class=&icon-external&&&/i&&/a& 注入神器&br&&a href=&///?target=https%3A///ipython/ipython& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ipython/ipython · GitHub&i class=&icon-external&&&/i&&/a& ipython&br&&a href=&///?target=https%3A///LiuLang/bcloud& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LiuLang/bcloud · GitHub&i class=&icon-external&&&/i&&/a& 百度网盘 linux 客户端&br&&br&&br&&br&最后还有一个 &a href=&///?target=https%3A///vinta/awesome-python& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&vinta/awesome-python · GitHub&i class=&icon-external&&&/i&&/a& ,这个比较全了, awesome 系列.&br&&br&先写到这,发现其他的再补充
今天本来以为在评论里互相探讨问题,没想到火药味这么大,后来看到答案才知道自己被喷了.作者在答案里喷完不爽又来评论里喷,也不知道为啥这么大的火气. 说明以下几点: 1. 写几个脚本,分享一下star的python代码,就叫装X,也挺无语了. 2. 刚写答案的时候题主还没…
转帖-[官解]Windows上Python2和3如何兼容&br&&br&&p&想学习Python3,但是暂时又离不开Python2。在Windows上如何让它们共存呢?&/p&&br&&p&目前国内网站经常会让大家把其中一个python.exe改个名字(嗯,我也这样讲过,在此纠正一下),这样区分开两个可执行文件的名字,但是这样做有一个重大的隐患,就是修改了名字的那个python对应的pip将无法使用。&/p&&br&&p&&strong&官方的解法是什么?&/strong&&/p&&br&&p&事实上这个问题几年以前Python社区就给出了官方解决方案,只不过国内一直没有注意到罢了。&/p&&br&&p&我们在安装Python3(&=3.3)时,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面。这个启动器允许我们指定使用Python2还是Python3来运行代码(当然前提是你已经成功安装了Python2和Python3)。&/p&&br&&blockquote&&p&&em&有关Python2和3的安装,可以参见Python部落(&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&)--&影音学堂--&《0基础1小时,Python入门》的第一节。&/em&&br&&/p&&/blockquote&&br&&p&如果你有一个Python文件叫 hello.py,那么你可以这样用Python2运行它&/p&&br&&blockquote&&p&py -2 hello.py&/p&&/blockquote&&br&&p&类似的,如果你想用Python3运行它,就这样&/p&&br&&blockquote&&p&py -3 hello.py&/p&&/blockquote&&br&&p&&strong&去掉参数 -2/-3&/strong&&br&&/p&&br&&p&每次运行都要加入参数-2/-3还是比较麻烦,所以py.exe这个启动器允许你在代码中加入说明,表明这个文件应该是由python2解释运行,还是由python3解释运行。说明的方法是在代码文件的最开始加入一行&/p&&br&&blockquote&&p&#! python2&/p&&/blockquote&&br&&p&或者&/p&&br&&blockquote&&p&#! python3&/p&&/blockquote&&br&&p&分别表示该代码文件使用Python2或者Python3解释运行。这样,运行的时候你的命令就可以简化为&/p&&br&&blockquote&&p&py hello.py&/p&&/blockquote&&br&&p&&strong&使用pip&/strong&&/p&&br&&p&当Python2和Python3同时存在于windows上时,它们对应的pip都叫pip.exe,所以不能够直接使用 pip install 命令来安装软件包。而是要使用启动器py.exe来指定pip的版本。命令如下:&/p&&br&&blockquote&&p&py -2 -m pip install XXXX&/p&&/blockquote&&br&&p&-2 还是表示使用 Python2,-m pip 表示运行 pip 模块,也就是运行pip命令了。如果是为Python3安装软件,那么命令类似的变成&/p&&br&&blockquote&&p&py -3 -m pip install XXXX&/p&&/blockquote&&br&&p&&strong&#! python2 和 # coding: utf-8 哪个写在前面?&/strong&&br&&/p&&br&&p&对于Python2用户还有另外一个困惑,Python2要在代码文件顶部增加一行说明,才能够在代码中使用中文。如果指明使用的Python版本也需要在文件顶部增加一行,那哪一行应该放在第一行呢?&/p&&br&&p&#! python2 需要放在第一行,编码说明可以放在第二行。所以文件开头应该类似于:&/p&&blockquote&&div class=&highlight&&&pre&&code class=&language-text&&#! python2
# coding: utf-8
&/code&&/pre&&/div&&/blockquote&&br&&p&有了这些技巧,Python2和Python3就可以愉快地在一起玩耍了~&br&&/p&&br&&blockquote&&p&Python标准:&a href=&///?target=https%3A//www.python.org/dev/peps/pep-0397/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PEP 397 -- Python launcher for Windows&i class=&icon-external&&&/i&&/a&&/p&&/blockquote&
转帖-[官解]Windows上Python2和3如何兼容 想学习Python3,但是暂时又离不开Python2。在Windows上如何让它们共存呢? 目前国内网站经常会让大家把其中一个python.exe改个名字(嗯,我也这样讲过,在此纠正一下),这样区分开两个可执行文件的名字,但是这样…
谢邀。看题真是感慨万千,说句有些冒犯的话,题主很可能是走到一条歪路上去了——Android研发水平跟你做几个App,并没有直接关系。以前面试过的一些毕业生,做过一些小有名气的APP的不在少数,但是最后大部分不是被我拒了就是被我老大拒了——&br&&br&&ul&&li&会写Activity,但对于Activity的生命周期一知半解,对于DecorView、PhoneWindow、ViewRootImpl等关系更一无所知。&/li&&li&会写简单的自定义VIew,但不懂View的Traversal机制(甚至说不出invalidate()的意义),不懂事件传递逻辑,基本上更说不出自定义动画卡顿的优化思路。&br&&/li&&li&知道一堆开源框架:&b&知道Eventbus,但说不清什么是事件总线;用过Retrofit,但搞不懂反射、动态代理是什么;用过Dagger2,但完全没听过Java annotation processor是什么,甚至都没好奇过build/generated包下的代码咋生成出来的;用过realm,但是连Sql语句都写不顺溜。&/b&&/li&&/ul&&br&&br&更别提线程、IO、NDK之类的了……所以才有这么一句戏言:写了十万行Android代码,里面九万行XML……&br&&br&当然如果我以上说的这些题主已了然于胸,因此才产生厌倦情绪,那当我没说。否则的话,Android系统是一座高山,你还只是刚刚迈过门槛而已,尚未开始攀登呢,就开始想写博客是否有点……咳咳。&br&&br&至于找工作,Java EE的线程、泛型、IO之类的一大堆基础砸牢,无论是做Android还是转Hadoop或者Spark,都一样是必须的。&b&基础是重中之重,&/b&不是说对找工作有什么帮不帮助,至少是重点加分项。这样说吧,BAT里大部分项目组的校招标准,会选择招一个Java基础吊打其它候选人的,而不是APP开发数量多但基础稀松的。&br&&br&======关于练手项目=====&br&&br&关于很多人私信我【写个什么项目练手最好】,我个人的感觉是——如果你不知道自己该搞Android还是Java Web,那就写个IM聊天的项目,然后自己写机器人程序做压力测试。基本上能让你把Java前端和后端的都涵盖了。&br&&br&Android端:UI、消息持久化(读写、缓存)、长链接网络(解决NAT超时、DHCP续租、参考TLS1.3的安全机制、私有协议设计、大文件分片、失败重试机制设计)、多线程、消息推送、消息同步等等。&br&&br&服务端:持久化(表设计、分库机制)、发送队列、连接管理、并发、负载均衡等等……&br&&br&坦白说,现在您大二,边做边学,不骄不躁,这样一个项目迭代两年,比你两年写100个App都强。
谢邀。看题真是感慨万千,说句有些冒犯的话,题主很可能是走到一条歪路上去了——Android研发水平跟你做几个App,并没有直接关系。以前面试过的一些毕业生,做过一些小有名气的APP的不在少数,但是最后大部分不是被我拒了就是被我老大拒了—— 会写Activity…
&figure&&img src=&/50/v2-ce82a0adc34a0a90eeca38e_b.jpg& data-rawwidth=&900& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&/50/v2-ce82a0adc34a0a90eeca38e_r.jpg&&&/figure&今天看到一篇 4 个月前的专栏,标题十分吓人&p&&a href=&/p/& class=&internal&&99%的人都理解错了HTTP中GET与POST的区别&/a&&br&&/p&&p&文章前半部分讲了一些大家都知道的 GET vs POST 的区别,重点在后面。&/p&&br&&blockquote&&p&这位BOSS有多神秘?当你试图在网上找“GET和POST的区别”的时候,那些你会看到的搜索结果里,从没有提到他。他究竟是什么呢。。。&/p&&br&&p&GET和POST还有一个重大区别,简单的说:&/p&&p&GET产生一个TCP数据包;POST产生两个TCP数据包。&/p&&br&&p&长的说:&/p&&p&对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);&/p&&p&而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。&/p&&/blockquote&然而我此前从来没听说过这回事,于是搜索了一下。结论是,文章作者关于『GET 发一个包,POST 发两个包』的知识 99% 是从下面这篇文章中得来的&br&&p&&b&&a href=&/?target=https%3A//blog.josephscott.org//xmlhttprequest-xhr-uses-multiple-packets-for-http-post/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&XMLHttpRequest (XHR) Uses Multiple Packets for HTTP POST?&i class=&icon-external&&&/i&&/a&&/b&&br&&/p&&p&为了验证结论是否仍然成立,我做了测试,结果如下:&/p&&ul&&li&Chrome 55.0.2883.95,two packets: &b&YES&/b&&/li&&li&Safari 10.0.2, two packets: &b&YES&/b&&/li&&li&Firefox 49.0, two packets: &b&NO&/b&&/li&&/ul&&p&看来的确有这回事,参见 RFC 中的描述:&a href=&/?target=https%3A//tools.ietf.org/html/rfc7231%23section-6.2.1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content&i class=&icon-external&&&/i&&/a&。&/p&&p&首先,感谢专栏作者让大家对 POST 多了一些了解。但如果仅仅是这样我显然也不会专门写一篇文章了。让我感到不爽的地方有三点:&/p&&p&&b&一. 作者没有验证过自己写的东西&/b&&/p&&p&他在专栏中说:&/p&&blockquote&而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。&/blockquote&&p&这个结论是错误的。&/p&&p&首先,在那篇英文文章中并没有提及这一点。其次,我在测试时也没有看到服务器响应 100 continue。RFC 里讲的很明白:100 continue 只有在请求里带了&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Expect: 100-continue
&/code&&/pre&&/div&&p&header 的时候才有意义。&/p&&blockquote&&p&When the request contains an Expect header field that includes a 100-continue expectation, the 100 response indicates that the server wishes to receive the request payload body, as described in Section 5.1.1.
The client ought to continue sending the request and discard the 100 response.&/p&&p&If the request did not contain an Expect header field containing the 100-continue expectation, the client can simply discard this interim response.&/p&&/blockquote&&p&而实际上,不论哪一种浏览器,在发送 POST 的时候都没有带 Expect 头,server 也自然不会发 100 continue。通过抓包发现,尽管会分两次,body 就是紧随在 header 后面发送的,根本不存在『等待服务器响应』这一说。&/p&&p&&b&二. 作者并不理解自己写的东西&/b&&/p&&p&如果我们去看那篇英文原文,或者只看标题:『&a href=&/?target=https%3A//blog.josephscott.org//xmlhttprequest-xhr-uses-multiple-packets-for-http-post/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&XMLHttpRequest (XHR) Uses Multiple Packets for HTTP POST?&i class=&icon-external&&&/i&&/a&』,就会发现,它讨论的一直是 XMLHttpRequest,也就是 AJAX 请求,而专栏中却把 XMLHttpRequest 写成了 POST。&/p&&p&我想但凡对 Web 有基本了解的人都不会认为两者是一个东西吧。&/p&&p&&b&三. 强行标题党&/b&&/p&&p&写文章起个吸引眼球的标题,这没什么,但问题是,你这个标题和文章说的不是一件事啊!&/p&&p&我们通常在讨论 GET vs POST 的时候,实际上讨论的是 specification,而不是 implementation。什么是 specification?说白了就是相关的 RFC。implementation 则是所有实现了 specification 中描述的代码/库/产品,比如 curl,Python 的 requests 库,或者 Chrome。&br&&/p&&p&POST 请求怎么发送,根本就不是这段 RFC 在讨论的事情。RFC 中只说明了 100 continue 和 Expect header 的联系,比如你想在 GET 请求里带 body,一样可以发送 Expect: 100-continue 并等待 100 continue,这是符合标准的。&br&&/p&&p&也就是说,『XHR 发送两个 TCP packets』是关于 implementation 的知识,而不是关于 specification 的知识。你不能说『Chrome 在 AJAX POST 的时候会发两个 TCP packets,GET 只会发一个』是 GET 和 POST 的区别,正如你不能因为北京 PM 2.5 经常爆表就说国家关于工业废气排放的标准有问题。&/p&&p&从另一个角度说,TCP 是传输层协议。别人问你应用层协议里的 GET 和 POST 有啥区别,你回答说这俩在传输层上发送数据的时候不一样,确定面试官不抽你?&/p&&p&所以,不是 99% 的人理解错了 GET 和 POST,而是有 99% 的可能作者不知道自己在写什么。&/p&&p&PS:写完之后发现专栏文章是从微信转载的……那么姑且认为我指的都是微信文章的作者吧。但是你帮他转发一遍,你等于你也有责任吧?&/p&
今天看到一篇 4 个月前的专栏,标题十分吓人 文章前半部分讲了一些大家都知道的 GET vs POST 的区别,重点在后面。 这位BOSS有多神秘?当你试图在网上找“GET和POST的区别”的时候,那些你会看到的搜索结果里,从没…
让身为国内顶尖的&b&Markdown程序员&/b&的我,来说(da)几(guang)句(gao):&br&&br&&figure&&img src=&/f4c49ce3d6d62fbec3d2c26_b.png& data-rawwidth=&1998& data-rawheight=&1340& class=&origin_image zh-lightbox-thumb& width=&1998& data-original=&/f4c49ce3d6d62fbec3d2c26_r.png&&&/figure&&br&&br&顺便安利一下《&b&&a href=&///?target=https%3A///phodal/github-roam& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - phodal/github-roam: GitHub 漫游指南&i class=&icon-external&&&/i&&/a&&/b&》——我的GitHub修炼史,&b&逛GitHub的你值得拥有。&/b&&br&&ul&&li&&a href=&///?target=http%3A///%23%25E5%E8%25A8%2580& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&前言&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E6%E4%25B8%258Egithub%25E7%259A%%E4%25BA%258B& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&我与GitHub的故事&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23github%25E4%25B8%258E%25E6%%25E8%258E%25B7& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub与收获&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23github%25E4%25B8%258E%25E6%E9%2595%25BF& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub与成长&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E4%25B8%25BA%25E4%25BB%%25B9%%25BD%25A0%25E5%25BA%%25AF%25A5%25E6%25B7%25B1%25E5%github& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&为什么你应该深入GitHub&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E6%%25E4%25BE%25BF%25E5%25B7%25A5%25E4%25BD%259C& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&方便工作&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E8%258E%25B7%25E5%25BE%%25B8%%25BB%25BD%25E5%25B7%25A5%25E4%25BD%259C& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&获得一份工作&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E6%%25E5%25A4%25A7%25E4%25BA%25A4%25E9%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&扩大交际&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23git%25E5%259F%25BA%25E6%259C%25AC%25E7%259F%25A5%25E8%25AF%%25B8%258Egithub%25E4%25BD%25BF%25E7%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Git基本知识与GitHub使用&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23git& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Git&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23git%25E5%E5%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Git初入&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23github& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E7%E6%259C%25AC%25E7%25AE%25A1%25E7%E4%25B8%258E%25E8%25BD%25AF%25E4%25BB%25B6%25E9%%25E7%25BD%25B2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&版本管理与软件部署&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23github%25E4%25B8%258Egit& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub与Git&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E5%259C%25A8github%25E5%E5%25BB%25BA%25E9%25A1%25B9%25E7%259B%25AE& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&在GitHub创建项目&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23github%25E6%25B5%%25A1%258C%25E9%25A1%25B9%25E7%259B%25AE%25E5%E6%259E%2590& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub流行项目分析&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23pull-request& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pull Request&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E6%E7%259A%%25AC%25AC%25E4%25B8%%25B8%25AApr& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&我的第一个PR&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23cla& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CLA&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E6%259E%%25BB%25BAgithub%25E9%25A1%25B9%25E7%259B%25AE& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&构建GitHub项目&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E5%25A6%%25BD%%%25E5%25A5%25BDgithub& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&如何用好GitHub&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E6%E6%258D%25B7%25E8%25BD%25AF%25E4%25BB%25B6%25E5%25BC%%258F%2591& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&敏捷软件开发&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E6%25B5%258B%25E8%25AF%2595& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&测试&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23ci& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CI&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E4%25BB%25A3%25E7%25A0%%25B4%25A8%25E9%F& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&代码质量&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E6%25A8%25A1%25E5%259D%%E7%25A6%25BB%25E4%25B8%258E%25E6%25B5%258B%25E8%25AF%2595& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&模块分离与测试&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E4%25BB%25A3%25E7%25A0%%25A8%25A1%25E5%259D%%258C%2596& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&代码模块化&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E8%2587%25AA%25E5%258A%25A8%25E5%258C%%25B5%258B%25E8%25AF%2595& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&自动化测试&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23jshint& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Jshint&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23mocha& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Mocha&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E6%25B5%258B%25E8%25AF%%25A4%25BA%25E4%25BE%258B& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&测试示例&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E4%25BB%25A3%25E7%25A0%%25B4%25A8%25E9%E4%25B8%258E%25E9%E6%259E%2584& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&代码质量与重构&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23code-climate& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Code Climate&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E4%25BB%25A3%25E7%25A0%%259A%%259D%258F%25E5%%25E9%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&代码的坏味道&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E5%E5%25BB%25BA%25E9%25A1%25B9%25E7%259B%25AE%25E6%E6%25A1%25A3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&创建项目文档&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23readme& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&README&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E5%259C%25A8%25E7%25BA%25BF%25E6%E6%25A1%25A3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&在线文档&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E5%258F%25AF%25E7%%25E7%25A4%25BA%25E4%25BE%258B& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&可用示例&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E6%25B5%258B%25E8%25AF%2595-1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&测试&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23tdd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TDD&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E4%25B8%%25AC%25A1%25E6%25B5%258B%25E8%25AF%%25A9%25B1%25E5%258A%25A8%25E5%25BC%%258F%2591& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&一次测试驱动开发&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E8%25AF%25B4%25E8%25AF%25B4tdd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&说说TDD&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23tdd%25E6%E8%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TDD思考&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E5%258A%259F%25E8%2583%25BD%25E6%25B5%258B%25E8%25AF%2595& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&功能测试&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E8%25BD%25BB%25E9%E7%25BA%25A7%25E7%25BD%%25AB%%25B5%258B%25E8%25AF%2595twill& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&轻量级网站测试TWill&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23twill-%25E7%2599%25BB%25E9%E6%25B5%258B%25E8%25AF%2595& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Twill 登陆测试&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23twill-%25E6%25B5%258B%25E8%25AF%%E6%259C%25AC& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Twill 测试脚本&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23fake-server& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Fake Server&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E9%E6%259E%2584& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&重构&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E4%25B8%25BA%25E4%25BB%%25B9%%E6%259E%2584& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&为什么重构?&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E9%E6%259E%2584umarkdown& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&重构uMarkdown&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E4%25BB%25A3%25E7%25A0%%25AF%25B4%25E6%E& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&代码说明&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23interllij-idea%25E9%E6%259E%2584& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Intellij Idea重构&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23rename& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Rename&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23extract-method& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Extract Method&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23inline-method& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Inline Method&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23pull-members-up& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pull Members Up&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E9%E6%259E%%25B9%258B%25E4%25BB%25A5%25E6%259F%25A5%25E8%25AF%25A2%25E5%258F%%25BB%25A3%25E4%25B8%25B4%25E6%%25E5%258F%%F& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&重构之以查询取代临时变量&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E5%25A6%%25BD%%259C%25A8github%25E5%25AF%25BB%25E6%2589%25BE%25E7%%25E6%Ffork& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&如何在GitHub“寻找灵感(fork)”&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23lettuce%25E6%259E%%25BB%25BA%25E8%25BF%%25A8%258B& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub 漫游指南 -&i class=&icon-external&&&/i&&/a&&a href=&///?target=https%3A///phodal/lettuce& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Lettuce&i class=&icon-external&&&/i&&/a&构建过程&ul&&li&&a href=&///?target=http%3A///%23%25E9%259C%%25B1%2582& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&需求&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E8%25AE%25A1%25E5%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&计划&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E5%25AE%259E%25E7%258E%25B0%25E7%25AC%25AC%25E4%25B8%%25B8%25AA%25E9%259C%%25B1%2582& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&实现第一个需求&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E5%25AE%259E%25E7%258E%25B0%25E7%25AC%25AC%25E4%25BA%258C%25E4%25B8%25AA%25E9%259C%%25B1%2582& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&实现第二个需求&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23github%25E7%%25E6%%25E5%E6%259E%2590& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub用户分析&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E7%E6%E5%259B%25BE%25E8%25A1%25A8& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&生成图表&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E6%%25E6%258D%25AE%25E8%25A7%25A3%25E6%259E%2590& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&数据解析&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23matplotlib& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Matplotlib&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E6%25AF%258F%25E5%%25E5%E6%259E%2590& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&每周分析&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23python-github-%25E6%25AF%258F%25E5%%25E6%E5%%25E5%E6%259E%2590& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&python github 每周情况分析&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23python-%25E6%%25E6%258D%25AE%25E5%E6%259E%2590& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python 数据分析&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23python-matplotlib%25E5%259B%25BE%25E8%25A1%25A8& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python Matplotlib图表&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E5%25AD%%%25E5%%25E6%%25E6%258D%25AE%25E5%25BA%%25B8%25AD& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&存储到数据库中&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23sqlite3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SQLite3&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E6%%25E6%258D%25AE%25E5%25AF%25BC%25E5%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&数据导入&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23redis& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Redis&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E9%2582%25BB%25E8%25BF%%25AE%%25B3%%25B8%258E%25E7%259B%25B8%25E4%25BC%25BC%25E7%%25E6%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&邻近算法与相似用户&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23github%25E8%25BF%259E%25E5%2587%25BB& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub连击&i class=&icon-external&&&/i&&/a&&/li&&ul&&li&&a href=&///?target=http%3A///%23%25E5%25A4%25A9& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&100天&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E5%25A4%25A9%25E7%259A%%258F%%258D%2587& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&40天的提升&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E5%25A4%25A9%25E7%259A%%258C%%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&100天的挑战&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E5%25A4%25A9%25E7%259A%%25B8%258C%25E5%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&140天的希冀&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E5%25A4%25A9%25E7%259A%2584showcase& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&200天的Showcase&i class=&icon-external&&&/i&&/a&&ul&&li&&a href=&///?target=http%3A///%23%25E4%25B8%%25BA%259B%25E9%25A1%25B9%25E7%259B%25AE%25E7%25AE%%25BF%25B0& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&一些项目简述&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23google-map-solr-polygon-%25E6%E7%25B4%25A2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&google map solr polygon 搜索&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E6%258A%%2583%25BD%25E6%25A0%2591& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&技能树&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/li&&li&&a href=&///?target=http%3A///%23%25E5%25A4%25A9-1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&365天&i class=&icon-external&&&/i&&/a&&/li&&ul&&li&&a href=&///?target=http%3A///%23%25E7%25BC%%25A8%258B%25E7%259A%%259F%25BA%25E7%25A1%%2583%25BD%25E5%258A%259B& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&编程的基础能力&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E6%258A%%259C%25AF%25E4%25B8%258E%25E6%25A1%%259E%25B6%25E8%25AE%25BE%25E8%25AE%25A1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&技术与框架设计&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E9%25A2%%259F%259F%25E4%25B8%258E%25E7%25BB%%25B9%25A0& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&领域与练习&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A///%23%25E5%%25E4%25BB%2596-1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&其他&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/ul&&/ul&补充几句:&br&&br&其实秀恩爱还有一种秀法是这样的:&br&&figure&&img src=&/5b754af3a99_b.png& data-rawwidth=&2068& data-rawheight=&652& class=&origin_image zh-lightbox-thumb& width=&2068& data-original=&/5b754af3a99_r.png&&&/figure&&br&每一个Fork都意味着又多一个人看到这句话&br&&br&&figure&&img src=&/add1af244e79db745431d_b.png& data-rawwidth=&882& data-rawheight=&164& class=&origin_image zh-lightbox-thumb& width=&882& data-original=&/add1af244e79db745431d_r.png&&&/figure&
让身为国内顶尖的Markdown程序员的我,来说(da)几(guang)句(gao): 顺便安利一下《》——我的GitHub修炼史,逛GitHub的你值得拥有。
&p&&b&&/b&&/p&&p&收藏6654,点赞才1649。。。&/p&&p&阿菇心里苦啊。。。收藏同时点个赞呗TvT&/p&&br&&p&优质的计算机课程很多,这里以个人学习经验为根据,分平台来细说,选了两家英文,两家中文的。如无具体说明,课程均为免费。&/p&&br&&p&&b&英文&/b&&/p&&p&&b&一、Coursera&/b&&b&:&/b&&br&&/p&&p&&b&1&/b&&b&、《编译原理》&/b&&/p&&p&&a href=&///?target=https%3A//www.coursera.org/course/compilers& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&coursera.org/course/com&/span&&span class=&invisible&&pilers&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&名声在外的课程,内容讲得很清楚,但作为毫无计算基础的一个文科生我学到后面有点吃力,最后我是没学完。相反,有理工科背景的朋友们评价说,课程性价比简直爆表,最后都作出了一个完整的编译器,分分钟虐翻文科生,汗。。。建议有基础的理工科同学去修读。&/p&&p&&b&2&/b&&b&、《机器学习》&/b&&/p&&p&&a href=&///?target=https%3A//www.coursera.org/learn/machine-learning& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&coursera.org/learn/mach&/span&&span class=&invisible&&ine-learning&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&figure&&img src=&/620a1fbc91a60fdc566e4_b.jpg& data-rawwidth=&634& data-rawheight=&230& class=&origin_image zh-lightbox-thumb& width=&634& data-original=&/620a1fbc91a60fdc566e4_r.jpg&&&/figure&&br&&p&Coursera创始人的课程,老师也是机器学习这方面的大牛,对想要了解和初步掌握机器学习的人来说是不二的选择。课程配有需要动手做的实践作业,学习的孩纸最好有MATLAB基础。这门课的难度得辩证着来看,计算机专业的同学觉得是浅尝辄止,深度不够,而如果只有文科学习背景的可能会有点吃力。&/p&&p&&b&3&/b&&b&、《编程语言》&/b&&/p&&p&&a href=&///?target=https%3A//www.coursera.org/course/proglang& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Coursera - Free Online Courses From Top Universities&i class=&icon-external&&&/i&&/a&&/p&&p&一门在函数式编程里的神级课程!一般学校里应该很少学到这块专业的内容,理论实践相结合,难易增加程度在可控范围内。印象深刻的是各种经典变成范式的比较,分分钟让你认清高下优劣,知道自己从前写代码的缺陷。老师也是又耐心又好玩,为了让学生记住编写规则不惜牺牲自己的形象。&/p&&br&&p&&b&二、Udacity&/b&:&/p&&p&请注意,使用Udacity时请保持&b&良好的&/b&网络环境&/p&&p&&b&1&/b&&b&、《人工智能》&/b&&/p&&p&&a href=&///?target=https%3A///course/intro-to-artificial-intelligence--cs271& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&/course/intr&/span&&span class=&invisible&&o-to-artificial-intelligence--cs271&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&figure&&img src=&/d8dfbbc573babcb89aea_b.jpg& data-rawwidth=&779& data-rawheight=&225& class=&origin_image zh-lightbox-thumb& width=&779& data-original=&/d8dfbbc573babcb89aea_r.jpg&&&/figure&&p&Udacity创始人的课程,同样来自斯坦福大学,和《机器学习》之于Coursera一样,是U家招牌。据说,Sebastian
Thrun在开设这门课程并取得成功后,就离开了斯坦福,创办了Udacity,而现在,Udacity在IT互联网领域表现远超Coursera,估值也比Coursera高出一截,也能算是里程碑式的课程了。&/p&&p&2、《计算机程序设计:编程原理》&/p&&p&&a href=&///?target=https%3A///course/design-of-computer-programs--cs212& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&/course/desi&/span&&span class=&invisible&&gn-of-computer-programs--cs212&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&来自Google大牛Peter Norvig的课程,现在已经有10万多学生在同时学习这门课程,也是个大热门。学习这门课程前,需要有一定编程经验,初入门者有难度。Google之前,他还在NASA Ames研究中心工作过。&/p&&br&&p&&b&--------------------------------------我是中文/英文分割线-----------------------------------------------&/b&&/p&&br&&p&&b&中文&/b&&/p&&p&&b&一、网易云课堂:&/b&&/p&&p&&b&1&/b&&b&、翁恺老师的计算机课程&/b&&/p&&p&《HTML5入门》&/p&&p&&a href=&///?target=http%3A///course/courseMain.htm%3FcourseId%3D171001& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&HTML5入门 - 网易云课堂&i class=&icon-external&&&/i&&/a&&/p&&p&《JavaScript》&/p&&p&&a href=&///?target=http%3A///course/introduction/195001.htm%23/courseDetail& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JavaScript - 网易云课堂&i class=&icon-external&&&/i&&/a&&/p&&p&《面向对象程序设计-C++》&/p&&p&&a href=&///?target=http%3A///course/introduction/271005.htm%23/courseDetail& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&面向对象程序设计-C++&i class=&icon-external&&&/i&&/a&&/p&&p&翁恺老师是浙大计算机学院的老师,是国内最早从事在线教育的老师。本身在课堂上因为讲课循循善诱,讲课经验丰富,受到很多学生的喜爱,在线授课的时候,也不会出现新人教师面部表情僵硬等诡异的场景,节奏把握得很好。而且他的声音也很好听,会给上课加了很多分。现在云课堂上开的课程,基本选修人数都是上万的,所有课程加起来,同时选修课程的人数都该超过20万了,确实有一手。&/p&&p&&b&2&/b&&b&、大学计算机专业课程体系&/b&&/p&&p&&a href=&///?target=http%3A///curricula/cs.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&大学计算机专业&i class=&icon-external&&&/i&&/a&&/p&&figure&&img src=&/dcb7205daaa6a9c06182bbbc_b.jpg& data-rawwidth=&883& data-rawheight=&476& class=&origin_image zh-lightbox-thumb& width=&883& data-original=&/dcb7205daaa6a9c06182bbbc_r.jpg&&&/figure&&p&这门课程最大的优点是体系性强。就如同他的标题写的一样,这个课程涵盖了计算机专业从大一到大四的所有课程,学完这些课程就能由浅入深全面掌握大学计算机技能,而且授课老师都是行业中比较优秀的老师,授课水平也不错,适合入门学习,也可以在期末复习时用于恶补。&/p&&p&&b&3&/b&&b&、《C/C++黑客编程项目实战课程》&/b&&/p&&p&前两门课都属于理论性比较强的,而这门课则是以实用性见长。整个课堂风格轻松愉快,而且每个理论的讲解中都伴有相应的实践案例作支撑,细致易。懂最后三分之一的课时全都是与C++相关的游戏项目的开发制作,对想提升实际操作能力的人帮助很大。&/p&&br&&p&&b&二、中国大学MOOC:&/b&&/p&&p&&b&1&/b&&b&、《大学计算机基础》&/b&&/p&&p&&a href=&///?target=http%3A//www.icourse163.org/course/nudt-17003%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&大学计算机基础&i class=&icon-external&&&/i&&/a&&/p&&p&主要以大一计算机课程难度的内容来安排,属于入门级、零基础向的课程,只要认真听课、按时完成作业,即使是计算机小白,软妹子也能学会。对于第一次在线学习计算机的童鞋来说,可以帮助自己树立信心,让你亲近MOOC。&br&&b&2&/b&&b&、《程序设计基础》&/b&&/p&&p&&a href=&///?target=http%3A//www.icourse163.org/course/hit-56001%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&程序设计基础_中国大学MOOC(慕课)&i class=&icon-external&&&/i&&/a&&/p&&p&老牌名校哈工大开设的MOOC课程,主要讲解基础编程内容。为了降低课程难度,在设计课程时,特意把“程序设计”这块内容拆成两门课程:《程序设计基础》,《C语言程序设计精髓》,《程序设计基础》作为基础入门课程,亲民性高,同样适合零基础入门。&/p&&p&&b&3&/b&&b&、《数据结构》&/b&&/p&&p&&a href=&///?target=http%3A//www.icourse163.org/course/zju-93001%23/info& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&数据结构_中国大学MOOC(慕课)&i class=&icon-external&&&/i&&/a&&/p&&br&&figure&&img src=&/f70ccbc17f5e8b7d50215c5_b.jpg& data-rawwidth=&731& data-rawheight=&458& class=&origin_image zh-lightbox-thumb& width=&731& data-original=&/f70ccbc17f5e8b7d50215c5_r.jpg&&&/figure&&br&这门课需要有一定编程语言的基础,它的授课老师是被同学称为“姥姥”的陈越老师,也是计算机课程中比较少见的女老师,不仅讲课很棒,而且对学生的问题有求必应,十分热情,不少学生在浙大选不到她的课程就跑到中国大学MOOC来选,也是令人称奇。
收藏6654,点赞才1649。。。阿菇心里苦啊。。。收藏同时点个赞呗TvT 优质的计算机课程很多,这里以个人学习经验为根据,分平台来细说,选了两家英文,两家中文的。如无具体说明,课程均为免费。 英文一、Coursera: 1、《编译原理》…
首先阅读并深入理解《Teach Yourself Programming in 10 Years》的主要思想,然后实战。实战的方法有很多,譬如:&a href=&/vczh-nichijou/& class=&internal&&如何成为牛逼的程序员 - vczh的日常 - 知乎专栏&/a&
首先阅读并深入理解《Teach Yourself Programming in 10 Years》的主要思想,然后实战。实战的方法有很多,譬如:
&p&前段时间面试,自己以及小伙伴们简要的汇总的一些面试问题,可以对照的参考一下吧~&/p&&p&建议就是在面一家公司之前了解好这个公司的app是以什么为驱动的,例如电商的话肯定要了解hybrid 开发的一些知识点,图像处理的公司要好好复习下bitmap canvas相关的知识点,祝好运!&/p&&br&&br&&p&UI:&/p&&p&1.View的绘制&/p&&p&&a href=&///?target=http%3A//blog.csdn.net/guolin_blog/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android视图绘制流程完全解析,带你一步步深入了解View(二)&i class=&icon-external&&&/i&&/a&&/p&&p&2)&a href=&///?target=http%3A//blog.csdn.net/guolin_blog/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& Android自定义View的实现方法&i class=&icon-external&&&/i&&/a&&/p&&p&3)canvas&/p&&p&&a href=&///?target=http%3A//blog.csdn.net/qinjuning/article/details/6936783& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Andriod中绘(画)图----Canvas的使用详解&i class=&icon-external&&&/i&&/a&&/p&&p&Activity:&/p&&p&1.onPause和onStop的区别
// &u&&b&这里有错误需要修改,修改在下方&/b&&/u&&/p&&p&onPause:可以看到这个activity (比如dialog) onStop:看不见这个activity&/p&&br&&p&2.Activit用的启动方式&/p&&ul&&li&&p&standard: 标准模式,一调用startActivity()方法就会产生一个新的实例。&/p&&/li&&li&&p&singleTop: 如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。&/p&&/li&&li&&p&singleTask: 会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。&/p&&/li&&li&&p&singleInstance: 这个跟singleTask基本上是一样,只有一个区别:在这个模式下的Activity实例所处的task中,只能有这个activity实例,不能有其他的实例。&/p&&/li&&/ul&&p&3.ActivityManagerService&/p&&p&&a href=&///?target=http%3A///project/deep-android-v2/activity.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&第6章 深入理解ActivityManagerService&i class=&icon-external&&&/i&&/a&&/p&&p&4.activity的启动过程:&/p&&p&&a href=&///?target=http%3A///android/post-788.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深入理解Activity启动流程(一)&i class=&icon-external&&&/i&&/a&&/p&&p&5.Activity之间的协作当一个activity A启动了另外一个activity B,它们的生命周期是有交叉的;&/p&&ul&&li&&p&首先A的onPause()被调用;&/p&&/li&&li&&p&e之后B的onCrate(), onStart()及onResume() 方法会被调用(此时B拥有用户焦点);&/p&&/li&&li&&p&最后,如果A在屏幕上不可见,onStop()方法被调用;&/p&&/li&&li&&p&因此,我们在两个activities中传递数据,或者共享资源时(如数据库连接),需要在前一个activity的onPause()方法而不是onStop()方法中进行;&/p&&/li&&/ul&&p&Service&/p&&p&1)service解析 &/p&&p&&a href=&///?target=http%3A///newcj/archive//2061370.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android 中的 Service 全面总结&i class=&icon-external&&&/i&&/a&&/p&&br&&p&2)两种启动方式&/p&&p&&a href=&///?target=http%3A///Android/tutorial/990.shtml& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Service 两种启动方式&i class=&icon-external&&&/i&&/a&&/p&&br&&p&Fragment&/p&&p&1)生命周期:&/p&&p&&a href=&///?target=http%3A///purediy/p/3276545.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[整] Android Fragment 生命周期图&i class=&icon-external&&&/i&&/a&&/p&&br&&p&数据存储:&/p&&p&1)contentprovider&/p&&p&&a href=&///?target=http%3A///linjiqin/archive//2061396.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&十二、ContentProvider和Uri详解&i class=&icon-external&&&/i&&/a&&/p&&p&2)sqlite&/p&&p&&a href=&///?target=http%3A///blog/1487773& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android SQLite数据库操作实例&i class=&icon-external&&&/i&&/a&&/p&&p&内存泄露:&/p&&br&&p&&a href=&///?target=http%3A//my.oschina.net/rengwuxian/blog/181449& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android中使用Handler造成内存泄露的分析和解决&i class=&icon-external&&&/i&&/a&&/p&&br&&p&&a href=&///?target=http%3A//spencer-/post/d7b9e_6faf120& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&android开发中,可能会导致内存泄露的问题&i class=&icon-external&&&/i&&/a&&/p&&p&1,不要让生命周期长于Activity的对象持有到Activity的引用&/p&&p&
2,尽量使用Application的Context而不是Activity的Context&/p&&p&
3,尽量不要在Activity中使用非静态内部类,因为非静态内部类会隐式持有外部类实例的引用(具体可以查看细话Java:”失效”的private修饰符了解)。如果使用静态内部类,将外部实例引用作为弱引用持有。&/p&&p&
4,垃圾回收不能解决内存泄露,了解Android中垃圾回收机制&/p&&p&网络&/p&&p&1)volley&/p&&p&&a href=&///?target=https%3A//bxbxbai.github.io//android-working-with-volley/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android库Volley的使用介绍&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A//blog.csdn.net/guolin_blog/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android Volley完全解析(四),带你从源码的角度理解Volley&i class=&icon-external&&&/i&&/a&&/p&&p&2)如何控制TCP连接时的拥塞&/p&&p&&a href=&///?target=http%3A//blog.csdn.net/yechaodechuntian/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TCP的流量控制和拥塞控制&i class=&icon-external&&&/i&&/a&&/p&&p&3)三次握手&/p&&p&&a href=&///?target=http%3A//blog.csdn.net/whuslei/article/details/6667471& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TCP协议中的三次握手和四次挥手(图解)&i class=&icon-external&&&/i&&/a&&/p&&p&4)Android客户端和服务端如何使用Token和Session&/p&&p&&a href=&///?target=http%3A//wyong./3352& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android客户端和服务端如何使用Token和Session&i class=&icon-external&&&/i&&/a&&/p&&p&5) 移动端获取网络数据优化的几个点&/p&&p&
0. 连接复用 :&/p&&p&
节省连接建立时间,如开启 keep-alive。&/p&&p&
对于 Android 来说默认情况下 HttpURLConnection 和 HttpClient 都开启了
keep-alive。只是 2.2 之前 HttpURLConnection 存在影响连接池的 Bug,具体可见:&a href=&///?target=http%3A///android/android-http-api-compare/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android HttpURLConnection 及 HttpClient 选择&i class=&icon-external&&&/i&&/a&&/p&&ol&&li&&p&请求合并:&/p&&/li&&/ol&&p& 即将多个请求合并为一个进行请求,比较常见的就是网页中的 CSS Image Sprites。如果某个页面内请求过多,也可以考虑做一定的请求合并。&/p&&p&
2. 减少请求数据的大小:&/p&&p& 对于post请求,body可以做gzip压缩的,header也可以作数据压缩(不过只支持http 2.0)。&/p&&p&
3. 返回的数据的body也可以作gzip压缩,body数据体积可以缩小到原来的30%左右。(也可以考虑压缩返回的json数据的key数据的体积,尤其是针对返回数据格式变化不大的情况,支付宝聊天返回的数据用到了)&/p&&p&
4. 根据用户的当前的网络质量来判断下载什么质量的图片(电商用的比较多)&/p&&p&图像处理:&/p&&p&1.裁剪&/p&&p&2.Fresco:&/p&&p&&a href=&///?target=http%3A//fresco-cn.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Fresco | Fresco 中文说明&i class=&icon-external&&&/i&&/a&&/p&&p&android缓存&/p&&p&1.LRUCache&/p&&p&GC:&/p&&p&1.GC过程:&/p&&p&&a href=&///?target=http%3A///blog/455883& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JVM垃圾回收(GC)原理&i class=&icon-external&&&/i&&/a&&/p&&p&内存:&/p&&p&1)内存分配:&/p&&p&&a href=&///?target=http%3A///zuoxiaolong/p/jvm1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JVM内存管理------JAVA语言的内存管理概述&i class=&icon-external&&&/i&&/a&&/p&&p&多线程&/p&&p&1)线程池:&/p&&p&&a href=&///?target=http%3A///dolphin0520/p/3932921.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Java并发编程:线程池的使用&i class=&icon-external&&&/i&&/a&&/p&&p&事件分发机制&/p&&p&1)Touch&/p&&p&&a href=&///?target=http%3A///sunzn/archive//3064129.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android 编程下 Touch 事件的分发和消费机制&i class=&icon-external&&&/i&&/a&&/p&&p&算法:&/p&&p&1.TopK堆解决&/p&&p&&a href=&///?target=http%3A///blog/2004940& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Java最小堆解决TopK问题&i class=&icon-external&&&/i&&/a&&/p&&p&优化&/p&&p&1)Listview的优化&/p&&p&&a href=&///?target=http%3A///questions//android-what-is-the-meaning-of-stableids& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&listview - Android&i class=&icon-external&&&/i&&/a&&/p&&p&2)convertView是如何传递到adapter的getView方法的&/p&&p&&a href=&///?target=http%3A///blog/1689613& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ListView性能优化系列之三&i class=&icon-external&&&/i&&/a&&/p&&p&Hybrid&/p&&p&1)java和JS的交互&/p&&p&&a href=&///?target=http%3A///blog//interaction-between-java-and-javascript-in-android/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android中Java和JavaScript交互&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///blog/2043049& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android中JavaScript和Native之间的Bridge&i class=&icon-external&&&/i&&/a&&/p&&ul&&li&&p&WebView开启JavaScript脚本执行&/p&&/li&&li&&p&WebView设置供JavaScript调用的交互接口。&/p&&/li&&li&客户端和网页端编写调用对方的代码。&/li&&/ul&-----------------------------------------------------------------------------------------------&br&感谢@ Jaeger 的修正,之前一直以为一个dialog弹出会触发当前的activity的onPause函数,其实并没有,onPause()触发的条件为当前的actiivty即将要退出activityStack的top,然而dialog并不是一个activity所以无法让activity退出的。写了个demo的确是没有弹出来onPause里面的toast,详细解释stackoverflow也有一个比较好的答案,上链接大家更正一下,不要影响到面试最重要!&br&&a href=&///?target=http%3A///questions/7240916/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android: Under what circumstances would a Dialog appearing cause onPause() to be called?&i class=&icon-external&&&/i&&/a&
前段时间面试,自己以及小伙伴们简要的汇总的一些面试问题,可以对照的参考一下吧~建议就是在面一家公司之前了解好这个公司的app是以什么为驱动的,例如电商的话肯定要了解hybrid 开发的一些知识点,图像处理的公司要好好复习下bitmap canvas相关的知识点…
&p&&b&我最近在Android面试指南小专栏里面写了一篇稿子 (&a href=&///?target=https%3A///topic/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android面试指南 - 算法面试心得 - 小专栏&i class=&icon-external&&&/i&&/a&),欢迎阅读!&/b&&/p&&p&&br&&/p&&p&2017年10月更新&/p&&p&=======================&/p&&p&&br&&/p&&p&最近花了些时间将以前的一些资料重新整理了一下,需要的自取哈 &br&&a href=&///?target=https%3A///hujiaweibujidao/AndroidInterviews& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - hujiaweibujidao/AndroidInterviews: Helpful materials for Android Interviews&i class=&icon-external&&&/i&&/a&&/p&&p&去年找工作的时候整理了一份Android开发面试干货,原始资料地址[点击这里](&a href=&///?target=http%3A//hujiaweibujidao.github.io/blog//a-li-bao-bao-de-man-man-qiu-zhi-lu/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Job Hunting | HujiaweiBujidao&i class=&icon-external&&&/i&&/a&),由于当时制作的比较仓促,资料中存在不少错误或者过时的内容。一年快过去了,最近计划重新整理下这些资料,目前已经整理了不少资料,希望对正在找工作的小伙伴们有点帮助。
&br&建议结合下面的Android群英传和Android开发艺术探索这两本书的读书笔记系列一起看,因为读书笔记中涉及到的很多重要知识在这份面试总结中就不再重复介绍了。
&br&整理的资料大部分都来源于书籍和网络,很多都已经标明了原文出处,若仍有侵权,请通知我,我立即道歉并删除。&/p&&p&推荐资料和书籍
&br&0. [Android官方培训课程中文版](&a href=&///?target=http%3A//hukai.me/android-training-course-in-chinese/index.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&序言 | Android官方培训课程中文版(v0.9.5)&i class=&icon-external&&&/i&&/a&):熟悉Android开发基础知识
&br&1. Android群英传:[(在线版读书笔记点这里)](&a href=&///?target=http%3A//hujiaweibujidao.github.io/blog//Android-Heroes-Reading-Notes/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android Heroes Reading Notes&i class=&icon-external&&&/i&&/a&)
&br&2. Android开发艺术探索:[(在线版读书笔记点这里)](&a href=&///?target=http%3A//hujiaweibujidao.github.io/blog//Art-of-Android-Development-Reading-Notes/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Art of Android Development Reading Notes&i class=&icon-external&&&/i&&/a&)
&br&3. Android开发进阶-从小工到专家:提高Android开发技能必看
&br&4. Java程序性能优化:修炼Java的基本功
&br&5. 剑指Offer:国内的经典面试书
&br&6. 程序员面试金典:国外的经典面试书
&br&7. Android面试题一天一题:[@goeasyway 总结的Android面试题](&a href=&///?target=http%3A///users/f9fbc7a39b36& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&goeasyway - 简书&i class=&icon-external&&&/i&&/a&)&/p&&p&PS:千万记得要去刷[LeetCode](&a href=&///?target=https%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LeetCode Online Judge&i class=&icon-external&&&/i&&/a&)!
&br&在此特别感谢戴方勤和唐磊总结的题解(对应`leetcode-cpp.pdf`和`leetcode-java.pdf`两份文档)
&br&PPS:推荐下[九章算法](&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&九章算法 - 帮助更多中国人找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧&i class=&icon-external&&&/i&&/a&),一个不错的在线刷题和算法交流的网站,推荐关注他们的公众号(九章算法)
&br&PPPS:算法主要掌握搜索、排序、递归、分治、回溯、贪心、动规等常见的算法思想,并结合数组、字符串、树等类型的题目进行练习就好。常见数据结构和算法的总结可以考虑阅读我之前总结的[数据结构与算法系列文章 在线版](&a href=&///?target=http%3A//hujiaweibujidao.github.io/python/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&HujiaweiBujidao&i class=&icon-external&&&/i&&/a&)。
&br&PPPPS:为了方便阅读,我已经将这4份总结转成了排版好的PDF格式的文件。另外,我博客中3本书的阅读笔记也整理好放在相应的文件夹下面啦,这样大家可以下载下来离线阅读(可能存在部分链接失效的问题)。&/p&&p&最后,祝大家找工作一帆风顺!
&/p&&p&2016年9月更新&/p&&p&&br&&/p&&p&====== 去年的答案 ======&/p&&p&今年我找Android开发工作整理下来的干货,分享给大家,包含了Java,Android,网络三部分,祝找工作顺利。&/p&&p&&a href=&///?target=http%3A//hujiaweibujidao.github.io/blog//a-li-bao-bao-de-man-man-qiu-zhi-lu/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Job Hunting | HujiaweiBujidao&i class=&icon-external&&&/i&&/a&&/p&&p&另外,推荐看《Android群英传》和《Android开发艺术探索》这两本经典的书&br&我的博客有这两本书的读书笔记,也欢迎阅读&/p&&p&《Android群英传》读书笔记 &a href=&///?target=http%3A//hujiaweibujidao.github.io/blog//Android-Heroes-Reading-Notes/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android Heroes Reading Notes&i class=&icon-external&&&/i&&/a&&/p&&p&《Android开发艺术探索》读书笔记 &a href=&///?target=http%3A//hujiaweibujidao.github.io/blog//Art-of-Android-Development-Reading-Notes/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Art of Android Development Reading Notes&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&**下面的二维码是我个人维护的微信公众号“潇涧技术专栏”,会不定期分享移动开发的核心技术,欢迎关注!**&/p&&p&&a href=&///?target=http%3A///r/snUsNEzEfhEBrQhX9yCg& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/r/snUsNEz&/span&&span class=&invisible&&EfhEBrQhX9yCg&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& (二维码自动识别)&/p&
我最近在Android面试指南小专栏里面写了一篇稿子 (),欢迎阅读! 2017年10月更新======================= 最近花了些时间将以前的一些资料重新整理了一下,需要的自取哈
作为一个有三、四年Android应用开发经验的码农,自然会遇到很多坑,下面是我能够想起的一些坑(实践证明不记笔记可不是个好习惯),后面有想到其它坑会陆续补上。&br&&ul&&li&在Android library中不能使用switch-case语句访问资源ID:&a href=&///?target=http%3A//zmywly8866.github.io//android-can-not-use-switch-to-load-resource-in-libproject-solution.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案&i class=&icon-external&&&/i&&/a&&/li&&br&&li&不能在Activity没有完全显示时显示PopupWindow和Dialog:&a href=&///?target=http%3A///questions/4187673/problems-creating-a-popup-window-in-android-activity& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&popupwindow - Problems creating a Popup Window in Android Activity&i class=&icon-external&&&/i&&/a&&/li&&/ul&&br&&ul&&li&在多进程之间不要用SharedPreferences共享数据,虽然可以(MODE_MULTI_PROCESS),但极不稳定:&a href=&///?target=http%3A///questions//mode-multi-process-for-sharedpreferences-isnt-working& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&android - MODE_MULTI_PROCESS for SharedPreferences isn't working&i class=&icon-external&&&/i&&/a&&br&&/li&&/ul&&br&&ul&&li&有些时候不能使用Application的Context,不然会报错(比如启动Activity,显示Dialog等):&/li&&/ul&&figure&&img src=&/9be7e8e2d05cd088fb79d22b211fdaad_b.png& data-rawwidth=&600& data-rawheight=&328& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/9be7e8e2d05cd088fb79d22b211fdaad_r.png&&&/figure&&br&&strong&备注:&/strong&大家注意看到有一些NO上添加了一些数字,其实这些从能力上来说是YES,但是为什么说是NO呢?下面一个一个解释:&br&&p&1、数字1:启动Activity在这些类中是可以的,但是需要创建一个新的task,一般情况不推荐;&br&&br&
2、数字2:在这些类中去layout inflate是合法的,但是会使用系统默认的主题样式,如果你自定义了某些样式可能不会被使用;&br&&br&
3、数字3:在Receiver为null时允许,在4.2或以上的版本中,用于获取黏性广播的当前值。(可以无视);&br&&br&
4、ContentProvider、BroadcastReceiver之所以在上述表格中,是因为在其内部方法中都有一个context用于使用。&/p&&br&&ul&&li&同一个应用的JNI代码,不要轻易换NDK编译的版本,否则会有很多问题(主要是一些方法实现不一样,并且高版本对代码的检测更严格),比如r8没有问题,但到r9就有问题了,这是个大坑;&br&&/li&&/ul&&br&&ul&&li&Android的JNI代码中,有返回类型的函数没有返回值编译的时候也不会报错;&/li&&/ul&&br&&ul&&li&当前Activity的onPause方法执行结束后才会执行下一个Activity的onCreate方法,所以在onPause方法中不适合做耗时较长的工作,这会影响到页面之间的跳转效率;&br&&/li&&/ul&&br&&ul&&li&谨慎使用Android的透明主题,透明主题会导致很多问题,比如:如果新的

我要回帖

更多关于 code elifecycle报错 的文章

 

随机推荐