Java本身是一种设计的非常简单_青春ing的博客-程序员宅基地

  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,更体会到一通百通的道理。

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

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012402926/article/details/52088261

智能推荐

关于Cookie中的Path和domain -程序员宅基地

Path设置不对或为设置很容易发生cookie无法使用我就遇到了这种情况。关于设置Path: Path – 路径。指定与cookie关联的WEB页。值可以是一个目录,或者是一个路径。如果 http://192.168.180.13/test/index.html 建立了一个cookie,那么在http://www.5bay.cn/test/目录里的所有页面,以及该目录下面任

r、s sm2签名值_【中国科学报】SM2与SM9数字签名正式成为国际标准-程序员宅基地

【中国科学报】SM2与SM9数字签名正式成为国际标准2017-11-13中国科学报 沈春蕾【字体:大 中 小】语音播报近日,第55次ISO/IEC信息安全分技术委员会(SC27)会议在德国柏林召开。我国SM2与SM9数字签名算法一致通过为国际标准,正式进入标准发布阶段,这也是本次SC27会议上密码与安全机制工作组通过的唯一进入发布阶段的标准项目。这两个数字签名机制为ISO/IEC 14888-3/..._签名值r s

汇编逻辑运算指令_汇编取反指令_小萌新上大分的博客-程序员宅基地

在系统功能调用中,你键盘输入一个5,实际收到的是它的ASCII码35H。(4)用Test指令测试DL寄存器位3,位6是否同时为0,若是,将0送DL,否则1送DH。6:设AX=0001H,下列指令执行后,能使标志位ZF=1的指令有(ABCD)1设AL=0AH,下列指令执行后,能使AL=05H的指令是()3:下列逻辑运算指令中,不允许使用立即数为操作数的指令是()这条指令相当于,已知某数的补码,求他负数的补码。5:若将AH的内容的第四位分离,则应选用()用处,对某些位取反,对应的位和1异或就可以。_汇编取反指令

WebSocket长链接在线网页测试_ws测试地址-程序员宅基地

WebSocket长链接服务按照服务端的要求,给了相关ws://xxxx 的地址后,有时候我们可以先用工具测试一下,连接服务,然后发送心跳包,测试是否走的通,最后在项目里面写。不然写了半天可能有问题一时半会还不知道哪里的问题。这里给一个在线网页测试websocket的地址:http://coolaf.com/tool/chattest 打开后,输入完地址,点击连接,下面的空白区域..._ws测试地址

steam()的应用_steam()在某个数组中-程序员宅基地

源码介绍支持顺序和并行聚合的元素序列操作。下面的示例演示了使用int sum=widgets.stream().filter(w->w.getColor()=红色).mapToInt(w->w.getWeight()).sum();}Collection.stream()创建顺序流,Collection。parallelStream()创建并行流;一:构造..._steam()在某个数组中

安卓子线程更新UI不闪退的问题_android 子线程更新ui为啥不会崩溃-程序员宅基地

子线程不能更新UI已经是一个常识了,如果两个线程同时更新UI,可能对同一个控件操作造成混乱,而更新UI涉及到整棵View树的遍历,加锁又影响效率,索性在ViewRootIlmpl类中设置一个checkThread()方法,检测当前线程和创建View的线程是否是同一个,如果不是直接Throw Exception,这就是不能在子线程更新UI的原理。但是实测发现在某些情况下可以在子线程中更新UI。一..._android 子线程更新ui为啥不会崩溃

随便推点

org.apache.ibatis.binding.BindingException: Parameter 'List' not found. Available parameters are [l-程序员宅基地

springmvc +mybatis 批量插入时报一下问题代码如下xml配置如下:mybatis 文档描述的是List 将会被转为Map, 这里我转入collection=“List” 将被转换成 Map 文中我把list 写成了List收集了两种解决方案:方案一:collection="List" 改写为 colle

Android中子线程真的不能更新UI吗?-程序员宅基地

Android的UI访问是没有加锁的,这样在多个线程访问UI是不安全的。所以Android中规定只能在UI线程中访问UI。但是有没有极端的情况?使得我们在子线程中访问UI也可以使程序跑起来呢?接下来我们用一个例子去证实一下。新建一个工程,activity_main.xml布局如下所示:xml version="1.0" encoding="utf-8"?>Relati

php72安装mysql_CentOS 7 安装MySQL+PHP环境_Jason不跪的博客-程序员宅基地

环境:Apache 2.2.27MySQL 5.1.72libiconv 1.14##Apache请自行使用编译安装.内容从我自己的word复制过来的,wold里面是好的,有的地方复制过来就重叠了,看的时候注意下1 解压mysqltar zxvfmysql-5.1.72.tar.gzcd mysql-5.1.72/[root@linuxidc support-files]# useradd-M ...

linux电脑主机型号_用什么命令查看主机型号 linux永久修改主机名-程序员宅基地

CMD输入什么命令查看主机编号。dxdia和systeminfo只能查看主机型号。不是我要的?首先,单击开始-&gt运行以打开对话框,输入CMD并按enter键。其次,在命令提示符 系统信息.txt按Enter键。此时,将自动创建磁盘C的根目录系统信息.txt文件,其中包含主机名、操作系统详细信息、产品ID、处理器型号、内存、BIOS版本、系统目录路径、修补程序安装和网卡连接。第三步:进入..._adb shell 查看主版型号

Form中实现Checkbox全选反选-程序员宅基地

go_block('BLOCKNAME'); --跳到目的数据块first_record; --从第一条记录开始循环LOOP if :BLOCK116.check_all = 'Y' then :BLOCKNAME.check_box := 'Y'; --将指定行的复选框设置为选中 else :BLOCKNAME.check_box := 'N'; en

Android为什么能在子线程中更新UI_为什么有时候android里面可以在子线程可以更新ui-程序员宅基地

Android为什么能在子线程中更新UI刚学习Android开发的时候经常有需要在子线程里更新UI的操作,总是会遇到报错:Only the original thread that created a view hierarchy can touch its views.“只有创建视图层次结构的原始线程才能触摸其视图。”因为大部分的View创建都是在UI线程(主线程),所以我们都有一个共识:..._为什么有时候android里面可以在子线程可以更新ui