首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java面试 >

小弟我们爱分享——学完J2SE,在学习什么,看什么,欢迎大家来指点

2012-06-18 
我们爱分享——学完J2SE,在学习什么,看什么,欢迎大家来指点最近在咱们论坛上看到很多人说: 学完了J2SE我该在

我们爱分享——学完J2SE,在学习什么,看什么,欢迎大家来指点
最近在咱们论坛上看到很多人说: 学完了J2SE我该在学些什么,也有的问到了怎么学习java等等,我只想说:万丈高楼平地起,基础才是王道!!! 真正学好了、学扎实了J2SE那么学其他的就快多了,不止我是否说的对?

我也分享下,我在 百度贴吧 看到的一篇好帖子,希望对大家有用,谢谢……

我把它贴出来,也想大家继续说说自己的观点什么的……

我来简单描述下一个Java初学者到就业要学到的一些东西:

首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我们经常说到的JDK,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手机,PDA等等。J2EE,Java 2 Platform,Enterprise Edition,就是所谓的企业级Java,适合企业的大型应用开发。

J2SE:

  新手最初学习的时候先要从J2SE开始学起,所包含的内容主要分为:面向对象概念的理解、Java基本语法的学习,Java桌面图形界面应用程序的开发,掌握常用的Java API等(关键是要学会怎样查阅)。
重点:Java基本语法(循环结构,数据类型,数组,运算符等)、Swing,awt,事件机制、文件输入输出流处理等
难点:面向对象思想的理解(接口、类等)、线程、socket网络编程等
视频教程推荐:孙鑫的Java基础视频教程、张孝祥的Java基础视频教程,讲的都很细,而且这两位老师在教学方面都有很好的经验。


J2EE:
   
  在学习了J2SE之后,你可以尝试着慢慢过渡到J2EE,当然,学习J2EE海需要很多非JAVA技术的支撑,比如数据库技术,网页编程技术等等,待会我会详细介绍这两方面的内容。J2EE有三个必学的框架,如果你说你学了J2EE,但又不会这三个框架的话,那会让人笑掉大牙,这三个框架分别是Struts、Spring和Hibernate,虽然这三个框架应用很广,但不代表这三个框架就代表了J2EE,J2EE还有很多其他的东西,比如EJB,作为一款重量级(此重量级不是指重量级选手那个意思,此重量级非彼重量级)框架,虽然这个应用慢慢的再被其他框架所取代,但EJB3.0的出现也给它带回一些生机,作为一个分布式应用的框架,也是大家要去学习和了解的知识。
  当然,刚才说到J2EE包含的范围很广,即使我把我所了解的所有技术说出来,也并不能代表J2EE,这是一个很深很广的学问,需要大家以后再工作的时候慢慢去发现了。我所了解的还包括:

JDBC:Java数据库连接对象,基础中的基础,Hibernate也只是对它的封装而已
JNDI: Java 命名与目录接口,J2EE重要规范之一
EJBS: 上面已经提到过了
RMI: 提供远程调用方法的支持,主要用于程序分布式开发
JMS: Java消息服务,中间件技术
JAVA IDL: 提供J2EE平台与CORBA交互能力和互联能力的技术
JTS: 组件事务监视器
JTA: 事务划分的一个技术
JAVAMAIL: Java中的邮件技术
JAF: Java启动框架,没研究过
Log4j,一款日志处理的框架应用
Junit:单元测试的好帮手
freemarker、velocity:两款不错的模板引擎
与Flash的交互Flex:目前很多的SNS应用就是使用到了这个技术
Web services:想知道我们论坛天气预报的效果是怎么做的吗?请关注这个技术
SOA:面向服务架构,未来技术发展的趋势之一
……
   
  不过前面介绍到得这些都不是J2EE的基础,是属于框架应用级别的.要真正把上面说到的知识掌握好,还是的学习J2EE最核心的东西:JDBC、JSP、servlet和JavaBean,后面三个也是学习SSH的基础(Struts\Spring\Hibernate的简称).鉴于J2EE的内容太过复杂,建议大家最初只学习: JSP, servlet和JavaBean,等这个基础掌握好再把SSH学习了,再对其他J2EE技术有个大致的了解就可以出去找工作了。当然,找工作的前提除了把Java学习好,还会有一些其他的技术也是必须要掌握的。

