不知道你的Java学到什么程度了,不要把它想得太难,但它的确也不容易。很多在从事编程的人都不敢说自己的Java学得很透彻,知识程序设计得多了,自己手头也积累了不少模板。
我姑且把楼主所说的透彻理解为学Java如何抓住重点。个人觉得重点就是三大框架。在J2EE中最常见的框架就是Spring。这个框架注重对接口编程而不是对类编程,Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务–如果你需要–还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IOC容器集成的强大而灵活的MVC Web框架。
还有Struts框架,它是基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的,开发人员利用其进行开发时不再需要使用己编码实现全套MVC模式,提高效率节省时间,所以说Struts是一个非常不错的应用框架。
最后是Hibernate,它是一个开放源代码的对象关系映射框架,对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它具备强大的兼容性,既可在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。最重要的一点,Hibernate可以在应用EJB的J2EE架构中取代CMP,增强数据的稳定性。
如果你的基础没问题,在三大框架下如何灵活利用程序语言也就是重点了。至于数据库、SQL都应该没什么问题吧。
如果说,第二步是增加你的知识广度,那么造轮子就是增加你的技术深度,通过造轮子,才能真正把握技术的来龙去脉。
**很多人信奉“不去造轮子”,看似性价比很高的一句话,却不知道这句话是有前提的,那就是“你得知道轮子的内部结构”,否则就是自我麻痹。**接下来需要选择某一个或几个方面深入研究下去,构建自己的核心竞争力。
比如,消息队列在高并发分布式系统中一个及其重要的组件,起到削峰填谷、系统解耦的作用。我们以消费端如何快速获取数据来看思维是如何一步步深入的:
首先消费端要想及时获取数据,是否需要建立一个长连接?长连接的实现方式如何?
数据是通过push还是pull方式给到消费端,各自有什么弊端?
如果消费失败,可能是哪些原因引起?如果是因为网络原因引起,该如何解决?
这些问题都会在你自己造轮子的过程中暴露出来,从而加深你的理解和技术深度,一个有技术深度的程序员才是有灵魂的。而大厂也是愿意为有趣的灵魂买单的,这个时候看的就不仅仅是工资水平,更多的是在于晋升和发展前景的广阔性。
在Java语言上有所建树的开发者,都经历过以上3个层次。但可惜的是,囿于外界环境和自身设限,**大部分的Java开发者却只停留在了第一个层次中,**在日复一日的体力劳动中丧失了对技术细节的深入探讨,也丧失了晋升和薪资谈判中的筹码。
**如何过渡到第二、三个层次?**除了上文谈到的内容,这里我还想给你2个切身的建议:
1、扩宽自己的眼界,学着从全局看待问题,并且勇于挑战别人眼中的难题
**2、持续提升你的学习能力,**虽然有很多人以「在公司学不到东西」为理由离职,但你要知道:公司的目的是盈利。盈利的前提下,公司会尽力培养你,但是更多的时候能力成长还是得靠自己。学习能力弱的人,在哪里都没用。
要有一个正确的认识,和扎实的基础当然如何学会java会有个基础?