什么是JAVA?JAVA能做什么?

什么是Java?

  Java既是一种编程语言,又是一个平台。

  Java程序语言

  Java是具有以下特征的高级程序语言:

  简单 
  面向对象 
  可分布 
  可解释 
  强壮 
  安全性 
  结构化 
  轻便 
  功能强大 
  多线程 
  动态

  Java既可以被编译,也可以被解释。通过编译器,可以把Java程序翻译成一种中间代码 - 称为字节码 - 可以被Java解释器
解释的独立于平台的代码。通过解释器,每条Java字节指令被分析,然后在计算机上运行。只需编译一次,程序运行时解释
执行。下图说明了它是如何工作的:

  可以把Java字节码看作运行在Java虚拟机(Java VM)上的机器代码指令。每中Java解释器,不管是Java开发工具还是可以运
行Java小应用程序的Web浏览器,都是一种Java VM的实例。JavaVM也可以由硬件实现。

  Java字节码使写一次,到处运行成为可能。可以在任何有Java编译器的平台上把Java程序编译成字节码。这个字节码可以
运行在任何Java VM上。例如,同一个Java程序可以运行在WindowsNT、Solaris和Macintosh上。

  Java平台

  平台是程序运行的硬件或软件环境。Java平台与大多数其它平台不同之处在于它是运行于其它基于硬件平台的纯软件平台。大
多数其它平台是硬件和操作系统的结合。

  Java平台由两部分组成:   Java虚拟机(Java VM) Java应用程序界面(Java API)

  我们已经介绍了Java VM,它是Java平台的基础,可以移植到各种基于硬件的平台上。

  Java API是软件组件的集合,它们提供了很多有用的功能,如图形用户界面(GUI)。Java API被分组为相关组件的库(包)。

  下图描述了一个运行在Java平台上的Java程序,如应用程序(application)或小应用程序(applet)。如图中显示的,JavaAPI和VM把Java程序从硬件依赖中分离出来。

  作为一种独立于平台的环境,Java比本地代码慢一些。然而,聪明的编译器、很好地调制过的解释器和即时字节码编译器可以
在不牺牲可移植性的条件下使Java的表现接近本地代码。

//==============================================

作为一个学习java的人,首先我们要了解java是干嘛的,java能做什么,以及java的历史背景,只有当我们了解了java这些基础,我们学习java才能事倍功半。

Java的历史背景

Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。

自从Sun被甲骨文收购以后,Java的发展前景就变得扑朔迷离起来,很多程序开发者都感到很迷惑。2010年4月9日,被称为Java之父的詹姆斯·高斯林又在个人博客上宣布离开Oracle,这一事件更为Java的前景增加了一层迷雾。但是在进入5月份之后,一切开始变得明朗起来。

在Oracle的活动发布网站上,连续发布了多个关于Java的推广活动。5月12日,Oracle主要产品负责人

Dave

Hofert将大谈对JavaSE商业应用的改进和革新。根据宣传资料,在这次演讲中,DaveHofert将提到以下问题:商业版与社区版本之间平台支

持的差异。如何获得专家帮助,以帮助企业增强其Java应用。对于旧版本的安全修补问题。可使用的发布工具和更新。6月18、19、20、27日,将分别

在赫尔辛基、斯图加特、布达佩斯、

伦敦举行Oracle、Sun专家与用户见面会,在见面会上与用户一起探讨Java的发展路线。主要讨论的问题包括Oracle将如何继续投资和改进

Java技术,并且还会向用户通报JavaSE、JavaME专家团队的最新消息、JavaFX和JDK7最新的消息,以及OracleBerkeley

DB的相关信息。5月3日,已经离开Oracle近一个月的Java之父詹姆斯·高斯林在他的博客上表达了对NetBeans 6.9 和

FX1.3发布的关心。这两个项目最新版本的发布,可以证明Oracle已经开始兑现当初的承诺。詹姆斯·高斯林在其早期的博客中,也透露了不会放弃

Java事业,只是需要解决一些与Oracle之间的法律问题。这一切迹象表明,Oracle绝对不会轻易放弃Java这块巨大的蛋糕,并且Oracle

