如何学java

news/2024/7/20 15:20:31 标签: java, shell, 内存管理
Java本身是一种设计的非常简单,非常精巧的语言,所以Java背后的原理也很简单,归结起来就是两点: 

1、JVM的内存管理 

理解了这一点,所有和对象相关的问题统统都能解决 

2、JVM Class Loader 

理解了这一点,所有和Java相关的配置问题,包括各种App Server的配置,应用的发布问题统统都能解决 

就像张无忌学太极剑,本质就是一圈一圈的画圆,你要是懂得了太极剑的本质,那么太极剑就那么一招而已,本身是很容易学的,只是难度在于你要能够举一反三,化一式剑意为无穷无尽的剑招,这就需要一点悟性和不断的实践了;反过来说,如果学剑不学本质,光学剑招,你就是学会了1万招,碰到了第1万零1招,还是不会招架,败下阵来。 

技术世界本来就是丰富多彩,企图统一标准,实际上也做不到,但是世界本质其实并不复杂。学习技术,特别是某种具体的软件工具的时候,应该学会迅速把握事物的本质,不要过多搅缠细节。软件工具应该为我所用,而不是我被工具所驾驭。当你具备了对整个J2EE架构的设计和实施的能力,你还会被具体的工具束缚吗?哪种工具适合你的架构,你就用什么,哪种不适合你,你就抛弃它,软件皆臣服于你的脚下,而不是你被什么软件牵着鼻子走,到了这种程度,你难道还害怕学习什么新的软件? 

我自己也在一直朝着这个方向努力,在我心中,设计软件,架构是第一位的,采用什么技术要为架构服务。如果我发现什么技术对我的架构来说很重要,那么我会花时间去学习,去钻研,就像我花时间去钻研ORM一样,如果我觉得什么技术对我的架构来说没有用,即使技术再火爆,我也不去碰它。 

总之要学会抓住本质,驾驭技术,而不是被技术所驾驭。当你掌握了本质原理,其实学什么都很快,毕竟都是相通的,我先看JDO,后看Hibernate,其实两者就很类似,所以学得很快,以后如果有工作需要,要我学习别的ORM,那我也不会觉得有什么困难的,一样手到拿来。 

更有说服力的是Unix类的操作系统,那就更相似了,只要抓住了Unix最本质的几点,例如shell命令和编程,文件系统结构和配置,系统启动原理和过程,所有的Unix都是无师自通的。我自己会用Linux,FreeBSD,SCO Unix, Solaris,HP-UX 和 AIX等6种Unix,更体会到一通百通的道理。 

拿刚出了光明顶密道的张无忌来说吧,(我很喜欢张无忌这个角色),他也没有练过什么武功,但是他已经把天下武学之本质:九阳神功 + 乾坤大挪移学会了,所以不管什么功夫,他都是看一遍就会,马上为我所用,看了空性用了一遍龙爪手,就会用龙爪手来破对方;和昆仑派打了一架,就会用昆仑剑法和灭绝师太过招;七伤拳更是无师自通;太极拳也是看一遍就会。 

总之,学习方法还是很重要,别被五花八门的技术给搞不清学习方向了。 

-------------

更多的教程,培训视频请访问:

http://www.cnblogs.com/zengmiaogen/p/7083694.html



转载于:https://www.cnblogs.com/zengmiaogen/archive/2011/07/07/2100453.html


http://www.niftyadmin.cn/n/1028501.html

相关文章

java单链表 递归求平均值_递归实现单链表的各种基本操作

1 #include2 #include3 using namespacestd;45 #define OK 16 #define ERROR 07 typedef intStatus;89 typedef structLNode10 {11 int data; //结点的数据域12 struct LNode *next; //结点的指针域13 }LNode, *LinkList; //LinkList为指向结构体LNode的指针类型1415 void crea…

C++核心准则C.66:保证移动操作不会抛出异常

C.66: Make move operations noexcept C.66:保证移动操作不会抛出异常 Reason(原因) A throwing move violates most peoples reasonably assumptions. A non-throwing move will be used more efficiently by standard-library and language faciliti…

自己写的ArrayList

package com.zc.hzc; public class MyAList { private int index;//数组长度 private Object[] ob;//数组 public MyAList(){ obnew Object[10];//初始化数组长度为10 } public MyAList(int l){ obnew Object[l];//有参数的构造函数 } /** * 扩充数组,翻一倍 */ pub…

Erroy在java的_Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符...

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException:### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符### Cause: java.sql…

C++核心准则C.67:多态类应该抑制拷贝

C.67: A polymorphic class should suppress copying(C.67:多态类应该抑制拷贝) Reason(原因) A polymorphic class is a class that defines or inherits at least one virtual function. It is likely that it will be used a…

Java编程思想(第4版)(评注版)

传世经典书丛 Java编程思想(第4版)(评注版) (美)埃克尔(Eckel, B.)著刘中兵评注ISBN 978-7-121-13521-72011年6月出版定 价:108.00元16开756页内 容 简 介本书作者拥有…

java中的隔空字符_中国“最大恒星级黑洞”研究遭质疑!Nature上演隔空对话,它究竟有多大?...

早在 18 世纪,人类就意识到了黑洞的存在。自此以后,人类对“神秘”黑洞的探索从未停止。著名物理学家斯蒂芬霍金(Stephen Hawking)在其最后一部著作《十问:霍金沉思录》(Brief Answers to the Big Questions)中写道,“事实有时候比…

C++核心准则C.80:如果明确希望使用默认语义,使用=default

C.80: Use default if you have to be explicit about using the default semantics C.80:如果明确希望使用默认语义,使用default Reason(原因) The compiler is more likely to get the default semantics right and you cannot implement these functions bette…