了解Java
Java
Java 优点:
- 真正的面相对象
- 完全屏蔽了指针,同时引入了垃圾回收机制
- 虚拟机跨平台,这是Java最大的特点,跨平台
Java 缺点
- 慢
- 难看,swing控件贴近unix界面,unix对中文支持度差
JDK(java development kit)
- 分为三个版本:J2SE,J2EE 以及 J2ME
- JDK包含五个部分:核心API,集成API,用户界面API,发布技术还有java虚拟机(JVM)
Java企业级应用之硬件篇
Java企业级应用之软件篇
企业级应用,一般分为三层:表示层(浏览器),业务逻辑层(中间件),数据持久层
容器:是存放中间层应用的地方,装ejb,servlet,jsp,静态页面的web容器
组件:是一段段可执行的代码,是一个应用程序块,但不是一个完整的应用程序,不可以单独运行
JavaBean是用Java语言编写的可重用的软件组件
组件(咖啡豆)放入容器(咖啡杯)可以冲泡编译成咖啡,供客人们品尝运行!!!这比喻绝了
容器的历程
容器从某种意义上说其实就是一个可运行的Java写的应用程序比如jar,不同的是Java编译后的文件需要用命令行或者脚本启动执行
servet web容器组件
servlet确切的说,就是web容器运行的Java组件
与普通的javaBean不同的是,servlet定义了一系列方法比如init(),destroy()供容器调用,主要目的是为了管理,当一个request请求被web容器截获之后容器分析该请求地址,然后通过一个配置文件中的映射表web.xml调用相应的servlet组件处理后将结果返还给客户端
jsp Java Server Page
web容器组件servlet出现后人们发现几乎没有办法用一个非常直观的方式去编写页面毕竟页面是html语言编写的而让我们用一种流程式的处理方式去逐行教计算机如何写html代码太困难
在这种情况下JSP应运而生,JSP将Java代码嵌入到html代码内部然后存储成.jsp文件,再由计算机编译生成servlet存储起来
所以JSP和servlet对于web容器来说其实是一种东西,虽然它们编写遵循的标准有所不同极大的简化了代码的同时增加了代码的可读性,生产维护成本下降,JSP借鉴了ASP的很多的规范
EJB Enterprise JavaBean
随着时间的推移,人们发现普通的JavaBean似乎并不能满足企业级应用的需要,最典型的就是虚拟机提供的垃圾回收机制也就是GC不够完善,可以优化的余地极大,在这种情况下EJB应运而生,和其它组件一样,EJB不过是遵循了某些规范而已,但是这些规范更多的是为充分利用机器并提高性能为主要目的
EJB容器是为了管理内存中活跃的对象
JDBC
AppServer(应用服务器)
和数据库的连接,这个严格说来是数据库产商需要关心的事
关于AppServer如何与数据库的连接但是也需要开发人员做一点事,因为 AppServer 不知道什么时候组件需要用到数据库
同时也需要开发人员告诉AppServer他们使用的是什么数据库,ip 地址等等
JDBC就是关于这一套东西的规范
Struts
表示层框架,名字来源于飞机的金属框架
对于这一层来说,在JSP的html代码中出现的java语句越少越好
因为java代码越少说明页面处理的业务逻辑越少,也越合理
这是Struts最初的目的。
Spring(诞生于05年)
控制反转 IOC(Inversion of Control)
依赖注入 DI(Dependency Injection)
Hibernate
名字取材自ORM最早的一句玩笑话ORM就是OR-Mapping说用了ORM 之后,程序员就可以去冬眠了,而不需要操心那么多事
这里不得不说的是,该框架由于做得太好,以至于被J2ee招安,成为EJB3.0的一部分替代原有EJB2.X里面关于EntityBean而成为EJB ORM的工具,这里解释一下 ORM//OR-Mapping 中文名对象关系映射
关于 ORM,最高的境界应该是在 java 代码中不出现任何一句的 sql 语句
注意,是不包括 sql 语句
框架不是应用程序只是一堆组件的有序复合,应用时不能脱离于应用服务器单独存在
Ant
脚本工具,用于生成JavaDoc文档
JUnit
测试工具,unix家族可不只有JUnit,还有其它版本
POJO(Plain Old Java Object)
就是传统的Java对象,也就是一个JavaBean,由虚拟机来掌握其生死
好的系统框架不应该在业务逻辑流程中出现new关键字
SOA
面相服务的框架
不说太多,这个属于上上层建筑
不过不妨记住我的一句话,可以帮助理解这个概念
面向什么就是对什么做封装
面向对象就是对对象做封装
面向服务类似,剩下的靠悟性
反射
早期利用反射会降低效率,现在不会了
推荐网站
www.javaeye.com //java 视线论坛,Hibernate 国内的权威
dev2dev.bea.com //bea 的 dev2dev 社区,用 WebLogic 首选的好去处
www-128.ibm.com/developerworks //ibm developer works 社区,ibm 产品的老家
www.jdon.com //j 道,Jboss 国内相对讨论会多一点的地方,有自己的框架
www.matrix.org.cn //matrix,有自己的框架,很清新的论坛
jcp.org //JCP,前面说到过了
sourceforge.net // 开源的东西几乎这里都可以找到,除 java 外还有游戏共享等
saloon.javaranch.com // 我常去,人气不错
www.apache.org // 阿帕奇老家
www.jboss.com //Jboss 和 Hibernate 老家
www.springframework.org //Spring 老家
www.wiki.org // 非常好的百科站点,可惜国内被封,创始人加入了 Eclipse zone
www.google.com // 你要的这里有,不信?输入关键字再按一下那个靠左的白色按钮试试
书籍
《Thinking in Java》 // 实话说,一般,尤其是翻译后的版本,原版还行
《Java 教程》 // 电子工业出版社出版的那本,上下册,很厚,但翻译得不错
《21 天学通 Java》 // 入门极好,但是《21 天学通 j2ee》极烂,不要买
《Mastering EJB》 // 翻译过的书质量我不清楚,估计不怎样,请看原版书籍
《精通 Hibernate》 // 看清楚作者,孙卫琴,其它人的别买
其它的可以不用了,网络上的远比书上来得多,来得好,虽然也来得杂
最后的建议
一,不要做一个浮躁的人
二,学好英语,很重要
三,阅读源代码和文档
四,共享源代码,不要做一个功利的人
五,热爱 Java