也开始逐渐学会了对开源社区的

尊重。首先在JDK的商业版本方面,Oracle将会继续深入挖掘Java的商业利益,与其固有产品进行更深入的整合。在社区版本方面,Oracle将与

Java开发者一起探讨和研发Java的技术。这里需要特别提到的一个产品是Oracle

BerkeleyDB,该产品是Oracle一直支持的一个开源非关系数据库产品,在NoSQL大行其道的今天,如果Oracle能够将BerkeleyDB与Java进行深入整合,将会为Java带来更多的活力和生命。从詹姆斯·高斯林的表现来看,他似乎与Oracle之间已经达成某种谅解,并且有进一步合作的Android是第一个内置支持Java的操作系统,Android应用程序使用Java语言编写。Android开发水平的高低很大程度上取决于

Java语言核心能力是否扎实。另外一方面,3G应用往往会和企业级应用相互结合。因此,在3G—Android课程体系中将Android课程与

Java EE课程紧密结合,以Android课程为主,以Java EE课程为辅,配合真实的企业级项目,不但可以深入掌握基于Android平台的智能手机开发技术,更重要的是还系统掌握了智能移动终端与Java EE服务器端相结合的诸多领域商业的应用可能性。

Java的作用

Java程序设计是一个庞大的、发展迅速的领域。自从Java发布以来,作为一种面向对象的程序设计语言,不论在Internet程序设计中,还是在程序设计的教学中,都呈现出显著的优势。Java 2平合对于支持应用程序的开发来说,是一个具有重要影响的成熟软件。实际上,Java本身并不复杂,只是内容稍多了一些。使用它进行软件开发会更快、更好。

Java的另一个主要特性可能就是面向对象(object oriented ).用面向对象的方法进行程序设计是所有Java程序的一个隐含特性,在本章的稍后部分,我们将会看到它的含义。Java不仅面向对象,而且还设法避免其他面向对象语言中继承的难度和复杂度,因此你将会发现Java是一个非常简单、容易学习的语言。

在现今阶段,最有前途的开发语言当属Java,Java语言是跨平台的,Write Once,Run Anywhere是Java的一句口号,学Application编程,可以在计算机上写程序,学Applet可以在网页上嵌入小程序,学J2ME,可以在手机上运行程序,到处都有Java的影子了。。。    大体分为三个版本j2me面向嵌入式开发比如手机程序,j2se标准版中小型软件应该是多用于c/s结构,也是学习java的最好开始;j2ee面向大型企业系统,综合了很多技术。简单来说可以做游戏软件,聊天工具等等。

Java的开发前景

1.成为管理人员,例如产品研发经理,技术经理,项目经理等。

2.继续java技术工作之路,成为高级软件工程师、需求工程师等。

根据IDC的统计数字,在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的60%~70%。同时,Java工程师的薪水相对较高。 Java软件工程师一般月薪范围在4000-10000元,远远超过了应届毕业生月薪2500元的平均水平。通常来说,有一年工作经验的Java高级软件工程师的薪酬大致在年薪10—13万左右。

java技术培训之后可以从事JSP网站开发、Java编程、Java游戏开发、Java桌面程序设计,以及其他与Java语言编程相关的工作,就业面非常广。

//==============================================================

Java 技术既是一种高级的面向对象的编程语言,也是一个平台。Java 技术基于 Java 虚拟机(Java virtual machine,JVM)的概念 —— 这是语言与底层软件和硬件之间的一种转换器。Java 语言的所有实现都必须实现 JVM,从而使 Java 程序可以在有 JVM 的任何系统上运行。

Java 编程语言(Java programming language) 与众不同之处在于:Java 程序既是编译型的(compiled)(转换为一种称为 Java 字节码的中间语言),又是解释型的(interpreted)(JVM 对字节码进行解析和运行)。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对 JVM 优化过的机器码形式;解释器是 JVM 的实现。