我很简单,Java却要求我学这么多复杂的东西。除了这些技术的东西,在这阶段,大家更多的是会接触到比如设计模式的东西,比如工厂模式、桥梁模式、单例模式等等,还要学习建模思想(比如UML建模等等)和软件生命周期等等。这些是升华大家编程思想的手段和途径。

数据库技术:


  数据库几乎是程序中不可或缺的一部分,在整个软件开发中更是占据了重要作用.数据库在整个软件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做软件,就要先设计好的数据库.目前数据库几乎都是关系型数据库,代表的有:
SQL Server,目前最新的好像是2008,我不是很喜欢追赶时髦,用的还是2005,不过也很不错了,在此之前还有2000.
MySQL,最知名的开源数据库之一,我很喜欢它的小巧耐用,学过SQL SERVER数据库再学它,无师自通,易如反掌.
ORACLE.甲骨文公司的产品,大型数据库,正版的一般公司买不起.只有看看了,不过现在Java开发60%都是会使用到这个数据库,再加上现在甲骨文已经把sun公司收购了,JAVA和ORACLE得关系更加暧昧,各位得多花些时间在这上面了.
除了这些,你还应该了解一些桌面应用软件开发用到的数据库,比如说sqlite。你在制作安装程序的时候可以把这个数据库打包进你的安装程序。

网页编程基础:

  网页编程基础要学的内容也比较多,但主要集中在以下这三个技术之上,大家每天看的各种样式的网页都是它们呈现的:
HTML:超文本标记语言
CSS:层叠样式表
Javascript:浏览器客户端脚本语言
现在更是流行各种JavaScript库,比如:Jquery、ExtJs等,你要是会其中的某一个库的使用,找工作so easy。

J2ME:
  如果你在学习了以上技术还不过瘾,可以再学习手机程序的开发,就我个人看来,开发手机程序技术其实蛮简单的,难点在于优化,比如怎么让你写的程序尽量的节约手机资源,“代码诚可贵,手机价更高“,所以不得不比PC机多考虑很多成本和实用性问题。J2ME的学习的话,切忌不要单纯的再模拟器上测试,一定要找真机测试,真机和模拟器的效果之间差别是很大的。更多手机开发技术,有兴趣的朋友可以和我一起探讨。

开发工具:
  开发工具的选择主要还是看大家的习惯,我个人比较喜欢使用eclispe,功能很强大,也很好拓展其他的功能。当让初学你也可以选择JCreator,或者最好就直接用记事本。等你熟悉了Java代码之后,就可以使用JBuilder、eclispe或者netbeans这一类的工具了。

希望各位Java大牛们来完善这个帖子,说说自己是怎样学习java的

顶 我们爱分享 这个好活动,谢谢……


[解决办法]
我给你看看 J2SE 中的基础有哪些(原来总结的),常用的我也不说了:


Java 中的三大支柱,在 java.util.concurrent、java.security、javax.cropty、javax.security 四个包中就占了两个(多线程、安全),还有一个网络在 java.net、javax.net 中,呵呵

掌握了上面 6 个包及其子包中内容的话,那 Java 水平可以说达到了另一种境界。

PS:三大支柱是我个人给 Java 中多线程、网络和安全取的代号,并不是官方定义,嘿嘿


多线程(multi-threading and concurrent)

1:关键词:volatile, sychronized

2:传统的线程 API:java.lang.Thread, java.lang.Runnable, java.lang.ThreadGroup, Object#wait, Object#notify, Object#notifyAll



