苹果电脑安装下载的游戏时提示变量“…………”php提示未定义变量。怎么弄?

热门专题推荐内容热点内容推荐安卓应用来自子话题:
HTML、CSS、JavaScript、PHP、 MySQL的学习顺序是什么?&br&&br&没错,你列出的学习顺序非常正确。本人就是从小学习电脑最后自己建站的。D2CN就是我的。&br&&br&HTML是网页标记语言,是浏览器能够阅读的语言。你如果想你的网页让别人能看到,就必须学习HTML。且不说你是否建站,只要你写的东西想要浏览器能正确显示出来,那就要懂HTML。&br&HTML的编辑工具倒是起点很低,MS WORD就可以做到。你另存为HTM文档,再用记事本打开,就能看到HTML代码了,很好理解的代码。买本HTML的书籍,一会就会。&br&&br&会了HTML,也只是知道了网页编辑的入门。真正要建站,就需要了解CSS了。CSS中文名为“&a href=&http://zh.wikipedia.org/wiki/%E5%B1%82%E5%8F%A0%E6%A0%B7%E5%BC%8F%E8%A1%A8& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&层叠样式表&i class=&icon-external&&&/i&&/a&”。简单来说,CSS严格意义上来说算不得一种语言,但它借用了HTML的标记方法,被嵌套在网页中。语法比较直接,多数是文档格式化名词。可以自定义格式类,也可以被外部调用(嵌套)。如果是外部嵌套,基本上你就快要用到建站知识了。但没关系,这些仍然还可以在你的本地电脑模拟,并不真的需要一个服务器。&br&&br&JavaScript也是用HTML标记代号内嵌于HTML中的Javascript代码段,语法是Javascript语法。是因为HTML的功能实在受局限,多数是静态展示,没有互动能力。而JavaScript可以允许网页中使用一些特殊效果。早起的浏览器是不支持JavaScript的,但现在的浏览器没有不支持的。&br&&blockquote&感谢几位知友纠正我的描述错误。当时打字太急,措辞不当。感谢。&/blockquote&&br&上述三种代码,都还只是基于浏览器端的解释运行,可以完全独立于服务器。你在本地电脑的一个文件夹里写好,也完全可以在这个文件夹里用浏览器玩这些东西而不需要服务器支持。&br&&br&上面三种代码再厉害,做出来的页面也只是一个或者一些页面而已。如果没有程序或者数据库的支持,这些页面就算再漂亮也最终没法对外部数据请求产生大规模回应。这时候,就需要动态页面(Dynamic Webpage)的支持了。要实现Dynamic Webpage,就要用到Php或者Aspx这些动态编程语言,以下就按php说。&br&&br&Php这些编程语言不能被浏览器执行,但是可以被安装了php解释插件的Web服务器软件(比如Apache)运行。通过服务器端的运行,按照程序设定,向客户端浏览器发送结果。结果可以是被HTML化的页面。换句话说,服务器端在运行php程序,但在客户端,你只收到了一份html页面,这样你就在你自己的浏览器上看到了服务器端想给你看的内容。这个动作是可以交互的,你可以向服务器提出你的要求,服务器根据程序编制,返回给你特定的HTML内容(含Javascript和CSS)。可以是数据库里的内容,也可以是其他类型的内容,只要php能够实现。php的语法结构还是比较像C或者Java的,只要有点编程经验,理解Php不难。&br&&br&有了php,仅仅依靠php那点语句是做不出什么动态网页的,一般都要搭配数据库,也就是你所说的Mysql了。Mysql只是常见的数据库系统之一,在类UNIX系统上是免费的,性能也不错,所以用的人比较多。很多商业网站为了避免版权纠纷和成本考虑,都使用类UNIX系统的服务器搭配Mysql。&br&Mysql不能说是个语言,它只是一种数据库系统而已。Sql是数据库业界基本标准化的数据库服务器访问查询语言,这个要学习一下才能编制出适当的查询。一般来说,以你的例子,在php中设置好数据库查询参数,并且写好查询语句,php服务器会向mysql服务器发出查询请求,mysql服务器会返回给你查询结果。然后php根据查询结果,经过适当处理,然后HTML标记化之后,返回给客户端浏览器,完成一次页面运行。&br&&br&恭喜你,现在你看到Dynamic webpage了,就像你现在看到了我敲的这么多字,实际上已经被知乎存在了他们的数据库mysql里,而你点击我的答案标题,实际上是向知乎的服务器端发出了一个请求,这个请求被知乎的服务器收到,进行数据查询(可以是php进行这个查询),得到我这个答案,然后送给Apache服务器上的php进行处理,php得到这个结果,送答案的同时,也调出作者名称和资料给你看到并开始进行格式化(HTML)和美化(CSS+JavaScript)。而你点击别人的答案,也会得到同样的效果,但答案内容不同,这就是Dynamic Webpage的含义。&br&&br&最后,你并不需要马上去了解怎样架设服务器。虚拟主机也很多。可以租一个先玩玩。但做好一个网站,上述这些语言多少还是要知道点好。
HTML、CSS、JavaScript、PHP、 MySQL的学习顺序是什么?没错,你列出的学习顺序非常正确。本人就是从小学习电脑最后自己建站的。D2CN就是我的。HTML是网页标记语言,是浏览器能够阅读的语言。你如果想你的网页让别人能看到,就必须学习HTML。且不说你是否建…
来自子话题:
有一个小细节,很多开发人员都没有注意过&br&&br&比如你的Item中有三个按钮,你要为三个按钮分别定义点击事件,如何定义?&br&&br&也许你会在getView中这样做&br&&br&&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&n&&button1&/span&&span class=&o&&.&/span&&span class=&na&&setOnclickListener&/span&&span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&View&/span&&span class=&o&&.&/span&&span class=&na&&OnClickListener&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&nd&&@override&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&onClick&/span&&span class=&o&&(&/span&&span class=&n&&View&/span& &span class=&n&&v&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&c1&&//balabalabala...&/span&
&span class=&o&&}&/span&
&span class=&o&&});&/span&
&span class=&n&&button2&/span&&span class=&o&&.&/span&&span class=&na&&setOnclickListener&/span&&span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&View&/span&&span class=&o&&.&/span&&span class=&na&&OnClickListener&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&nd&&@override&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&onClick&/span&&span class=&o&&(&/span&&span class=&n&&View&/span& &span class=&n&&v&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&c1&&//balabalabala...&/span&
&span class=&o&&}&/span&
&span class=&o&&});&/span&
&span class=&n&&button3&/span&&span class=&o&&.&/span&&span class=&na&&setOnclickListener&/span&&span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&View&/span&&span class=&o&&.&/span&&span class=&na&&OnClickListener&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&nd&&@override&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&onClick&/span&&span class=&o&&(&/span&&span class=&n&&View&/span& &span class=&n&&v&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&c1&&//balabalabala...&/span&
&span class=&o&&}&/span&
&span class=&o&&});&/span&
&/code&&/pre&&/div&&br&如果你每屏显示7个Item,你一共创建了21个listener对象在内存中,如果View回收不畅,会更多,这样,在滚动的时候频繁GC 就会导致卡顿(这里描述有误,请看7月25日更新)&br&&br&如果你在Adapter初始化的时候创建一个Listener&br&&br&&div class=&highlight&&&pre&&code class=&language-text&&public MyAdapter () {
myListener = new View.OnClickListener() {
public void onClick(View v) {
v.getTag()
//balabalabala...
&/code&&/pre&&/div&&br&通过传入的View v这个参数判断是哪一个button被点击,这样,无论View如何创建,你只创建了1个Listener对象&br&&br&这只是一个小细节,优化的方式要综合使用,才会事半功倍&br&&br&&br&------------------7月24日更-----------------&br&&br&v.getTag() 这个tag本不是用来存数据的,通俗点讲它和view 的Id是同一个东西,只不过tag的类型是Object。实际上在tag中存储数据是不符合规范的方式&br&&br&但其实View类有两种tag,&br&&br&&br&&br&&a href=&file:///Users/SamuraiSong/Library/Application%20Support/Dash/DocSets/Android/Android.docset/Contents/Resources/Documents/docs/reference/android/view/View.html#setTag(java.lang.Object)& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&setTag&i class=&icon-external&&&/i&&/a&(&a href=&file:///Users/SamuraiSong/Library/Application%20Support/Dash/DocSets/Android/Android.docset/Contents/Resources/Documents/docs/reference/java/lang/Object.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Object&i class=&icon-external&&&/i&&/a& tag) 方法将tag保存在一个成员变量中,findViewWithTag正是遍历此tag&br&&br&&a href=&file:///Users/SamuraiSong/Library/Application%20Support/Dash/DocSets/Android/Android.docset/Contents/Resources/Documents/docs/reference/android/view/View.html#setTag(int,%20java.lang.Object)& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&setTag&i class=&icon-external&&&/i&&/a&(int key, &a href=&file:///Users/SamuraiSong/Library/Application%20Support/Dash/DocSets/Android/Android.docset/Contents/Resources/Documents/docs/reference/java/lang/Object.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Object&i class=&icon-external&&&/i&&/a& tag) 方法是最终是调用View类中的setKeyedTag(int key, Object tag)&br&这是一个私有方法&br&&br&&br&&br&他是用 SparseArray 实现的,我们可以把需要的东西存到这里面(其实观察源码可以发现,系统很多时候都是这样做的)&br&&br&这里要注意一点,参数key必须是唯一的,那么我们可以这样做&br&那么需要先在res/values/strings.xml中添加&br&&div class=&highlight&&&pre&&code class=&language-xml&&&span class=&nt&&&resources&&/span&
&span class=&nt&&&item&/span& &span class=&na&&type=&/span&&span class=&s&&&id&&/span& &span class=&na&&name=&/span&&span class=&s&&&tag_first&&/span&&span class=&nt&&&&/item&&/span&
&span class=&nt&&&item&/span& &span class=&na&&type=&/span&&span class=&s&&&id&&/span& &span class=&na&&name=&/span&&span class=&s&&&tag_second&&/span&&span class=&nt&&&&/item&&/span&
&span class=&nt&&&/resources&&/span&
&/code&&/pre&&/div&使用的时候写成&br&&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&n&&view&/span&&span class=&o&&.&/span&&span class=&na&&setTag&/span&&span class=&o&&(&/span&&span class=&n&&R&/span&&span class=&o&&.&/span&&span class=&na&&id&/span&&span class=&o&&.&/span&&span class=&na&&tag_first&/span&&span class=&o&&,&/span& &span class=&n&&obj1&/span&&span class=&o&&);&/span&
&span class=&n&&view&/span&&span class=&o&&.&/span&&span class=&na&&setTag&/span&&span class=&o&&(&/span&&span class=&n&&R&/span&&span class=&o&&.&/span&&span class=&na&&id&/span&&span class=&o&&.&/span&&span class=&na&&tag_second&/span&&span class=&o&&,&/span& &span class=&n&&obj2&/span&&span class=&o&&);&/span&
&/code&&/pre&&/div&&br&-------------------------关于如何绑定数据的问题-----------------&br&&br&有人问,如果这样写,所有button只能通过id区分逻辑,无法传入每个item的数据&br&&br&我们可以将数据通过view 的tag带进来&br&&br&public View getView(.....) {&br&
v.setTag(key, getItem(position));&br&
....&br&}&br&&br&然后在listener中通过v.getTag()将数据取出&br&&br&&br&-----------------------7月25日update-------------------&br&&br&这里我有一个失误&br&&br&如果listener里面的逻辑与当前的item有关,那么其实并不只是创建了21个listener对象&br&&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&getView&/span& &span class=&o&&(&/span&&span class=&n&&View&/span& &span class=&n&&convertView&/span& &span class=&o&&,&/span&&span class=&kd&&final&/span& &span class=&kt&&int&/span& &span class=&n&&position&/span& &span class=&o&&....)&/span& &span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&convertView&/span& &span class=&o&&==&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&View&/span& &span class=&n&&v&/span& &span class=&o&&=&/span& &span class=&n&&LayoutInflater&/span&&span class=&o&&.&/span&&span class=&na&&from&/span&&span class=&o&&(&/span&&span class=&n&&mContext&/span&&span class=&o&&).&/span&&span class=&na&&inflate&/span&&span class=&o&&(...);&/span&
&span class=&n&&v&/span&&span class=&o&&.&/span&&span class=&na&&setOnclickListener&/span&&span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&View&/span&&span class=&o&&.&/span&&span class=&na&&OnClickListener&/span& &span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&nd&&@override&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&onClick&/span&&span class=&o&&(&/span&&span class=&n&&View&/span& &span class=&n&&v&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&getItem&/span&&span class=&o&&(&/span&&span class=&n&&position&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&o&&});&/span&
&span class=&o&&}&/span& &span class=&k&&else&/span& &span class=&o&&{&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&br&你看下,如果绑定数据在convertView为空的情况下确实只创建了有限个listener,&br&但是在这种情况下绑定上的数据只有View创建时的7个,之后不为空的情况下没有更换listener导致重用的view数据是新的,listener里面的position依然是过去创建view时的7个之一,不会变化(注意参数上的final)&br&&br&若在else里面再重新setListener,view是有重用,listener被换成新的,并与新的position绑定,老的listener就会变成一个废对象,等待gc回收,随着list滚动,越来越多&br&&br&关键是我们的业务与position这个参数有关&br&&br&不知道这回我表述清楚了没有
有一个小细节,很多开发人员都没有注意过比如你的Item中有三个按钮,你要为三个按钮分别定义点击事件,如何定义?也许你会在getView中这样做button1.setOnclickListener(new View.OnClickListener() {
public void onClick(View v) {
//balaba…
来自子话题:
&p&第一本,入门&/p&&p&《Head first HTML&CSS》&/p&&p&最好的入门书。看两遍就对HTML & CSS 有个大概印象了。&/p&&p&此时把w3cschool作为备查手册收藏起来&/p&&br&&p&第二本《CSS权威指南(第三版)》&/p&&p&最权威的CSS书籍,除了阅读W3C的文档外的不二选择(就是翻译有点操蛋,遇到感到难理解的地方可能还是要求助于网络资源)。有时间(无论是现在还是将来)可以反复看,并当做字典随时查。&/p&&br&&p&第三本《精通CSS》&/p&&p&广受前辈推荐的一本书。上一本书是字典的话,这本书相当于《中学生作文大全》,汇集了一些CSS的最佳实践。&/p&&br&&p&第四本《图解CSS3:核心技术与案例实践》&/p&&p&这本书比较新,讲解的是最新的CSS3(前三本书停留在CSS2.1时代),CSS3也是必学的,不是什么可学可不学的最新技术。&/p&&br&&p&HTML CSS值得看的书就这些(之后会有一本《CSS秘密花园》,尚在翻译中,也很值得期待),剩下的就是自己写还有看技术博客了。接下来是JavaScript,HTML和CSS都是没有逻辑的标记型语言,JS才是真正的编程语言,评价前端工程师的水平就看这个了。&/p&&br&&p&第五本《JavaScript DOM编程艺术》&/p&&p&最好的JS入门书籍,一目了然地告诉你如何用JS操作DOM(这是浏览器端编程的基本功),还灌输了最符合标准的编程理念。可惜有点老,最新一版是2010年的,以至于部分内容有点过期,例如本书内经常提到“某某方法浏览器不一定支持,需要小心使用”,而这些历史遗留问题当今已经不存在了,阅读过程中无视就好。&/p&&br&&p&第六本《JavaScript高级程序设计》&/p&&p&每个前端必看的书,此书是前端工程师科技树的关键一环。看完此书后再看看之后各类进阶书籍会比较好。&br&&/p&&p&俗称红宝书,也算入门书籍,虽然是大部头(七百多页),但至少通读一遍。&/p&&p&全部掌握了,你可以在网络社区里谈笑风生了,经过实践的锻炼后,面试个前端工程师的岗位应该都没问题了。&/p&&br&&p&第七本《JavaScript语言精粹》&/p&&p&也是前端必看。薄薄一百来页,对JS的去粗取精。&/p&&br&&p&第八本《你不知道的JavaScript》&/p&&p&这是一套丛书, 目前为止仅翻译了第一卷。每本都挺薄,深入介绍了JS中的重要概念。&br&&/p&&br&&p&第九本《JavaScript设计模式》&/p&&p&“设计模式”是软件工程的重要课题,相当于高考时候的答题套路。前人总结出来的应对各种问题的模板。也算是必看书籍。关于JavaScript设计模式的书籍目前也有好几本,也有国人写的,挑一两本看看就好。&/p&&br&&p&第十本《高性能网站建设指南》(及其续篇《高性能网站进阶》)&/p&&p&告诉你真正的商业公司的前端是怎么优化一个网站的。当然优化的问题不是看看书就能解决的,最好时刻了解你的同行们的经验。&br&&/p&&br&&p&看
完以上十本算是前端入门了。到现在为止,配合搜索引擎,已经可以无障碍地做出静态网页、各种特效、用AJAX配合后台构建Web应用了。然后是各种框架、
库、预处理语言的学习,而且现在JavaScript也可以用来写服务器了(Node.js),这样一来JS通吃前后端,前端工程师都欢欣鼓舞,这也是个
学习热点。下面是一些补充书籍,可以穿插着看。(&b&至少看了两遍《JavaScript高级程序设计》再看下面的书&/b&)&/p&&p&《图解HTTP》和《HTTP权威指南》&/p&&p&每个Web程序员都应该熟悉HTTP协议里的内容。《图解HTTP》算是科普级别的书,《HTTP权威指南》则是大部头,需要点耐心才能看完。建议在了解AJAX后立刻开始学习HTTP协议。&br&&/p&&br&&p&《锋利的jQuery》&/p&&p&讲JS最著名的库——jQuery的,快速入门的书。光会原生JS不够,还要会用库。&/p&&br&&br&&p&《数据结构和算法的JavaScript描述》&/p&&p&作为程序员如果连基本的数据结构和排序、查找算法都不会实在丢脸。&/p&&br&&p&《JavaScript编程精解》&/p&&p&巩固对JS的理解,很薄&/p&&br&&p&《JavaScript启示录》&/p&&p&同上,也很薄。&/p&&br&&p&《JavaScript权威指南》&/p&&p&号称“圣经”,最权威的JS书本,买来当作字典备查吧,没事也可以翻翻。&/p&&p&然后就是向高级前端工程师发展了,由于我是个菜鸟,也没办法做什么推荐。这时候全靠上社区、看博客来开阔眼界追赶潮流了。&/p&&br&&br&&p&=========&/p&&p&最后不得不说的是,所有的书里面的一些理念、方法等,只是作者自己认为的最佳方案,不代表就是绝对的真理,有的甚至因为时代的发展反而成为了错误内容,“尽信书不如无书”,大家还是应该结合工作实际和当前的潮流来学习新知识。&/p&
第一本,入门《Head first HTML&CSS》最好的入门书。看两遍就对HTML & CSS 有个大概印象了。此时把w3cschool作为备查手册收藏起来第二本《CSS权威指南(第三版)》最权威的CSS书籍,除了阅读W3C的文档外的不二选择(就是翻译有点操蛋,遇到感到难理解的地方…
来自子话题:
谢邀.&br&&br&作为一个数年C/Java/Python混合开发者, 我谈谈我的感受.&br&&br&我认为C, Java跟Python都是非常成功的语言, 具体选哪种看你的场景.&br&&br&言归正传,来对比一个Python跟Java.&br&&br&&b&Python:&/b&&br&&b&优点 ( 知乎怎么不能把这行字变大点??):&/b&&br&&br&&br&语法简洁优美, 功能强大, 标准库跟第三方库灰常强大, 应用领域非常广: &a href=&/vinta/awesome-python& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&vinta/awesome-python · GitHub&i class=&icon-external&&&/i&&/a&(跟PHP形成宣明对比!)&br&&br&语言方面, 举几个例子:&br&&br&&b&一切都是对象!!!&/b&&br&类(class本身)/函数/类方法是callable的对象&br&因为是对象,所以你当然可以传来传去啦. 比如:&br&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&k&&class&/span& &span class=&nc&&A&/span&&span class=&p&&:&/span&
&span class=&k&&def&/span& &span class=&nf&&__init__&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&p&&):&/span&
&span class=&k&&print&/span& &span class=&s&&&init A&&/span&
&span class=&k&&def&/span& &span class=&nf&&run&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&p&&):&/span&
&span class=&k&&print&/span& &span class=&s&&&run A&&/span&
&span class=&n&&threading&/span&&span class=&o&&.&/span&&span class=&n&&Thread&/span&&span class=&p&&(&/span&&span class=&n&&target&/span&&span class=&o&&=&/span&&span class=&n&&A&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&start&/span&&span class=&p&&()&/span& &span class=&c&&#: 在另一个线程执行A()&/span&
&span class=&n&&a&/span& &span class=&o&&=&/span& &span class=&n&&A&/span&&span class=&p&&()&/span&
&span class=&n&&threading&/span&&span class=&o&&.&/span&&span class=&n&&Thread&/span&&span class=&p&&(&/span&&span class=&n&&target&/span&&span class=&o&&=&/span&&span class=&n&&a&/span&&span class=&o&&.&/span&&span class=&n&&run&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&start&/span&&span class=&p&&()&/span& &span class=&c&&#: 在另一个线程执行a.run() ... &/span&
&span class=&c&&# 惊呆没有,这是怎么做到的?? 也许你该看看描述符的概念&/span&
&/code&&/pre&&/div&&br&&br&&b&List表达式&/b&(其他好多语言也有,但是我最喜欢python的写法):&br&把&1023&变成 [1, 2, 3]&br&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&p&&[&/span& &span class=&nb&&int&/span&&span class=&p&&(&/span&&span class=&n&&x&/span&&span class=&p&&)&/span& &span class=&k&&for&/span& &span class=&n&&x&/span& &span class=&ow&&in&/span& &span class=&s&&&1023&&/span& &span class=&k&&if&/span& &span class=&n&&x&/span& &span class=&o&&!=&/span& &span class=&s&&&0&&/span& &span class=&p&&]&/span&
&/code&&/pre&&/div&(当前你可以用Lisp风格的: map(int, filter(lambda x: x != &0&, &1024&)))&br&&br&对dict也是类似:&br&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&n&&adict&/span& &span class=&o&&=&/span& &span class=&p&&{&/span&&span class=&s&&&a&&/span&&span class=&p&&:&/span&&span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&s&&&b&&/span&&span class=&p&&:&/span&&span class=&mi&&2&/span&&span class=&p&&}&/span&
&span class=&p&&{&/span&&span class=&n&&k&/span&&span class=&p&&:&/span& &span class=&n&&v&/span&&span class=&o&&*&/span&&span class=&mi&&2&/span& &span class=&k&&for&/span& &span class=&n&&k&/span&&span class=&p&&,&/span& &span class=&n&&v&/span& &span class=&ow&&in&/span& &span class=&n&&adict&/span&&span class=&o&&.&/span&&span class=&n&&items&/span&&span class=&p&&()&/span& &span class=&p&&}&/span&
&/code&&/pre&&/div&&br&&b&yield关键字:&/b&&br&当你需要返回很多东西然后一个一个用的时候, 你可以一次返回一个&br&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&k&&def&/span& &span class=&nf&&xrange&/span&&span class=&p&&(&/span&&span class=&n&&n&/span&&span class=&p&&):&/span&
&span class=&n&&i&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&while&/span& &span class=&n&&i&/span& &span class=&o&&&&/span& &span class=&n&&n&/span&&span class=&p&&:&/span&
&span class=&k&&yield&/span& &span class=&n&&i&/span&
&span class=&n&&i&/span& &span class=&o&&+=&/span& &span class=&mi&&1&/span&
&span class=&err&&用法&/span&&span class=&p&&:&/span&
&span class=&k&&for&/span& &span class=&n&&i&/span& &span class=&ow&&in&/span& &span class=&nb&&xrange&/span&&span class=&p&&(&/span&&span class=&mi&&10&/span&&span class=&p&&):&/span&
&span class=&k&&print&/span& &span class=&n&&i&/span&
&/code&&/pre&&/div&&br&&b&装饰器@:&/b&&br&把something_heavy()返回的结果缓存起来(以函数名+args为缓存的键值,只缓存最近使用的10条)&br&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&nd&&@functool.lru_cache&/span&&span class=&p&&(&/span&&span class=&mi&&10&/span&&span class=&p&&)&/span&
&span class=&k&&def&/span& &span class=&nf&&something_heavy&/span&&span class=&p&&(&/span&&span class=&n&&args&/span&&span class=&p&&):&/span&
&span class=&c&&#各种耗时操作.....&/span&
&span class=&k&&pass&/span&
&/code&&/pre&&/div&&br&&b&运算符重载:&/b&&br&试试numpy, 你会惊呆的, 操作向量/矩阵跟基本类型一样方便&br&&br&&b&缺点:&/b&&br&&br&&b&慢&/b&&br&目测python是最慢的脚本语言,比V8上的JS还慢不少. (研究一下描述符,你会发现python调用对象方法的开销好大!)&br&&br&但是python创始人说了, 一般程序的瓶颈在于20%的代码, 所以你可以把那20%的代码用C重写(而python是胶水语言,用C重写部分代码当然很easy啦)&br&&br&同时,你可以试试PyPy, 引入了JIT技术&br&&br&&b&动态类型&/b&&br&有人说: 动态类型写时爽, 重构起来是灾难(原谅我记不得原话..).&br&&br&对于不写unittest, 不做代码覆盖率测试的人来说, 动态语言当然是危险的, 拼写错误都可能被隐藏, 重构?别捣乱!&br&&br&python创始人有话说: &如果你认为编译器可以帮你解决所有问题,那你一定干编程没多久& (鄙人深有体会,曾经年少轻狂的我非常鄙视javascript), &不管什么程序,都需要写testcase, 既然要写testcase, 那么动态类型不是问题!&&br&&br&在此推荐大家两个工具: py.test python-coverage&br&&br&&b&Java:&/b&&br&&br&&br&&b&优点&/b&&br&&br&用几个词形容一下Java语言: 优美, 严谨, 健壮,不易出错.&br&&br&当然, 使用也非常的广泛: 常年盘踞编程人员数量排行榜第一名!&br&各种库也灰常多: &a href=&/akullpp/awesome-java& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&akullpp/awesome-java · GitHub&i class=&icon-external&&&/i&&/a&&br&同样的代码, 相比C++(甚至python), Java代码出BUG的概率要小点(当然,写的时候一般会比python长). &br&&br&Java从语言设计上尽量避免了程序员犯错, 比如自动垃圾回收, 抛弃无符号类型, 安全的枚举, 编译期泛型检查(Java1.5之后加入的泛型,但是只是用来做编译器检查,运行时跟以前一样), 强制的异常处理(遇到异常必须catch或者申明throws) 等等(当然,某些特性python也有.)&br&&br&Java标准库和好多第三方代码都充斥着浓浓的设计感!!!, 各种设计模式到处可见. 从下面的语句可以看出一点来:&br&&div class=&highlight&&&pre&&code class=&language-text&&new BufferedInputStream(new FileInputStream(new File(&somepath&)))
&/code&&/pre&&/div&尼玛, 好多字, 看我的:&br&C:&br&&div class=&highlight&&&pre&&code class=&language-text&&fopen(&somepath&, &r&)
&/code&&/pre&&/div&Python:&br&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&nb&&open&/span&&span class=&p&&(&/span&&span class=&s&&&somepath&&/span&&span class=&p&&)&/span&
&/code&&/pre&&/div&Java代码多,但是API可复用行更强,选择更多(我想一次读完文件,不要buffer呢?)&br&&br&因为健壮安全,所以Java成了企业级后台的标准. 想想银行后台, 关键地方出点bug可不得了.&br&&br&&b&缺点:&/b&&br&&br&&br&&b&要敲好多代码, 参考上面的例子...&/b&&br&&br&&br&&b&没有Python那些奇葩特性, 灵活性不足,怎么写你还是Java, 而Python可以写的像Javascript/Lisp/Matlab.....&/b&&br&&br&&br&&br&&b&简单来说, Python是给人设计的(人生苦短,请用Python), C/C++更像是为机器设计的,&br&而Java则介于两者之间.&/b&&br&&br&如果你是高手, 写出的代码没什么bug, 也不用怎么调试, 那推荐你用python(前提是他的慢你能忍受.
当然,高手眼里, 他会的就是最好的....)&br&如果你写的代码bug多,大部分时间在调试代码,你可能需要了解一下Java, 或者写足够多的testcase.
谢邀.作为一个数年C/Java/Python混合开发者, 我谈谈我的感受.我认为C, Java跟Python都是非常成功的语言, 具体选哪种看你的场景.言归正传,来对比一个Python跟Java.Python:优点 ( 知乎怎么不能把这行字变大点??):语法简洁优美, 功能强大, 标准库跟第三方库灰…
来自子话题:
明明说好三年,三年之后又三年,三年之后又三年,都快十年了老大。
明明说好三年,三年之后又三年,三年之后又三年,都快十年了老大。
来自子话题:
本人做程序有17年了,这里说说个人的感受&br&--------------------------------------------------------------------------&br&光吐槽了,忘了实际给出切实的建议,办法就是自己实际的做东西练习。具体来说就是不断选择一个自己喜欢的题目(比如开始时候做个贪吃蛇,后期做些近似能商用的信息系统这类的),尽可能的自己完成。同时大量的联系基础算法及各种基础技术,这在下面有叙述。&br&注意这里说的自己完成,是尽可能的:&br&1.不要看别人的思路&br&2.查资料尽可能的查小问题,比如不要查怎么显示贪吃蛇,而可以查怎么绘制个方块&br&3.充分调试和升级,在基础功能上,尽最大可能的添加功能和完善,直到你的项目崩溃。(比如尝试让俄罗斯方块在局域网对战)&br&-------------------------------以上为补充---------------------------&br&首先,本人不赞同&a href=&/people/mei-teng-tian& class=&internal&&梅腾天&/a& 回答中的大部分观点,人在进步,在学新东西,在学校时水平差,到工作中水平上升了,就一定是因为工作好么?如果你在学校中就永远是那个水平了么?&br&这里就大家经常提到的几点说几句。&br&&br&1.算法:就个人带徒弟的经验来看,算法绝对不是没用,而是大大的有用。只不过大部分菜鸟不知道算法的用途,所以觉得多学几个库更实在。算法,对绝大部分程序员来说,意义不是“学会XX排序和XX树”这样的实际用上的机会比较低的东西,而是“&u&理解计算机是在如何解决问题”以及“我们应该如何看待这些问题”&/u&。你说算法没用,确实,绝大部分算法你用不上,但没有算法基础,你怎么设计自己的东西?学库、学系统、学环境、学设计、学架构都不能让你更多的理解这些,当然,学体系结构、学编译原理、学离散数学等对这些有帮助,但是我还真不相信看不起算法的人会去学这个。所以说,如果你把算法作为【工具集】来学,那没有任何用,但作为【基础观点】来学,就是重中之重。&br&&br&2.语言:经常见到人说XX语言怎样怎样的,有人鼓吹某个语言的优秀,有人妆模作样的说什么“语言一通百通”。个人的观点是:&b&&u&成熟的商用的开发语言之间很难有明显的优劣,但在特定领域中,是否适合这个领域却有着巨大的差别&/u&&/b&。比如说,C#和JAVA之间,语法上面差距有多大?表达能力上呢? 但是如果进一步考虑上所处的开发环境(如.NET)和应用领域(如移动开发),那么差别立刻就能看出来了。所以,如果就短期(几年这个量级)来看,考虑学什么语言的首选因素应该是考虑你期望从事的行业的主流技术,而非语言本身。如果长期来看,语言上的选择更要多样化,面向对象是主流的基础技术,其对应的JAVA或C#是一定要选一个的,C语言在很多场合有其重要的意义,也要了解,用于快速开发的语言可以多学几种,毕竟学习成本不是很高,另外函数式语言对纠正程序员的语言偏见和惯性思维有着重大意义,个人推荐在其他学的小成的时候一定要至少学一门。特定领域(或广义一些,针对某类问题的,比如R)语言就那么回事,对你理解语言的帮助不会很大,不用就不学没关系。&br&&br&3.系统:不要迷信什么linux才是王道的这种鬼话,linux唯一的优势就是便宜(和B格,不过近年好像也不行了),然后由于便宜带动了一个圈子,所以也有了一些只能在linux下用的东西。用我一个朋友的话说,在国内,linux就是传销,上当的人一定要拉一些新人进来才能平衡。国外呢?确实不一样,因为全用windows买不起。但是,&b&&u&并不推荐新手学习linux,因为他会让你长时间的纠结在基础问题上,而没有机会学习更重要和有意义的知识(滞后你5年的学习进度跟玩似的)&/u&&/b&。比如说吧,makefile这个东西,凭良心说,你让一个十万行积累的新手理解这东西有什么用?最后不是还在那里浪费时间?是的,我们可以通过这个实现一些有意思的功能,但我觉得把这些推荐给新手是不负责任的。当然,如果你向往的那个领域主打linux,那还是学学吧,入乡随俗。&br&&br&4.工具:很多人进入公司后会被公司使用的各种辅助工具震惊:哇!调试可以这么简单!哇!原来github的除了社区好以外其他就渣一样!没错,很多商用级的工具可以巨大的提升你的工作效率,但请注意一个基本事实:这些工具的学习成本都很低。什么意思?就是说,你用的时候再学也不影响什么。当然,这不能一概而论,比如单元测试、重构这样的工具,就应该早学,为什么?因为他影响你的开发习惯。调试类的工具个人反而不是那么推荐,因为在脑子里面模拟程序运行结果,并由此设计测试程序问题的方法对程序员来说非常重要,使用一些工具就好像用外挂越级打怪一样,是锻炼机会永久的缺失。&br&&br&5.维护性:关于维护性的观点上面的朋友没有问题,但这里有一个基本问题,就是高代码维护性是通过学习得来的么?对没有大量实战经验的程序员来说,和他谈论维护性就是对牛弹琴,你甚至都没有办法让他真正理解为什么命名要注意大小写,更别说解释明白为什么不能用匈牙利命名法了。涉及设计架构的东西就别指望了,对他来说就是”无意义的加入一堆不知道什么时候会有用的代码“。没真正自己设计一个较大的系统、不断升级调试、最终代码失控推倒从来,你永远别指望这个人会去考虑维护性,相反,经历过2、3次这种事情的人,除非没听说过,否则都会主动的看书学习。所以才会有所谓的”十万行“这个门槛,没有自己写(抄书后修改调试、下别人的修改、看开源项目统统不算)够十万,没有资格学维护性,这就是现实。&br&&br&6.多线程:既然提到了,就说几句,在程序设计中,多线程和数据库什么的一样,是单独的一个课题,学语言没学到多线程,那很正常。而且甚至来说,多线程和大规模的并发控制所用的技术和基础都不一样。如果这样区分学院和实际,那可说的就无穷无尽了。当然,就目前趋势看,并发很重要,非常重要,但,这绝对不是学编程的人过度需要关心的问题。掌握各种同步异步机制,会用框架提供的并发库,对数据并发和任务并发的概念有了解就可以了。大规模并发、高效的缓冲、大量的任务调度需要用到的知识基础很多,不是你需要理解的。&br&&br&7.架构:这个问题,我之前向一位大牛(世界级)请教了多次,主要就在架构学习和培养方面,基本结论就是,架构师是无法培养的。在十万行的基础上(这点很重要,提前只会浪费你的时间),去了解主流的程序架构观点,可以提升你对架构的鉴赏能力,多看一些大师写的案例反思类的东西,比如代码之美这类的,很多,去体会在具体问题上面大师的纠结,尤其是一眼看上去答案明显的问题,如果大师还在纠结,就更要引起你的注意。架构不是技能,不是方法的集合,而是观点的水平,这和上面的各个问题都有本质的区别。所以,对一般程序员来说,需要的是”看懂架构的能力“而非”具有大型系统架构的能力“,这点需要注意,无需太过冒进。&br&&br&P.S.最后随便说两句C++,个人的观点是:学语言C++是比较差的选择,因为C++是多风格语言,对高手【注意,这里的高手是指那些能清晰分辨各种设计、编程风格并在恰当的时候使用的人,如果仅仅是JAVA,c#,c++通吃这样的不算】来说,确定可以带来很多空间,但其复杂混乱的语法很容易让新手找不到重点。确实有”你要搞定c++,其他都没问题“这句话,但问题是你要花很多很多成本去搞定C++。所以,如果不是领域问题,个人并不推荐。
本人做程序有17年了,这里说说个人的感受--------------------------------------------------------------------------光吐槽了,忘了实际给出切实的建议,办法就是自己实际的做东西练习。具体来说就是不断选择一个自己喜欢的题目(比如开始时候做个贪吃蛇…
我觉得最有可行性,也最简单的方法如下:&br&1.练好车技,整理好形象&br&2.找个买了宾利的老板&br&3.应聘当司机&br&题主你没有要求是自己买的吧?&br&如果有,你的目标就是25岁之前赚到大概十倍宾利价格的资产了~&br&&b&建议先搞个职业规划吧。&/b&
我觉得最有可行性,也最简单的方法如下:1.练好车技,整理好形象2.找个买了宾利的老板3.应聘当司机题主你没有要求是自己买的吧?如果有,你的目标就是25岁之前赚到大概十倍宾利价格的资产了~建议先搞个职业规划吧。
来自子话题:
以下比较基于 Android 4.2(原生系统) 和 iOS 6(未越狱)。&br&在此申明,问题问的是 iOS 应该从 Android 学什么,所以我说的当然都是 Android 的好处,iOS 的弱处。要是觉得 iOS 有很多好处,请去这里「有什么事情是 iOS 设备能做,而 Android 做不到、做不好的:&a href=&/question/& class=&internal&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/question/2066&/span&&span class=&invisible&&8767&/span&&span class=&ellipsis&&&/span&&/a&」把你的观点写出来。或者在评论下指出我的错误,感激不尽。&br&&br&1,用 Android 拍的照片会自动同步到 Google 上,没有天数限制。 Photo Stream 只能存 30 天,有个毛用…要么无限量,要么帮我存到 Google 上。&br&&br&2,地图,Android 上的比 iOS 好用很多。这个也没办法了…&br&&br&3,iOS 上,通知系统的 X 永远也按不到,还要我按两次,这是在逗我玩?而且突然顶部肿起来那么一条通知真的是,严重污染视线,影响操作,经常遮挡住导航条…iOS 应该好好学学 Android 通知系统的各个方面。&br&&br&4,中文输入法…有那么多中国厂家做了输入法,随便收购一家都比现在的强。iOS 上我第一次用拼音输入「颖」这个字,找了整整一刻钟,结果还是用了奇淫巧技才输入进去了。&br&&br&5,Android 只要 Beam 或者 蓝牙就可以传文件和照片,这个一直是 iOS 的诟病。&br&&br&6,Android 上我用相机拍的照片可以在相册直接分享到 Path,微博,dropbox,等等,只要我安装了这些软件,就可以分享。iOS 要跋山涉水才能完成这些任务。&br&&br&7,Android 上联系人同步很方便,iOS 上就…不过 Apple 的这方面技术一向很烂…&br&&br&8,可以在电脑网页上浏览自己喜欢的 Android app 并直接安装到 Android 设备,这意味着你只需要一个浏览器就可以安装 Android app 了,比如你可以用 iPad 登录 Google Play 来购买 Android app,然后会自动安装到你指定的 Android 设备。而 iOS 必须通过 iTunes 或者设备本身,比如你在用 iPhone 看新闻,发现了一个很棒的 iPad app,那你只能去拿 iPad 或者打开电脑来安装这个 app。&br&&br&9,同一个 app,在 iOS 上所占据的存储空间几乎都比 Android 上的大,这个原因有很多,比如各种华而不实的图片素材,iPad 和 iPhone 共用一个 app 等等(不过 Universal app 也有它的好处 ,所以只能说是一个特点吧,不能说是缺点,有利也有弊)。&br&&br&10,Android 上要隐藏一个自己不想看到的 app 很容易。iOS 上的那个晃眼的杂志书架以及其他原生 app 就是永远去不掉。&br&&br&11,Android 现在可以在锁屏添加 widget,不用解锁就可以查看想要的信息。iOS 的解锁屏什么都没。并且 Android 的解锁方式个人觉得比 iOS 的方便很多。&br&&br&12,Android 可以将自己喜欢的浏览器、短信软件、电话软件等设为默认,iOS 只能用系统给你的,但是系统自带的又没有做到比别家的都出色。&br&&br&13,有人觉得 iOS 的优点在于不需要你做出选择,只给你一条路走。在我看来这是极大的缺点。Android 系统同样给了你一条路,如果你不想选择,完全可以走那条默认路线,但是你若摸索一下,还可以找到一条更适合你的捷径。但 iOS 只给你一个选择,而这个选择有时候对你来说并不是最佳的,甚至是条弯路。&br&&br&再次强调,以上比较基于 &u&&b&Android 4.2(原生系统) 和 iOS 6(未越狱)&/b&&/u&。&br&不要来拿山寨或定制安卓机说事。我可没用「金苹果双卡双待XP」来黑 iPhone。觉得哪个好,就用哪个。我反正两个系统都用。&br&&br&以下内容请勿阅读:&br&反正 iOS 已经从最炫最酷的系统变成…了,尤其是我用了 Android4.2 之后更加这样感觉。从以前被疯狂模仿,到现在疯狂模仿别人,还四不像。很多事情,它自己做得一塌糊涂,又不让别人做,顽固又自大。&br&我觉得 iOS 现在最应该从 Android 学习的,是 Stay hungry, stay foolish.
以下比较基于 Android 4.2(原生系统) 和 iOS 6(未越狱)。在此申明,问题问的是 iOS 应该从 Android 学什么,所以我说的当然都是 Android 的好处,iOS 的弱处。要是觉得 iOS 有很多好处,请去这里「有什么事情是 iOS 设备能做,而 Android 做不到、做不…
来自子话题:
对于应届生:&br&&ul&&li&标准库各容器的基本操作的复杂度。标准库算法的复杂度,例如 std::sort() 的平均复杂度、最坏复杂度(答 O(N^2) 和 O(N log N) 都算对),最坏情况什么时候出现。&br&&/li&&li&标准库各容器(deque 除外)的数据结构(标准党勿喷,主流 STL 实现的数据结构都差不多),以及 vector 的容量增长方式。如果回答得特别好,还可以补充问为什么 vector::push_back() 的复杂度是分摊之后的 O(1),作为加分。&/li&&li&出一道使用 lower_bound / upper_bound 能轻松解决的简单算法题;或者实现 set_intersection() 或 set_union() 或 merge();或者实现 word count,统计每个单词出现的次数(最多十几行代码),如果有时间,输出时再按出现次数排序。&br&&/li&&/ul&对于社招,补充问:&br&&ul&&li&迭代器失效。(不要求记住所有的场景,但要有这个概念,其实知道数据结构的话不难推理。)&br&&/li&&li&标准库的线程安全性。&/li&&li&自动化对象生命期管理,智能指针,循环引用,weak_ptr。&br&&/li&&li&list 的 insert()/erase() 与 vector 相比哪个快。(这个不是那么简单。)&/li&&/ul&&p&关于什么是好的面试题,多说几句我的看法:&/p&&ul&&li&面试官向谁负责。通常应聘者会面试几轮,收集多个面试官的 feedback,交给 hire manager 或 hire committee 决定是否录用。也就是说面试官无权单独决定是否录用这个候选人。在此前提下,面试官的任务是收集足够多的有效信息(包括面试题、答案、答题过程等等),供 hire manager 或 hire committee 决断。因此,面试题要有说服力。应聘者答上了这道面试题,能说明什么,如果没答上来,又能说明什么。不符合这一要求的不是好题目。&br&&/li&&li&难度与区分度。难度定位在“一个合格的 C++ 程序员应该掌握的基本知识”,是招能用 C++ 干活的人,不是招标准控或语言律师。所有人都能做出来和所有人都做不出来的题目,没有区分度,不是好题目。所有应聘者都能通过或者所有应聘者都被刷掉的面试官也不是好面试官。&/li&&li&公平性与可重复性。技术面试题应该有比较公认的正确答案,怎么样算答得好,不仅由面试官一个人做出判断,hire manager 和 hire committee 也能重复这一判断。一套好题目,能起到筛选多个面试者的作用,比如“眼前这个应聘者的回答与过去六个月里的应聘者相比,处于前 10 % 的位置”,这就是不错的客观标杆。&/li&&/ul&
对于应届生:标准库各容器的基本操作的复杂度。标准库算法的复杂度,例如 std::sort() 的平均复杂度、最坏复杂度(答 O(N^2) 和 O(N log N) 都算对),最坏情况什么时候出现。标准库各容器(deque 除外)的数据结构(标准党勿喷,主流 STL 实现的数据结构都…
来自子话题:
题主说的是事实。 我去过硅谷约二百家公司左右,只看到过两家公司用windows和.net
,就是微软硅谷分公司 Microsoft SVC,跟google在同一个镇里。 还有一个是&a class=& wrap external& href=&http://stackshare.io/stack-exchange& target=&_blank& rel=&nofollow noreferrer&&Stack Exchange&i class=&icon-external&&&/i&&/a& 可能是工作性质需要。 Google工程师用得最多的是Vim.&br&&br&
欲知道硅谷&b&所有的企业&/b&用的都是什么工具,这里有大全: &a href=&http://stackshare.io/stacks#& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Stacks | StackShare&i class=&icon-external&&&/i&&/a&! 不用到处找。&br&&br&另外,PHP是最好的语言:&a class=& wrap external& href=&http://stackshare.io/languages& target=&_blank& rel=&nofollow noreferrer&&Languages | StackShare&i class=&icon-external&&&/i&&/a& 。&br&&br&
近年美国经济形势非常好,也并非泡沫经济,因为最近一年的上市IPO企业才34家,而互联网泡沫的2000年,是400家。 硅谷现在非常缺人才,中国学生非常聪明,基本上路子走对: 1、把英语学好,英语学好的标准是: &a class=&internal& href=&/question/&&你是如何将词汇量提升到 2 万,甚至 3 万的? - 英语&/a&
2、算法烂熟, 算法学好的标准是: &a href=&http://zh.lucida.me/blog/on-learning-algorithms/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&我的算法学习之路&i class=&icon-external&&&/i&&/a&
刷一下leetcode ,再内推一下都能过来。 &br&&br&&a class=&internal& href=&/question/&&美国最新创造了500万个就业岗位,但超过一半(250万个)跟计算机有关,这是什么原因? - 硅谷就业&/a&
题主说的是事实。 我去过硅谷约二百家公司左右,只看到过两家公司用windows和.net ,就是微软硅谷分公司 Microsoft SVC,跟google在同一个镇里。 还有一个是 可能是工作性质需要。 Google工程师用得最多的是Vim. 欲知道硅谷所有的企业用的都…
来自子话题:
&p&在网上看到的一个研究成果:C语言是女的…原因如下:&/p&&p&1.无论你让她干什么,她绝对不可能自己找到方法;&/p&&p&2.总是用复杂的方法解决简单的问题;&/p&&p&3.不可能自主认识到本身错误;&/p&&p&4.浪费时间是十分正常的事情;&/p&&p&5.无论跟她说什么,都得用她能理解的方式做充分说明;&/p&&p&6.只要你有一点错,她一定可以挑出来;&/p&&p&7.反正,是你的错&/p&
在网上看到的一个研究成果:C语言是女的…原因如下:1.无论你让她干什么,她绝对不可能自己找到方法;2.总是用复杂的方法解决简单的问题;3.不可能自主认识到本身错误;4.浪费时间是十分正常的事情;5.无论跟她说什么,都得用她能理解的方式做充分说明;6.…
来自子话题:
可能是我見識少,不管我從來沒見過大學裏是靠編程語言來分方向的。
可能是我見識少,不管我從來沒見過大學裏是靠編程語言來分方向的。
来自子话题:
Mathematica本身就是一个大萌物,它可以很方便的做许多事情:创意,音乐,游戏,视觉等,是居家生活找乐子的必备利器啊。下面给出一些链接,你可以自己去看:&br&1,这个是清华大学一位同学写的关于Mma的博客:&br&&a href=&/new/van_der_kommu& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/new/van_de&/span&&span class=&invisible&&r_kommu&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&2,这是另一位同学写的关于音乐方面的文章,多用Mma来实现&br&&a href=&/molly_kang& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/molly_kang&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&br&3,这是我写的关于Mma的文章,大多玩物丧志:&br&&a href=&/archives/tag/mathematica-2& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/archiv&/span&&span class=&invisible&&es/tag/mathematica-2&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&4,这是一个专门玩Mma的博客,到了丧心病狂的地步:&br&&a href=&/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&5,这是几篇stackexchange上的神作,请楼主自行阅之:&br&&a href=&/questions/2334/how-to-create-word-clouds& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&/questions/2334/how-to-create-word-clouds&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&a href=&/questions/11350/xkcd-style-graphs& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&/questions/11350/xkcd-style-graphs&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&a href=&/questions/3345/how-to-make-an-inkblot& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&/questions/3345/how-to-make-an-inkblot&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&a href=&/questions/8479058/how-do-i-find-waldo-with-mathematica& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/quest&/span&&span class=&invisible&&ions/8479058/how-do-i-find-waldo-with-mathematica&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&。。。。。。&br&6,wolfram blog有众多搞怪文章:&br&&a href=&/& 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&&br&7,大杀器之wolfram旗下的demonstration,8000多款用Mathematica写的玩意,楼主可以找你自己感兴趣的那一部分:&br&&a href=&/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&8,这里还有一篇Mathematica资源合集,里面藏宝良多:&br&&a href=&/questions/18/where-can-i-find-examples-of-good-mathematica-programming-practice& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&/questions/18/where-can-i-find-examples-of-good-mathematica-programming-practice&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
Mathematica本身就是一个大萌物,它可以很方便的做许多事情:创意,音乐,游戏,视觉等,是居家生活找乐子的必备利器啊。下面给出一些链接,你可以自己去看:1,这个是清华大学一位同学写的关于Mma的博客:2,这是另一位同学写的关于音…
来自子话题:
如何规则技术生涯,补一个回答:&a href=&/question//answer/& class=&internal&&做安卓一段时间,想往多方面深入发展,往IOS开发好还是企业级java web开发好,现在有java基? - 知乎用户的回答&/a&&br&&br&&br&别逗了&br&&br&真的是 40w 的话,也不仅仅是 Java 的知识和经验的价值,而是这个人的综合能力的价值。&br&你所看到的 40w 年薪的 Java 从业者,使用 Java 只是 很表面的一个特征。&br&&br&以你的例子,若换个角度,是不是又要问,搞并发的,如何达到 40w 年薪?&br&&br&所以更多的价值在于,如何构建众多游戏服务端整个体系的能力。&br&&br&不要以编程语言来定方向&br&不要以编程语言来定方向&br&不要以编程语言来定方向&br&&br&不要以编程语言来思考问题&br&不要以编程语言来思考问题&br&不要以编程语言来思考问题&br&&br&这是因素单一化思维,很有问题。对一个公司对一个企业说了,你创造也多少价值的是衡量回报的指标。你对公司企业的商业模式起多大效用也是一个指标。&br&&br&若你没转变过来,还持着“我也是搞Java的”这样不全面思维,无戏&br&&br&另外,你有考虑过:什么叫“Java后台开发” ?&br&所以,脱离业务谈编程语言的应用,是扯谈
如何规则技术生涯,补一个回答:别逗了真的是 40w 的话,也不仅仅是 Java 的知识和经验的价值,而是这个人的综合能力的价值。你所看到的 40w 年…
来自子话题:
我觉得这个问题必须要认真回答,中国的Java圈子已经足够乌烟瘴气了,不需要多一个人来添乱。&br&&br&以防改题,先摘录原题:&br&===============题主的分割线===============&br&注意:不是问的 “怎么样才算是精通 Java?”,是&b&&u&体验&/u&&/b&,&b&&u&体验&/u&&/b&啊各位!&br&-----------------------------------------------------------------&br&Never trust a programmer who says he knows Java&br&===============/题主的分割线===============&br&&br&首先我觉得题主思考逻辑有问题。如果不搞清楚怎样才算精通Java,那你想知道的是什么人的体验?如果按照问题&a href=&/question/& class=&internal&&怎么样才算精通Java? - 编程&/a&中 &a data-hash=&acaef& href=&///people/acaef& class=&member_mention& data-editable=&true& data-title=&@watchmen& data-tip=&p$b$acaef&&@watchmen&/a& 说的,相信能做到的人不在少数,比如说我(不需要在这里讨论我的资质问题,跟你没关系,我不是来应聘的)。&br&&br&如果说我的体验,我觉得并没有什么特别的,无非是写程序的时候比不那么“精通”的人快一点,查bug的时候迅速一点,别人需要上网搜索的东西我可以马上说出来,因为我都搜索过好多次,仅此而已。&br&&br&可是,这真的是精通吗?我觉得还差得远。我认识一个人,他是我之前就职的公司的CTO,JRockit的主要编写者之一,在他面前大多数人,包括我,都只是个孩纸。&br&&br&通常你不需要和他争论技术问题,他说得出口的,就是正确的。技术问题包括系统架构、算法设计、某行代码在JIT之后在什么硬件架构上大概跑几个纳秒。在他的眼里,任何一段Java程序他可以告诉你大致花费了多少个CPU cycle,似乎从Java代码到机器码(不是JVM的byte code)的中间过程都被本能地跳跃了。他可能是我认识的最精通Java的人,可我不是他,无法知道他的体验。但是,从跟他的交流中我可以很明确地感受到两个字:自信。&br&&br&可能这也是那一类“精通X是什么体验”问题的共同答案。
我觉得这个问题必须要认真回答,中国的Java圈子已经足够乌烟瘴气了,不需要多一个人来添乱。以防改题,先摘录原题:===============题主的分割线===============注意:不是问的 “怎么样才算是精通 Java?”,是体验,体验啊各位!------------------------…
来自子话题:
大概在另外一拨人的眼里,成为计算机学科的高手应该是把数学学好。你们这群人都只是低端的码农,只有把高等数学学好,精通概率、统计、随机过程、抽象代数,熟练掌握各种建模方法,才是计算机科学的王道。再结合各种领域知识,年薪百万轻轻松松。弄点高级算法几十亿被收购瞬间财富自由。&br&&br&技术只是技术本身,计算机发展了这么多年,无数新技术层出不穷。每个人都靠着自己的专长在这个领域发家致富。有的人是因为懂客户需求,有的是擅长做设计,有的人擅长把成熟的技术应用到传统的学科之中。汇编只是这茫茫技术中的一种而已。&br&&br&本质上来讲,高手的本身并不是掌握了什么技术,而是能够帮助别人解决问题。一种技术只是解决问题的一种方法,而不是唯一的方法。如果解决这些问题需要精通汇编,那么你一定需要掌握。如果想解决的问题并不需要了解汇编知识,你大可以不掌握。汇编知识与很多其他知识在知识本身这个层次上并无优异之分,只不过在计算机领域更底层一些。&br&&br&最后,计算机的基础知识,比如操作系统、数据库、计算机网络、编译原理,该了解的肯定要了解,该入门的要入门。&br&至于是否要精通,如果你发现在你成长的过程中遇到的瓶颈,是对于底层的了解,那你就应该精通。
大概在另外一拨人的眼里,成为计算机学科的高手应该是把数学学好。你们这群人都只是低端的码农,只有把高等数学学好,精通概率、统计、随机过程、抽象代数,熟练掌握各种建模方法,才是计算机科学的王道。再结合各种领域知识,年薪百万轻轻松松。弄点高级算…
来自子话题:
&b&可读性。&/b&&br&比如你设计一个邀请朋友参加聚会的方法,除了指定姓名外,还可选择是否提前预约:&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&inviteFriend&/span&&span class=&o&&(&/span&&span class=&n&&String&/span& &span class=&n&&name&/span&&span class=&o&&,&/span& &span class=&kt&&boolean&/span& &span class=&n&&appointment&/span&&span class=&o&&);&/span&
&/code&&/pre&&/div&然后别人调用起来是这样的:&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&n&&somebody&/span&&span class=&o&&.&/span&&span class=&na&&inviteFriend&/span&&span class=&o&&(&/span&&span class=&s&&&LiLei&&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&);&/span&
&/code&&/pre&&/div&问题就来了,写程序时即便不会搞错,等到阅读这段代码的时候,这个布尔参数的理解就非常有歧义,除了「是否预约」之外,还可能理解为「是否贵宾待遇」,「是否接送」,「是否发请帖」……。如果不看文档中参数的描述,根本就无法理解正确。&br&所以为什么有人提倡不建议使用布尔参数,就是因为可读性麻烦,一种解决方案是用枚举:&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&inviteFriend&/span&&span class=&o&&(&/span&&span class=&n&&String&/span& &span class=&n&&name&/span&&span class=&o&&,&/span& &span class=&n&&Appointment&/span& &span class=&n&&appointment&/span&&span class=&o&&);&/span&
&/code&&/pre&&/div&但引入了新的类型,似乎更麻烦了……来看看 Objective C 是怎样的:&br&&div class=&highlight&&&pre&&code class=&language-objective-c&&&span class=&p&&-(&/span&&span class=&kt&&void&/span&&span class=&p&&)&/span& &span class=&nf&&inviteFriend:&/span&&span class=&p&&(&/span&&span class=&bp&&NSString&/span& &span class=&o&&*&/span&&span class=&p&&)&/span&&span class=&nv&&name&/span& &span class=&nf&&appointment:&/span&&span class=&p&&(&/span&&span class=&kt&&BOOL&/span&&span class=&p&&)&/span&&span class=&nv&&appoint&/span&&span class=&p&&;&/span&
&/code&&/pre&&/div&看起来挺麻烦的,但调用起来呢?&br&&div class=&highlight&&&pre&&code class=&language-objective-c&&&span class=&p&&[&/span&&span class=&n&&someBody&/span& &span class=&nl&&inviteFriend&/span&&span class=&p&&:&/span&&span class=&s&&@&LiLei&&/span& &span class=&nl&&appointment&/span&&span class=&p&&:&/span&&span class=&nb&&YES&/span&&span class=&p&&];&/span&
&/code&&/pre&&/div&看起来是不是既方便,又一目了然?&br&&br&------------&br&&br&更新回答,也是对&a data-hash=&a11f965c8be3a507e9918& href=&///people/a11f965c8be3a507e9918& class=&member_mention& data-editable=&true& data-title=&@朱众& data-tip=&p$b$a11f965c8be3a507e9918&&@朱众&/a& 方案的回应。&br&如果看到这样一个方法:&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&n&&dongxin&/span&&span class=&o&&.&/span&&span class=&na&&send&/span&&span class=&o&&(&/span&&span class=&s&&&iPhone 5s&&/span&&span class=&o&&,&/span& &span class=&n&&zhuzhong&/span&&span class=&o&&,&/span& &span class=&mi&&2&/span&&span class=&o&&,&/span& &span class=&s&&&顺丰快递&&/span&&span class=&o&&,&/span& &span class=&mi&&20&/span&&span class=&o&&,&/span& &span class=&mi&&20&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&,&/span& &span class=&kc&&false&/span&&span class=&o&&,&/span& &span class=&kc&&true&/span&&span class=&o&&)&/span&
&/code&&/pre&&/div&不看文档的话,前面估计还能猜出来是 dongxin 给 zhuzhong 用顺丰发了两部 iPhone 5s,但后面那些玩意呢?&br&而 Objective C 的代码:&br&&div class=&highlight&&&pre&&code class=&language-objective-c&&&span class=&p&&[&/span&&span class=&n&&dongxin&/span& &span class=&nl&&send&/span&&span class=&p&&:&/span&&span class=&s&&@&iPhone 5s&&/span& &span class=&nl&&toContacts&/span&&span class=&p&&:&/span&&span class=&n&&zhuzhong&/span&&span class=&p&&,&/span&
&span class=&nl&&quantity&/span&&span class=&p&&:&/span&&span class=&mi&&2&/span&&span class=&p&&,&/span&
&span class=&nl&&expressCompany&/span&&span class=&p&&:&/span&&span class=&s&&@&顺丰快递&&/span&&span class=&p&&,&/span&
&span class=&nl&&insureValue&/span&&span class=&p&&:&/span&&span class=&mi&&20&/span&&span class=&p&&,&/span&
&span class=&nl&&freight&/span&&span class=&p&&:&/span&&span class=&mi&&20&/span&&span class=&p&&,&/span&
&span class=&nl&&atDestination&/span&&span class=&p&&:&/span&&span class=&nb&&YES&/span&&span class=&p&&,&/span&
&span class=&nl&&shippingNotice&/span&&span class=&p&&:&/span&&span class=&nb&&NO&/span&&span class=&p&&,&/span&
&span class=&nl&&arrivalNotice&/span&&span class=&p&&:&/span&&span class=&nb&&YES&/span&&span class=&p&&];&/span&
&/code&&/pre&&/div&你很容易就能知道,这是在说,dongxin 给 zhuzhong 用顺丰快递发了两部 iPhone 5s,并且保价费用20,运费20到付,没有发货通知,最后要求收到手机时打个招呼(自动略去英文水平吧)。&br&很显然这个方法非常长……不过个人认为,在编写程序基本不受影响(有完善的自动补全)的前提下,可读性应该尽可能的好。&br&在这样的场合,分拆方法基本上行不通,太复杂了。至于为什么不使用命名参数,因为和文档一样,都不是强制性的要求,而且命名参数在代码编写时恐怕不是很方便,可能会被偷懒的人自动略过。而 Objective C 是真正把可读性要求写进了语法里,而不是文档里。
可读性。比如你设计一个邀请朋友参加聚会的方法,除了指定姓名外,还可选择是否提前预约:public void inviteFriend(String name, boolean appointment);
然后别人调用起来是这样的:somebody.inviteFriend("LiLei", true);问题就来了,写程序时即便不会搞…
来自子话题:
说说我的经历吧&br&&br&我最早是爬虾米,想看看虾米听的比较多的歌是哪些,就爬了虾米全站的歌曲播放数,做了个统计&br&&a class=& wrap external& href=&http://blog.csdn.net/cwyalpha/article/details/& target=&_blank& rel=&nofollow noreferrer&&Python爬虫学习记录(1)——Xiami全站播放数&i class=&icon-external&&&/i&&/a&&br&统计过豆瓣动漫的评分分布&br&&a class=& wrap external& href=&/data/44279& target=&_blank& rel=&nofollow noreferrer&&豆瓣2100部动漫页面的网页源码(包括评分,导演,类型,简介等信息,附抓取代码)&i class=&icon-external&&&/i&&/a&&br&爬百度歌词,做LDA&br&&a href=&http://blog.csdn.net/cwyalpha/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python爬虫学习记录(2)——LDA处理歌词&i class=&icon-external&&&/i&&/a&&br&&a class=& wrap external& href=&/data/43972& target=&_blank& rel=&nofollow noreferrer&&百度音乐带标签,作曲,演唱者,类别的歌词数据&i class=&icon-external&&&/i&&/a&&br&爬足彩网站所有盘口,找赢钱算法&br&&a href=&http://blog.csdn.net/cwyalpha/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python爬虫学习记录(4)——传说中的足彩倍投法。。好像也不是那么靠谱&i class=&icon-external&&&/i&&/a&&br&&a class=& wrap external& href=&/data/44171& target=&_blank& rel=&nofollow noreferrer&&全球所有足球比赛比分数据以及足彩各公司盘口&i class=&icon-external&&&/i&&/a&&br&初期不需要登录的网站比较简单,掌握http get post和urllib怎么模拟,掌握lxml、BeautifulSoup等parser库就可以了,多用firefox的firebug或者chrome的调试工具看浏览器是怎么发包的。上面都是不需要登录不需要下文件就可以做到的。&br&&br&之后你可能想要下载文件(图片,音乐,视频等),这个可以试试爬虾米歌曲&br&&a class=& wrap external& href=&http://blog.csdn.net/cwyalpha/article/details/& target=&_blank& rel=&nofollow noreferrer&&Python爬虫学习记录(3)——用Python获取虾米加心歌曲,并获取MP3下载地址&i class=&icon-external&&&/i&&/a&&br&爬wallbase壁纸&br&最近做了个avfun的视频排行,每天定时抓几次acfun,然后下载视频到服务器缓存。&br&&a href=&http://blog.csdn.net/cwyalpha/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python爬虫学习记录(5)——python mongodb + 爬虫 + web.py 的acfun视频排行榜&i class=&icon-external&&&/i&&/a&&br&202.120.39.152:8888&br&&br&然后你可能需要模拟用户登录,爬取需要登录的网站(比如人人,新浪微博)。如果只是小规模爬虫建议用浏览器cookie模拟登录&br&&a href=&http://blog.csdn.net/cwyalpha/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python爬虫学习记录(0)——Python 爬虫抓站 记录(虾米,百度,豆瓣,新浪微博)&i class=&icon-external&&&/i&&/a&&br&&br&===========================&br&想说的是,不要为了学而学,可以看看有什么以前觉着很麻烦的操作,是不是能用爬虫简化。爬下来的数据是不是有排序筛选分析的价值。&br&&br&,在csdn上更新了之前失效的百度空间链接,可能有些代码因为网站的改版不适用了,这里主要还是提供一些应用的想法。
说说我的经历吧我最早是爬虾米,想看看虾米听的比较多的歌是哪些,就爬了虾米全站的歌曲播放数,做了个统计统计过豆瓣动漫的评分分布…
来自子话题:
程序员需要精通六门语言。参见: &a href=&http://www.catb.org/esr/faqs/hacker-howto.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&catb.org/esr/faqs/hacke&/span&&span class=&invisible&&r-howto.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&ul&&li&Python, C, Perl, LISP, Java, HTML (后来补注为符合XHTML规范的HTML)&br&&/li&&/ul&当然,除了以上六种语言,还有一种语言必须掌握,如果不掌握,以上掌握得再多都没用,那就是:&br&&ul&&li&English&/li&&/ul&
程序员需要精通六门语言。参见: Python, C, Perl, LISP, Java, HTML (后来补注为符合XHTML规范的HTML)当然,除了以上六种语言,还有一种语言必须掌握,如果不掌握,以上掌握得再多都没用,那就是:English
来自子话题:
为什么要反驳呢?这难道不是事实么。&br&&br&&a class=&member_mention& href=&///people/ecc0ec035f& data-hash=&ecc0ec035f& data-tip=&p$b$ecc0ec035f&&@vczh&/a& 难道你觉得 Eclipse 这种 Java IDE 跟 Visual Studio 这种 C++/C# 在运行效率上是一个级别的么。用 Java 写的这些 IDE 运行效率不如 VS 这种原生语言 IDE 是简单明确的事实,没什么可洗地的。&br&&br&但,运行效率低只是代价而已,这个代价换来的是&b&开发效率的提升&/b&。有什么不妥吗?&br&&br&Java 能流行的重要原因,自然是因为,并非所有应用都需要极限压榨性能,在很多应用中,开发效率的重要性大于运行效率,所以 Java 得以流行。在性能至关重要的场合,例如写游戏用 C++ 就并无不妥,你看 Windows 下大型游戏仍然都是用的 C++,你看 Android 里面很多游戏也仍然是用的 NDK ,用 C++ 开发的,而其他的普通应用更多用 Java。&br&&br&大多数编程语言无非是在运行效率与开发效率之间进行权衡,这种权衡只是一种选择,没有谁优谁劣,谁对谁错之分。
为什么要反驳呢?这难道不是事实么。 难道你觉得 Eclipse 这种 Java IDE 跟 Visual Studio 这种 C++/C# 在运行效率上是一个级别的么。用 Java 写的这些 IDE 运行效率不如 VS 这种原生语言 IDE 是简单明确的事实,没什么可洗地的。但,运行效率低只是代…
来知乎,参与讨论

我要回帖

更多关于 php 变量未定义 的文章

 

随机推荐