Java 平台(Java platform) 是一种纯软件平台,它可以在各种基于硬件的平台上运行。它有三个版本(参见后面的 Java 平台的多个版本)。它由 JVM 和 Java 应用程序编程接口(Java Application Programming Interface,API)组成。Java API 是一个大型的现成软件组件(类)集合,它可以简化 applet 和应用程序的开发和部署,包括健壮、安全且可互操作的企业应用程序。它涵盖从基本对象到连网和安全性,再到 XML 生成和 Web 服务的所有东西。Java API 组织成相关类和接口的库;库也称为包(package)

除了 Java API 之外,每个完整的 Java 平台实现还包含:

  • 用来编译、运行、监视、调试应用程序以及建立应用程序文档的开发工具。
  • 用来部署应用程序的标准机制。
  • 用来创建复杂的图形用户界面(GUI)的用户界面工具包。
  • 用来启用数据库访问和操作远程对象的集成库。

Java 技术是最初由 Sun Microsystems 公司开发的。Java Community Process(JCP,一个由全世界的 Java 开发人员和获得许可的人员组成的开放性组织)对 Java 技术规范、参考实现和技术兼容性包进行开发和修订。在 2006 年 8 月,Sun Microsystems 宣布它打算开放 Java 平台的源码,并开始征询对许可协议和管理方式的反馈。

Java 技术为什么是重要的?
Java 语言的主要好处是,Java 应用程序可以跨硬件平台和操作系统进行移植 —— 这是因为每个平台上安装的 JVM 都可以理解同样的字节码。
Java 语言和平台的可伸缩性非常强。在低端,现有的应用程序可以很容易地适应内存资源有限的设备。这种语言是进行服务器端 Web 编程的理想框架。因为它被设计为按照一种安全的方式通过网络运行,在通过互联网进行操作时,它提供了一定程度的安全性。在本质上,Java 技术将用户的计算能力从桌面扩展到了 Web 资源。Web 组件由称为Web 容器(Web container) 的运行时平台支持,Web 容器的服务包括请求分派、安全性、并发性、生命周期管理以及对命名、事务和电子邮件等 API 的访问。在高端,Java 应用服务器(application server) 作为 Java 组件、XML 和 Web 服务的 Web 容器,可以与数据库进行交互并提供动态的 Web 内容;它们还为企业应用程序提供应用程序开发环境,具有事务管理、安全性、集群、性能、可用性、连接性和可伸缩性等功能。
Java 语言是第一批支持企业开放标准的技术之一,支持使用 XML 和 Web 服务跨业务线共享信息和应用程序(参见下面的 Java 技术与 SOA/Web 服务的关系)。Java 技术是许多 IBM 产品和技术咨询服务的核心(参见下面的 Java 程序员可用的 IBM 工具和产品),是 IBM 发展计划的重要部分:
了解关于 IBM 的面向服务架构(SOA) 计划的更多信息,以及 SOA 如何帮助用户构建复合应用程序,从而将来自多个来源的功能组合在企业中以支持横向业务流程。
IBM Business Innovation and Optimization 为战略性调整提供一种基于组件的全面的方法。提供的解决方案基于一个灵活、可扩展、基于开放标准的软件(包括 Java 技术)和硬件基础结构。
Java 平台的多个版本 Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发:
Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。大多数 Java 开发人员使用 Java SE 5,也称为 Java 5.0 或 “Tiger”(2006 年 6 月,Java SE 6 或 “Mustang” 发布了 beta 版。)
Java SE 6 新特性系列 专栏主要介绍 Java SE 6 在 API 库方面的部分新特性。
驯服 Tiger 专栏对 Java SE 5 做了精彩的概述。
Merlin 的魔力 系列讨论了以前的 Java SE 平台版本,J2SE 1.4 或 “Merlin”。许多现有的 Java 应用程序基于 J2SE 1.4,而且这个系列中的大多数概念是与 Java SE 5 编程相关的。
Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
J2EE 探索者 专栏提供关于 Java EE 的知识。
走上开放之路:迁移到 Java 平台 文章系列帮助 .NET、Windows 客户机/服务器和 ASP 应用程序的开发人员迁移到 Java EE 平台。
Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
这个全面的 分四部分的系列 包含两个教程和两篇配套文章,它们集中介绍 J2ME 和 Mobile Information Device Profile(MIDP)。
还可以在 developerWorks Wireless technology 专区中找到许多 J2ME 参考资料,比如分两部分的教程 “构建灵活的 J2ME 移动应用程序”。

