java的概念
Java是一种可以撰写跨平台应用程序的、面向对象的程序设计语言。简单说,Java就是一种语言,不过是一种针对jvm的语言,Java编译后是字节码,而jvm会把这些字节码解释成机器码,然后做出相应的动作。
Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。
1.Java语言吸收了C++语言的各种优点,具有功能强大和简单易用两个特征。
2.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
3.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。
4.Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
Java体系
• JavaSE Platform Standard Edition
– Java平台标准版主要用于单机软件桌面系统。
• JavaEE Platform,Enterprise Edition
– Java平台企业版主要用于服务器端程序和网络
程序开发
• JavaME Platform Micro Edition
– Java平台微型版主要用于手机及各种嵌入式系
统,现在的手机游戏很多就是J2ME编写的
Java虚拟机
Java虚拟机(JVM)是Java Virtual Machine的缩写,是指建立在硬件和操作系统之上,运用硬件或软件手段实现的虚拟的计算机。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。可以运行Java字节码的虚拟计算机系统 ,它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。
Java的垃圾回收机制
gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。在C/C++中,程序员需要自己管理内存,Java提供了一个系统级的线程来跟踪内存分配,不再使用的内存区将会自动回收不同的JVM的实现中,垃圾收集机制大不相同若需要使一个对象被回收,必须移除其上的所有引用,通常可将其置NULL但是,即使有了垃圾收集机制,仍然可能出现内存溢出的情况。
• Java虚拟机
– Java虚拟机可以理解为一个以字节码为机器指
令的cpu
• Java垃圾回收机制对于不同的运行平台,有
不同的虚拟机
• Java虚拟机机制屏蔽了底层运行的差别,实
现“一次编译,随处运行
JDK和JRE
• JDK
– Java Development Kit (Java开发工具包) – JDK是提供给开发人员使用的
– JDK包含Java的开发工具和JRE
– 编译工具javac.exe 打包工具jar.exe
• JRE
– 包括Java虚拟机和Java程序所需的核心类库
– 若只需要运行Java程序,计算机中只需要JRE
就可以了
JDK 安装
• 下载JDK
– http://www.oracle.com/technetwork/java/javase/downloads/index
.html
• 安装JDK
• 配置path&classpath
– Path:windows系统执行命令时要搜索的路径
– Classpath:java在编译和运行时要找的class所在的路径
• 验证
– Javac 编译java程序
» 需要用java文件名后缀
– Java 运行java程序
» 不需要文件的后缀
Java的运行环境配置搭建
JAVA_HOME
C:\Program Files (x86)\Java\jdk1.7.0_02
Path
%JAVA_HOME%\bin;
classpath
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
javac:Java编译器
java:Java解释器
jdb:Java调试器
javap:反编译
javadoc:文档生成器
利用编辑器编写Java源程序,源文件名:主类名.java
利用编译器将源程序编译成字节码,字节码文件名:源文件名.class
利用虚拟机(解释器)运行,工作过程:载入、代码校验、解释执行
必须熟练掌握的命令
javac命令:编译器将java源文件编译成字节码文件
java命令:JVM解释执行已经编译好的字节码文件
java的优点
1.平台无关性
平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。虚拟机是个用来解释Java指令的软件包,可以让Java在任何机器上运行,比如有运行在Mac或 UNIX下的虚拟机软件包。虚拟机并不是Java语言本身,它是个为特定机器编写的解释器软件。Java的虚拟机策略就相当于世界语,这是个人造的国际语言,目的是使得不同语言之间的翻译和沟通更加容易。
Java源代码和字节码与机器无关,JVM与机器相关,装在不同操作系统的机器上,需要专门为该操作系统开发的JVM,Java的数据类型与机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。Java适宜于互联网的开发应用,其中一个原因是它使用了虚拟机。
2.安全性
Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。
3.面向对象
Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。
4.分布式
Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。
5.健壮性
Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。
6.解释型
我们知道C,C++等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关。Java不像C或C++,它不针对CPU芯片进行编译,而是把程序编译成称为自字节码的一种“中间代码”。字节码是很接近机器码的文件,可以在提供了java虚拟机(JVM)的任何系统上被解释执行。
7.动态
java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序及分类,而不像C++那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。
Java的缺点
第一: 运行速度慢,众所周知,Java程序的运行依赖于Java虚拟机,所以相对于其他语言(汇编,C,C++)编写的程序慢,因为它不是直接,执行机器码。第二: 因为Java考虑到了跨平台性。所以他不能像语言(例如:汇编,C) 那样更接近操作系统。也就不能和操作系统的底层打交道了。但可以通过Java的JNI(即Java本地接口。顾名思义:也就是利用Java语言调用,在当前系统上其他的程序语言 "汇编或C等"所编写的程序技术,解决这一问题,但这只是解决了。一部分问题。
java的用途
1、Android应用bai许多的 Android应用都是Java程序员开发者开发。虽然 Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写。相当一部分的手机中都支持JAVA游戏,这就使很多非编程人员都认识了JAVA。2、在金融业应用的服务器程序Java在金融服务业的应用非常广泛,很多第三方交易系统、银行、金融机构都选择用Java开发,因为相对而言,Java较安全 。大型跨国投资银行用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。3、网站Java 在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0以及frameworks。4、嵌入式领域Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术(在智能卡或者传感器上)。5、大数据技术Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。6、高频交易的空间Java平台提高了这个平台的特性和即使编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java成为的程序员编写交易平台的语言,因为虽然性能不比C++,但开发人员可以避开安全性,可移植性和可维护性等问题。7、科学应用Java在科学应用中是很好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。扩展资料:java的用途已经数不胜数,举不胜举,拥有着无可比拟的能力,另外在节省时间和开发费用方面也十分可观,程序员可以借助java语言,自由的使用现有的硬件和软件系统平台,因为java是独立于任何平台的。具体应用领域总结如下:第 1 个领域、桌面应用系统开发;第 2 个领域、嵌入式系统开发;第 3 个领域、电子商务系统开发;第 4 个领域、企业级应用开发;第 5 个领域、交互式系统开发;第 6 个领域、多媒体系统开发;第 7 个领域、分布式系统开发;第 8 个领域、Web应用系统开发。