3:JDK 5 并发包(java.util.concurrent)API:线程池、执行器、信号量、倒计数门闩、并发集合(并发 Map、阻塞队列等)、原子 API(java.util.concurrent.atomic)、锁 API(java.util.concurrent.lock)

4:锁理论:自旋锁、分离锁、分拆锁、可重入锁、读写锁、锁的公平性等

涉及多线程及并发的 API 在 java.lang 中及 java.util.concurrent.** 中。


网络(network communication)

1:阻塞 TCP 通信、阻塞 UDP 通信、组播
2:非阻塞 TCP 通信、非阻塞 UDP 通信
3:客户端通信 API(java.net.URL, java.net.URLConnection 等类库)

涉及网络通信的 API 都在 java.net 和 java.nio.channels 包中。这里的网络已经将 RMI 相关包 java.rmi, javax.rmi 都排除了。


安全(security, cryptography and AAA)

1:Java 加密类库 JCA
2:Java 加密类库扩展 JCE
3:涉及密码学知识点的消息摘要、消息认证码、对称加密、非对称加密、数字签名
4:涉及网络通信证书管理工具(keytool)及 API
5:基于 SSL/TLS 的安全网络通信 API(JSSE)。阻塞 SSL 通信和非阻塞 SSL 通信
6:Java 认证及授权服务(JAAS)API

涉及安全的东西都在:

java.security(JCA、JCE、数字证书、SPI)
javax.net(SSL/TLS)
javax.security(JAAS)
javax.crypto(密码学)
JDK 工具 keytool

===================================================

如果对下面这些知识点不熟悉的话,那就先把 SSH 放一下!

在使用 Struts 等 MVC 框架之前,我认为应该先掌握:

* 了解 application, session, request, page 四种范围的特点,以及使用时的注意事项
* 熟练使用 Servlet,以及 Servlet 相关的 Filter、Listener 等
* 使用 Servlet + JSP + JDBC 至少做过一个有 10 个功能的应用
* 了解前端控制器、视图助手、组合视图、分配器视图等 J2EE 中涉及视图层的模式

在使用 Hibernate 等 ORM 框架之前,应是相当熟悉 JDBC 操作,并且知道一些理论性东西:

* 使用 JDBC 的时候,是否使用了数据库连接池,如何使用开源的数据库连接池?
* JDBC 中的行集(RowSet)是做什么用的?
* JDBC 如何实现对象/关系映射,也就是 O/R Mapping
* 为什么 JDBC 规范推荐首选从 DataSource 中获得数据库连接对象(JDBC 4.0 Specification, p.51.),
而不是首选从 DriverManager 中获得连接对象?
* 使用 DriverManager 获得连接对象时,虽然从实现 JDBC 4.0 规范的驱动程序开始,不需要使用
Class.forName("xxx.xxx.xxx.Driver"); 了,但我们也有必要了解一下这句话的作用是什么?
* 单纯地使用 JDBC 时如何实现低耦合性的事务管理?也就是说事务边界在业务层,一个业务层调用
多个数据库操作的方法完成一个事务,在这种情况下如何进行事务控制? 

在使用 Spring 等 IoC 框架之前,我认为应先掌握:

* 熟练地使用 JAXP、jdom, dom4j 等工具解析/生成 XML 文件,并能使用 XPath 进行 XML 查找
* 掌握 Java 中的反射,以及 JavaBeans 规范中的内省类,了解 JavaBeans 规范对于方法名、属性
的要求(别看这个很简单,实际上很少有人知道)
* 了解 JDK 的动态代理和 Cglib 的动态代理,了解 JDK 动态代理的限制,以及与 Cglib 动态代理
的优缺点,并且了解一下动态代理是做什么用的
* 熟练地使用日志工具,比如:JDK 日志工具、log4j 工具等,以及在使用时需要注意些什么
* 能善于使用开源框架中已经实现的东西,比如 Apache Commons 中很多实用的方法,像实现了 LRU
算法的 Map 等等之类的

热点排行