//=====================

多年前我自学的时候是很茫然,上网问问题,总是一堆外行的人说很难啊,你需要这样需要那样,不然就是,一堆人说一些空话,多看多写,买好书,我很无语,除了这些就没有自己的一些想法吗? 
首先很多人认为学JAVA要C的基础,但是实际上不用,学开车,我不想先学骑自行车,没有必要。

第一阶段: 
1. JAVA语法和基础,包括循环。。和类的相关内容,如实现,继承什么的 
2. 你需要掌握几个重点的集合,List接口的两个子类LinkedList,ArrayList;然后是Map几口的两个子类HashMap,HashTable;Set接口 掌握List后学Set就容易了;掌握Collection和Collections的区别 
3. 掌握IO一章,重点的几个流 InputStream,OuputStream;BufferedReader,BufferedWrite; 
ObjectInputStream, ObjectOutputStream,,PrintWriter,FileReader,FileWriter了解JAVA的序列化,掌握JAVA的File类 
4. JDBC非常重要,重点掌握Connection,PreparedStatement, Statement,ResultSet, 
其他的可以在学习或项目中如果碰到再学,但早期重点掌握前面几个,其他了解足够, 
数据库建议新手用MySql,下载Navicat for MySQL管理工具 
5.如果你想快速上手的话,那么你需要跳过这些, 
包括:线程,网络编程,GUI编程

好的,现在你可以进入第二阶段了

1. HTML+JAVASCRIPT不必说了,掌握多少看自己把握了,CSS做了解 
2. JSP+Servlet,你需要重点掌握几个,Request,Response,Session,其次是Application.

另外你需要知道Redirect,ForWard的区别,Servlet的生命周期等 
3. 标签方面:(1)掌握EL表达式;(2)最好掌握JSTL标签,不会也可,但如果掌握了JSP标签,学JSTL也十分简单,重点是迭代标签和格式化标签, 
4. 学习AJAX,简单点就行了,无需深入研究 
5. 掌握了上面的,你可以继续学习框架:Struts2.0;Hibernate3;Spring 2.0 
6. 如果上面你都做到的话,并且在期间做了2到3个项目的话,OK你可以参加工作了 
这只是我给新人的一点指引,并非JAVA要学的全部

原文地址:https://www.cnblogs.com/wangweisheng/p/9499338.html

时间: 2024-10-09 08:40:46

什么是JAVA?JAVA能做什么?的相关文章

.NET开发和java开发是做什么的?

.NET开发和java开发是做什么的?     .NET开发可以开发C/S结构的东西,如QQ,铁路售票的 可以开发企业级的管理系统,如酒店管理系统可以开发B/S结构的网站,如B2C,B2B,企业门户网站,可以开发企业级的管理系统,也就网页形式的. .NET就是微软用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术.对技术人员,想真正了解什么是.NET,必须先了解.NET技术出现的原因和它想解决的问题,必须

JAVA编程“性能说”(java编程需要做的26件事)

转载于 http://www.csdn.net/article/2012-06-01/2806249 最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方. 1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 控

成都传智播客Java培训口碑做宣传

当今,信息技术日益成为现代组织实现创新和发展的重要手段,社会会对软件人才的需求持续增长,然而,一方面企业及组织聘不到合适的从业人员,另一方面又有众多的相关毕业生找不到合适的岗位.据此,成都传智播客特别推出了"Java开发工程师"培训班.欢迎有志从事且立足于软件业发展的学员报名参加本课程.我们期望这组课程将为您的职业生涯建立一个良好的开端和基础. [课程内容] 授课内容将结合目前业界主流的数据库系统.开发技术和环境分四个层次授课,第一个层次结合Oracle10i关系数据库管理系统讨论数据

Java 正确的做字符串编码转换

