如今,IT行业里新的编程语言层出不穷,例如Python、Google Go、Rust……这些各有千秋的编程语言让新手程序员挑花了眼,不知道该选哪一个入行比较好。
说到这里,异步君就不得不提Java了,作为程序员数量最多的编程语言,Java目前仍然是世界上最受欢迎的编程语言之一。基于Java开发的应用已经渗透到我们生活中的方方面面,比如我们熟知的大型电商网站、订票系统、安卓App等应用,大多数应用软件都离不开Java。
Java能有如此成绩,主要得益于其优秀的品质——简洁高效,具有高度的可移植性,可以实现“一次编写,到处运行”。
在过去,大多数程序在移植到不同的操作系统平台(如 UNIX、Linux 和 Windows 等)上时,程序员通常不得不重新调试与编译这些程序,有时甚至需要重写。而Java最大的优势就在于跨平台性,在一种平台下用 Java 语言编写的程序可以在编译后不用经过任何更改,就能在其他平台上运行。
如此优势,让Java自出生起就成为企业级应用的宠儿,更是在互联网大爆发的时代,成为程序员们最容易就业的编程语言。
为什么要学Java?
招聘和Java不得不说的故事
一直以来,Java 人才的需求量旺盛,根据 IDC(International Data Corporation,国际数据公司)的统计数字, 在所有软件开发类人才的需求中,对 Java 工程师的需求达倒全部需求量的 60%~70%。
先来了解一下大家最关心的职业发展的问题,对于 Java 程序员来说,大致可以从三个大方向来规划自己的职业蓝图。
1.继续走技术工作之路。从技术发展方向来看,Java 工程师则可以由最初的初级软件工程师即程序员逐渐晋升至中级软件工程师(高级程序员)、高级软件工程师及架构师等。走这条路,依然可进入电信、银 行、保险专业软件开发公司等从事软件设计和开发工作。在信息时代,越来越多的公司重视信息化,而信息化落实起来离不开软件开发,而软件开发中 Java 当属挑大梁者。如果选择这个方法,程序员要脚踏 实地,一步一个脚印地练好 Java 的基本功。对于初(中)级程序员来说首先掌握 Java 的基本语法(如类 与对象、构造方法、引用传递、内部类、异常、包、Java 常用类库、Java IO 及 Java 类集等)。当然,如果读者定位高级程序员以上的目标,那么目标的实现主要依赖三点:一是前期扎实的 Java 基础,二是后期对软件开发持续性热爱,三是靠程序员个人的领悟。
2.定位成为技术类管理人员,如产品研发经理、技术经理、项目经理及技术总监职位等。如果选择管理 方向,首先要有一定的“基层“经验,至少要有几年的 Java 开发经验。否则,即使偶然因素让你“擢升 ‘至’管理层”,那么也会因为“外行指导内行”而饱受诟病,所以如果定位管理人员,那么成功的第 一步就是至少成为一名中级以上的 Java 程序员,前面所言的 Java 基础也是需要掌握的。想成为技术类管 理人员,还要深谙 Java 设计模式及软件工程的思想,从而能把控软件开发的全局。一个好的技术类管理 人员,不仅要自身具有很强的技术管理能力,同时,也要有很强的技术体系建设和团队管理的能力,对自己所处的行业技术发展趋势和管理现状具有准确的判断。统筹全局、集各个层次的技术人员之合力,高质量完成软件项目,是成为技术类管理人员的挑战。
3.在其他领域成就大业。Java 软件开发发展前景好,运用范围也广,具备 Java 基础的工程师,还可以尝试着在其他领域成就一番大业。
例如,Java 工程师可以从事 JSP 网站开发、移动领域应用开发、电子商务开发等工作。如果从事 WEB 开发,那么在此之前一定要熟练掌握 HTML、JavaScript、XML。
在 WEB 开发中其核心就是进行数据库的操作,先从 JSP(Java Server Pages)学习,并可以使用 JSP + JDBC(Java Data Base Connectivity,Java 数据库连接)或者是 JSP + ADO(ActiveX Data Objects)完成操作。JSP 技术是以 Java 语言作为脚本语言的。
之后再学习 MVC 设计模式(Model View Controller),它是指软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和 控制器(Controller)。
如果掌握了 MVC 设计,就可以轻松地掌握 AJAX(Asynchronous JavaScript and XML)和 Struts 技术。AJAX 是在不重新加载整个页面的情况下与服务器交换数据并更新部分网页的手段。Struts 是 Apache 软件基金会(ASF)赞助的一个开源项目。使用 Struts 机制可以帮助开发人员减少运用 MVC 设计模型开发 Web 应用的时间。
之后,再学习 Hibernate 和 Spring 等轻量级实体层开发方法等。Hibernate 是一个开放源代码的 Java 语言 下的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可便利地使用对象编程思维来操纵数据库。Spring Framework 是一个开源的 Java/Java EE 全功能栈,其应用程序框架内包 含了一些基于反射机制写的包,有了它以后程序员便可以将类的实例化写到一个配置文件里,由相应的 Spring 包负责实例化。
当然以上三条与 Java 相关的职业发展规划之路,都以夯实 Java 基础为根本。每一条路走到顶层,都需要重视基础,一步一个脚印,做事由浅入深,由简入繁,循序渐进。Java无处不在Java 作为 Sun 公司推出的新一代面向对象程序设计语言,特别适于互联网应用程序的开发,但它的平台无关性直接威胁到了 Wintel(即微软的 Windows 操作系统与 Intel CPU 所组成的个人计算机)的垄断地位, 这表现在以下几个方面。 信息产业的许多国际大公司购买了 Java 许可证,包括 IBM、Apple、DEC、Adobe、SiliconGraphics、HP、TOSHIBA 以及 Microsoft 等。
这一点说明,Java 已得到了业界的高度认可。众多的软件开发商开始支持 Java 软件产品。例如 Inprise 公司的 JBuilder、Oracle 公司自己维护的 Java 开 发环境 JDK 与 JRE。Intranet 正在成为企业信息系统最佳的解决方案,而其中 Java 将发挥不可替代的作用。Intranet 的目的是 将 Internet 用于企业内部的信息类型,它的优点是便宜、易于使用和管理。用户不管使用何种类型的机器和操作系统,界面是统一的 Internet 浏览器,而数据库、Web 页面、Applet、 Servlet、JSP 等则存储在 Web 服务器上,无论是开发人员还是管理人员,还是普通用户都可以受益于该解决方案。
虽然 Sun 公司被收购了,但 Java 作为 Sun 公司的优质资产被母公司 Oracle 公司高度重视,因此仍然得以 继续“茁壮成长”。根据 TIOBE 公布的 编程语言排行榜,虽然不同的月份,编程语言之间的地位可能有互换,但 Java 在整个编程领域的前三甲的地位基本是不动摇的。这从侧面可以反映,Java 的无处不在,其应用领域和前景非常广阔。
从桌面办公到网络数据库,从 PC 机到嵌入式移动平台,从 Java 小应用程序(Applet)到架构庞大的 J2EE 企业级解决方案,处处都有 Java 的身影,就连美国大型太空(NASA)项目当中,也使用了 Java 来 开发控制系统和相关软件。
Java 技术的开放性、安全性和庞大的社会生态链以及其跨平台性,使得 Java 技术成为智能手机软件平台 的事实性标准。在未来发展方向上,Java 在 Web、移动设备以及云计算等方面的应用前景也非常广阔。虽然面对来自网络的类似于 Ruby on Rails 这样编程平台的挑战,但 Java 依然还是事实上的企业 Web 开发 标准。随着云计算(Cloud Computing)以及移动领域的扩张,更多的企业考虑将其应用部署在 Java 平台上,那么无论是本地主机,还是公共云,Java 都是目前最合适的选择。
Java 是目前世界上最流行的编程语言之一,而且也成为了事实上的应用层的开发标准,在很多的开发之中,都会把 Java 作为一些底层代码的操作功能的调用工具,如目前面向手机的 Android 开发。Java 应用领域之广,也势必促使 Java 开发者的就业市场呈现欣欣向荣的发展态势。学习 Java 不仅是学习一门计算机语言,更多的是学习一种思想,一种开发模式。对于从事软件行业的工作人员,掌握了 Java 语言,可以让自己日后的事业发展得更加顺利。Java 语言由于学习相对完整, Java 开发人员可以轻松转入到手机开发、.NET、PHP 等语言的开发上,以后也可以更快的跨入到项目经理的行列之中。
如何才能学好Java
Java的技术体系
仅从传统意义上来看, Java 技术体系包括以下几个组成部分:● Java 编程语言● class 文件格式● Java API 类库● 开源社区及商业机构的第三方 Java 类库● 各种平台上的 Java 虚拟机
按照 Java 技术关注的重点业务领域来划分,Java 技术体系可以分为4 个平台:
1.Java SE(Standard Edition,标准版):支持面向桌面级应用(如 Windows 下的应用程序)的 Java 平台,提供了完整的 Java 核心 API,这个版本 2005 年以前称为 J2SE。
2.Java EE(Enterprise Edition,企业版):以 Java SE 为基础,往外延伸,增加了许多支持企业内部使 用的扩充类,支持使用多层架构的企业应用(如 ERP—企业资源计划系统、CRM—客户关系管理系统的 应用)的 Java 平台,除了提供 Java SE API 外,还对其做了大量的扩充并提供了相关的部署支持。这个版 本 2005 年以前称为 J2EE。
3.Java ME(Micro Edition,微型版):Java ME 同样以 Java SE 为基础,但向内精简。它所支持的只 有核心类的子集合,它支持 Java 程序运行在移动终端(手机、PDA—掌上电脑)上的平台,加入了针对 移动终端的支持。这个版本 2005 年以前称为 J2ME。Java 的微型版主要是进行嵌入式开发,目前渐渐被 Android 开发所替代。
4.Java Card(智能卡版):由于服务对象定位更加明确化,Java Card 版本比 Java ME(微型版)更加 精简。它支持一些 Java 小程序(Applets)运行在小内存设备(如容量小于 64K 的智能卡)的平台上。但是,不管 Java 的技术平台如何划分,都是以 Java SE 为核心的,所以掌握 Java SE 最为重要,这也是本 书的主要讲解范围。如果要想进行 Java EE 的开发,Java SE 是其中必要的组成部分,这也就是为什么在 学习 Java EE 之前要读者一定要有扎实的 Java SE 基础了。
Java学习路线图
对Java初学者或中级Java程序员来说,Java 学习的路线在整体上需遵循:初级阶段>>初级阶段>>高级阶段,循序渐进地学习:
初级阶段:学习 Java 基础语法和类的创建与使用,基础 I/O(输入/输出)操作、各种循环控制、运 算符、数组的定义、方法定义格式、方法重载等,并熟练使用一种开发工具,如 Eclipse 等。
中级阶段:掌握面向对象的封装、继承和多态,学习常用对象和工具类,深入 I/O(输入/输出)操 作,异常处理、Java 的包管理机制、集合框架等。
高级阶段:掌握 Java 的反射机制、泛型、网络编程、GUI 开发、多线程、高级 I/O、数据库编程、 Java Applet 等。
学好Java的关键在于什么?
不管处于哪个学习阶段,编程语言的学习都要重视 Java 的实战练习,等学习到高级阶段还要用一些项目实训来提升自己。
学习 Java 的途中没有捷径,需要进行不断地理论学习、反复地实战练习才能将代码运用灵活,就好像练习武功一样,只有重视基本功,并持之以恒,才能让自己的动作收放自如,招式炉火纯青。
《礼记•中庸》有言:“君子之道,辟如行远必自迩,辟如登高必自卑”。这句话告诉我们,君子行事,就像走远路一样,必定要从近处开始;就像登高山一样,必定要从低处起步。
练就成为一名 Java 高手的过程可能需经历多年的时间。一些读者朋友担心,自己可能等不到成为高手那一天, 就无力开发 Java 了。
其实,Java 相关的开发行业也如陈年美酒,越陈越香。Java 软件开发行业职业寿命很长,能提供给从业人员更广阔的发展方向。如果想在 Java 开发相关的领域有所建树,多一份持久的坚持是必须的。
学习Java的准备工作
学习 Java 的第一步就是要搭建 Java 开发环境(Java Development Kit,JDK),它是在操作系统(如 Windows、Linux 等)下搭建的 Java 最基本的开发环境,目前由 Oracle 公司维护开发并免费提供。
JDK 由一个处于操作系统层之上开发环境和运行环境组成,如下图所示。JDK 除了包括编译(javac)、 解释(java)、打包(jar)等工具,还包括开发工具及开发工具的应用程序接口等。当 Java 程序编译完 毕后,如果想运行,还需要 JRE(Java Runtime Environment,Java 运行环境)。
JRE 是运行 JAVA 程序所必需的环境的集合,包含 JVM 标准实现及 Java 核心类库。如果仅仅想运行 Java 程序,安装 JRE 就够了。也就是说,JRE 是面向 Java 程序的使用者的。如果想开发 Java 程序,就需 要安装 JDK,它是面向 Java 程序的开发者。Java 程序的开发者自然也是 Java 程序的应用者。
如图所示,Java 程序开发的第一步就是编写 Java 语言的源代码。而编写源代码的工具可以是任何文本编辑器,如 Windows 下的记事本、Linux 下的 Vim 均可。这里推荐大家使用对编程语言支持较好的 编辑器:Notepad++、UltraEdit、Editplus 等。
Java 源文件编写完毕后,就可以在命令行下通过 javac 命令将 Java 源程序编译成字节码(二进制文件),然 后通过 java 命令来解释执行编译好的 Java 类文件(文件扩展名为.class)。但如果想正确使用 javac 和 java 等命令,用户必须自己搭建 Java 开发环境。
采用 Oracle 公司提供的 JDK 开发 Java 程序,能够让初学者专注于 Java 语法的理解,代码模块之间的关 系比较清晰明了,有利于初学者理解 Java 面向对象的设计思想。
此外,JDK 的版本也会随 Java (J2EE、 J2SE 以及 J2ME)版本的升级而升级。但它的缺点也是明显的,从事大规模企业级 Java 应用开发比较困 难,也不利于团体协同开发。因此,目前市面上出现了很多优秀的 Java 集成开发环境 (Integrated Development Environment,简称 IDE),如 NetBeans 和 Eclipse 等。
DE 在 JDK 的基础上,为程序提供了很多辅助功能的支持,极大方便 了程序的开发。
学习Java,如何开个好头?
万事开头难,给大家分享了Java学习路线图之后,不少朋友也可能会有“畏难”情绪。
别急,小五还有宠粉福利,零基础Java训练营,免费送想领取的私信小五“资料”获取