摘要:
简历和自我介绍上经常能够读到“精通Java”这样的话,有人和我说,精通Java的人太多了,精通Java已经不能算亮点、不能给自己加分了。可是事实真是这样吗?对于语言的学习,我有一种观点,一是纵向,即要选择一门自己认为合适的语言学到有相当的深度。二在于横向,即要学习不同类型、不同历史和不同门派的语言:既有底层的语言,也有高级语言;接触一些动态语言、函数式语言;了解一些不同语言的编程范型和编程方式,比如基于原型编程、面向切面编程、命令式编程等等;最好能关注一门年纪尚浅,甚至小众的语言,了解一门语言的发展。横向类比能够带来对一门语言的不同认识,但是,有广度而没有深度的专家是可笑的,深入地学习一门语言 阅读全文
摘要:
YQL,(Yahoo! Query Language)是一种支持对互联网上的数据进行查询、过滤、连接、类似SQL语法的简单语言。用YQL官方的话:有了YQL,开发人员只需要使用一种 简单的查询语言即可访问和操控互联网上丰富的数据,而不再需要反复学习使用各种各样的API。一种代表作数据库发展未来的创意,数据库应该能够不仅仅代表具体的表和空间,变成广义的数据库,延展到整个互联网,才是一个最庞大的数据库。火丁大盗给了个简单的例子:123select * from htmlwhere url='http://www.dangdang.com/'and xpath='//ul[@ 阅读全文
摘要:
JDBJDB是基于文本和命令行的调试工具,Jikes在JDB的基础上提供了GUI。熟悉JDB还是有价值的,很多情况下需要我们在命令行下完成简单的debug问题定位。123jdb -classpath bin com.xx.Examplejdb -connect com.sun.jdi.SocketAttach:hostname=myhost,port=8000jdb -connect "com.sun.jdi.CommandLineLaunch:main=Hello 1 2 3"我们可能更熟悉使用下面这样的方式来进行调试,但本质上就是在使用JDB:1-agentlib:jd 阅读全文
摘要:
应用程序并行计算遇到的问题 当硬件处理能力不能按摩尔定律垂直发展的时候,选择了水平发展。多核处理器已广泛应用,未来处理器的核心数将进一步发布,甚至达到上百上千的数量。而现在 很多的应用程序在运行在多核心的处理器上并不能得到很好的性能提升,因为应用程序的并发处理能力不强,不能够合理有效地的利用计算资源。线性的计算只能利 用n分之一的计算支援。 要提高应用程序在多核处理器上的执行效率,只能想办法提高应用程序的本身的并行能力。常规的做法就是使用多线程,让更多的任务同时处理,或者让一部分操作 异步执行,这种简单的多线程处理方式在处理器核心数比较少的情况下能够有效地利用处理资源,因为在处理器核心比较少的 阅读全文
摘要:
首先,明确两个概念:数据结构与数据存储结构!数据结构:是指相互之间存在一种或多种特定关系的数据元素的 集合。听起来是不是很抽象,简单理解:数据结构就是描述对象间逻辑关系的学科。比如:队列就是一种先进先出的逻辑结构,栈是一种先进后出的逻辑结构,家谱 是一种树形的逻辑结构!(初学数据结构的时候很不理解为什么有“栈”这个东西;队列很容易理解---无论购物就餐都需要排队;栈可以认为就是个栈道--- 只允许一个人通过的小道,而且只能从一端进入,然后再从这端返回,比如你推了个箱子进去啦,第二个人也推个箱子进去,此时只能等后进来的这个人拉着箱子出 去后,你才能退出。)数据存储结构:它是计算机的一个概念,简单 阅读全文