字符串的内部表示? 字符串在java中统一用unicode表示( 即utf-16 LE) , 对于 String s = "你好哦!"; 如果源码文件是GBK编码, 操作系统(windows)默认的环境编码为GBK,那么编译时,  JVM将 按照GBK编码将字节数组解析成字符,然后将字符转换为unicode格式的字节数组,作为内部存储. 当打印这个字符串时,JVM 根据操作系统本地的语言环境,将unicode转换为GBK,然后操作系统将GBK格式的内容显示出来. 当源码文件是UTF-8

摘抄-----java codeReview要做的事

整洁的代码 清单项目 分类 使用可以表达实际意图(Intention-Revealing)的名称 有意义的名称 每一个概念只用一个词 有意义的名称 使用方案/问题领域名称 有意义的名称 类应该是比较小的! 类 函数应该是比较小的! 函数 只做一件事 函数 DRY(Don’t Repeat Yourself)原则,(拒绝重复) 函数 用代码来解释自己的做法(译者注:即代码注释) 注释 确定应用了代码格式化 格式 使用异常而不是返回码 异常 不要返回Null 异常 *参考自:http://techb

Java工程师能做什么工作

当下在这个越发重视IT技术的时代,越来越多的人也开始重视自己IT技术的培养,当下若是掌握了一门热门的IT技术,那么高薪就业绝对是没有什么大问题的,在当下IT技术中,Java技术一向引人注目,想成为Java工程师的朋友是大有人在,那么Java工程师能做什么工作呢?跟长沙尚学堂小编往下看. 很多人对Java工程师的最初印象就是多金,因为Java工程师起点薪资在众多工程师中就比较高,还有个很深刻的印象,就是Java工程师人才缺口,真的可以用惊人来形容,根据IDC的统计数字,在对所有软件开发人才需求当中

哪里可以找到基于JAVA设计帮做的超市管理系统

一,关于我们我们是专业从事于定做计算机相关毕业设计,拥有专业的写手团队和严格的保密制度.我们的工程师们在软件工程开发与设计的各个领域积累了丰富的经验,保证服务水平.我们致力于为客户提供各专业高质量的毕业设计定做服务,为即将毕业的同学提供毕业设计指导.毕设代做.毕设定制等一站式服务.强大的专业能力,高效的服务水平,多年以来一直深得客户好评,毕业只有一次,我们将尽心尽力为你完成毕设. 联系我们:.扣.扣.号(幺零三贰三七幺贰幺) 与我们取得联系,向我们提出您的写作要求:我们咨询师会根据您的服务需求和

[Java]#从头学Java# Java大整数相加

重操旧业,再温Java,写了个大整数相乘先回顾回顾基本知识.算法.效率什么的都没怎么考虑,就纯粹实现功能而已. 先上代码: 1 package com.tacyeh.common; 2 3 public class MyMath { 4 5 public static String BigNumSum(String... n) { 6 int length = n.length; 7 StringBuilder result = new StringBuilder(); 8 //这里判断其实不需

我的Java——java和C、C++的区别

1.全局变量 java程序中不能在所有类之外定义全局变量 只能通过在一个类中定义公用(public)静态(static)的变量来实现一个全局变量.java对全局变量做了很好的封装. 2.Goto java不支持C.C++中的Goto语句,而是通过异常处理语句try catch finally等来代替 C.C++中用Goto来处理遇到错误时跳转的情况. 3.指针 java对指针进行完全的控制,程序员不能直接进行任何指针操作. 数组作为类在java中实现 很好解决了数组访问越界这一在C,C++中不做

微信表情过滤 java "java.sql.SQLException: Incorrect string value: '\"

iOS 5.0之前,苹果都是采用3个字节来承接emoji表情,Java的普通char可以支持显示.但iOS 5.0之后, 苹果升级了系统自带的emoji表情输入法,用的Unicode 6标准来统一,是采用4个bytes来承接一个 emoji表情.如果不做处理的话,这种表情直接存储到mysql5.5以下的数据库是会报错的. 就像这两个表情一样:, 在Windows 8以下估计都不支持显示,可能会显示成框框,可能压根就是空白, 你可以在Mac中使用Safari浏览器中,就可以看到.经过测试,在Mac