`
844604778
  • 浏览: 550549 次
文章分类
社区版块
存档分类
最新评论

Java菜鸟之java简介以及环境的搭建(一)

 
阅读更多

Java的语言是一种比较简单的语言,与常用的c++简洁很多,并且提高可靠性。J同时ava语言是一种特殊的高级语言,它既具有解释型语言的特4征,也具有编译型语言的特征。因为java程序先编译后解释的过程。

注释:在这里简单的说一下高级语音的运行机制。计算机高级语言根据执行方式分为两种一种为编译型一种是解释型。

编译型语言是指使用专门的编译器,针对特定的平台(操作系统)将某种高级

源代码一次性“翻译”成可被该平台硬件执行的机器码(包括机器指令或操作数),并包装成该平台所能识别的可执行程序的格式。这个转换过程称为编译。编译生成的可执行程序可以脱离开发环境,在特定的环境下运行。

编译型的语言是一次性的编译成机器码,所以可以脱离开发环境独自运行,而且运行速率较快。但是由于编译型语言被编译成特定平台的机器码,所以在移植的时候,需要把源码复制到特定的平台,同时也用特定平台的编译器重新编译。

例如现有的CC++FORTRAN,Pascal等高级语言都是编译型语言。

解释型语言:是指使用专门的解释器对源程序逐行解释成特定平台的机器码并且立即执行的语音。解释型语言通常不会进行整体性的编译和连接处理,解释型语言相当于把编译型中的编译和解释过程混合到一起同时完成。

解释型语言的工作流程就是每次执行解释型语言就必须进行编译,这样的运行效率低。但是解释型语言的跨平台比较容易,只需提供特定平台的编译器就可以了。现在的RubyPython都是解释行语言。

JAVA程序的运行机制和JVM

Java的语言比较特殊。Java语言编写的程序需要经过编译步骤和执行。可是在编译步骤并不会生成指定的平台的机器码,而是与平台无关的字节码(也就是*.class文件)。但是这些字节码不会被执行,需要用Java解释器来执行。因此我们可以认为Java是解释型和编译型的语言。也可以理解为Java既不是纯粹的编译型语言也不是纯粹的解释型语言。Java的执行过程需要进行先编译,后解释的两个步骤。如图:

Java语言中负责解释执行字节码文件的是Java虚拟机即JVMjavaVirtualMachine.JVM是可以运行Java字节码的虚拟计算机。所有平台上的JVM向编译器提供了相同的编程接口,而编程接口只面向虚拟机,生成虚拟机的能理解的代码,然后有虚拟机来解释执行。

JVM是一种抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存贮区域,它负责执行指令,还要管理数据,内存和寄存器。(关于JVM的问题这里先不过多的解释了)。

Sun公司指定了Java虚拟机规范在技术上规定了JVM的标准,除去定义了JVM的如下细节1指令集2寄存器3类文件格式4栈,5垃圾回收机制6存储区

了解了Java语言的含义和运行机制,在这里来看一下Java语言的特性以及Java语言的版本。

Java语言的特性主要体现在以下几个方面。

1简单性

Java语言的简单明了,容易掌握,而且是纯面向对象的语言。Java的简单主要体现在以下几个方面。

第一个方面是语法规则与C++类似,从某种意义上讲Java是从CC++发展而来,掌握C++,那么也很容易掌握Java。(不知道C,或者C++的朋友,可以去百度或者google搜一下)。

第二个方面是Java语言对于C或者C++做了提高。Java使用接口来代替多重继承,并取消了指针。

第三方面是Java提供了丰富的类库和API文档以及第三方的开发包。另外基于Java的开源项目。

2面向对象、

Java语言是一种纯面向对象的语言,Java提倡万物皆对象,Java语言最外部的数据类型是对象,所有的元素都要都过类和对象来实现。

3分布性

分布性分为操作性和数据分布。操作分布是指多个不同的主机布置相关的操作。而数据分布是指将数据分别放在不同的主机上,这些主机是网络的不同的成员。Java通过url来访问网络对象。

4可移植性

Java程序具有与体系结构无关的特性,从而使Java程序可是方便的移植到网络的不同的计算机中。同时Java的类库中也实现了针对不同平台的接口。

5解释性

运行Java程序需要解释器。任何移植了Java解析器的计算机或者其他设备都可以用Java字节码进行解析执行。

6安全性

Java中删除了C语言中的指针和内存释放等预防,有效的避免了非法的操作内存。Java程序代码需要进行校验,指针校验等很多的测试步骤才可以运行。所以未经Java允许的程序是不可能损坏系统的平台的。

7健壮性

Java将程序在编译和运行的错误进行检查并且消除错误。类型检查能帮助用户在开发早期发现出现的错误。

8多线程

多线程机制可以能够是应用程序在同一时间运行多个任务,而且相应的同步机制可以保证不同线程能够正常的共享数据。

9高性能

Java编译后的字节码在编译器速度比其他应用程序快

10动态性。

Java现在版本分为三个,分别为JavaSEJavaEEJavaME

其中JavaSE主要应用于桌面应用程序的开发,同时也是Java的基础,它包含Java语言基础,jdbcJava连接数据库),操作,i/o(输入或输出),网络通信,多线程等技术

JavaEEJava2的企业版,主要用来开发企业级分布式的网络程序。如电子网站和ERP(企业资源规划)系统,其核心是EJB(企业Java组件模型)。

JavaME主要应用于嵌入式系统开发,如手机,掌上电脑等移动通信电子设备。

Java中的提供了官方帮助文档APIJavaAPI是运行库的集合,它提供了一套访问主机系统资源的标准方法。API中提供了类库,常用的类的方法,GUI设计等。想学好Java语言,学会应用API是非常重要的。

在介绍了Java的相关历史之后,我们来看一下Java的开发都需要准备。在开发Java程序之前我们必须在电脑配置开发环境以及它的运行环境

开发Java程序我们需要安装Java的开发包JDKJDk的全称是JavaSEDevelopment

Kit,即是Java的标准开发包,是sun公司中提供一套专门开发Java应用程序的开发包,它提供了编译,运行Java程序所需各种工具和资源,包括Java的编译器,运行器,以及Java的类库。JDKJava的开发环境,在运行Java程序时必须提到另一个概念,Java的运行环境,Java的运行环境JREJRE的全称是JavaRuntimeEnvironment。在这里说一下JVMJRE的关系。JVMJ执行Java程序的虚拟机,但是在JRE中包含了JVMJVMJava程序的核心的虚拟机,但是在运行Java程序不仅仅需要JVM,还需要累加器,字节码校验器以及大量的Java的类库。所以JRE包含JVM,而且还包含Java程序的别的程序支持.

JDK的下载和安装

JDK的下载可以登录http://www.oracle.com/technetwork/java/javase/downloads/index.页面去下载,下载JDK的最新版本。目前Jdk的版本最新的JDK7,博客中有些支持是有JDK7的特性。

在这里就在介绍了JDK的安装过程了,如果不知道怎么安装的,可以去google或者百度一下,可以找到很多安装例子和视频。这里主要来说明一下我们在JDK中安装的三个组件。

Java的开发工具:这是Java的核心,包括了Java编译程序所必须的命令工具。

演示程序和示例:安装这个选项会向机器中安装Oracle所提供的大量的演示程序,示例,代码,这些代码是初学者的入门范例。

源代码:这个选项会安装JAVA的所有核心类库的源代码。

安装完成后我们可以如图下的许多东西。

这里介绍一下jdk目录下一下文件的含义。

Bin目录:该目录下是Java常用的各种工具命令。常用的javajavac等命令就在这个目录下。

Demo目录:该目录提供了jdk中的演示代码,供初学者使用。

Jre目录:安装了就是运行Java程序的必备的开发环境。

Lib目录:该路径存放的是jdk中实际执行的程序。

Sample目录:该路径下存放的是JDK提供的一些简单的代码演示。

Src.zip目录:该路径下存放的就是JAVA所以核心类库的源代码。

设置Path环境变量

在这里设置的Path变量是在window7系统上。

设置Java的环境变量的主要步骤,首先右击'我的电脑',找到"属性"菜单项,出现如图所示的对话框:

点击左侧的高级系统设置这一栏,会弹出如图对话框:

点击"环境变量",弹出环境变量的对话框,对话框中有系统变量和用变量。

在系统变量中新建系统变量"JAVA_HOME',新建的系统变量中的变量值是JDK的安装目录。本人用的是JDK中安装在的目录是"C:\ProgramFiles\Java\jdk1.6.0_23\jre\bin",之后点击确定就可以了。

下一步我们来修改环境变量PATH变量的值,在原文变量的前端中加入".;%JAVA_HOME%\bin",变量值,但是需要注意不要遗漏了最后的“;”,它是用来分割不同的变量值的。

JDK正确安装后以及环境配置之后,我们需要测试一下环境变量是否配置正确。点击“开始/运行”(或者菜单键+r),进入dos命令窗口,在命令窗口中输入“javac”命令,出现一下界面就说明环境配置正确了。如图

在介绍了java的开发环境一下。在下面和大家说一下我感觉在学习java找那个遇到的迷惑,以及我在复习时发现一些我们平时没有注意到的地方。

用户变量和系统变量的区别

在这里来解释一下用户变量和系统变量以及为什么设置用户变量。其实用户变量和系统变量没有体大的区别。用户变量只是对当前用户有效,系统变量对所有的用户都可以。为了减少自己做的修改对别人造成的影响。故设置用户变量。对于当前用户设置用户变量和系统变量效果都是相同的,只是系统变量设置在用户变量的签名,这样可能会出现这样的一种情况,在path路径中,用户变量和系统变量都有Java命令,这样的情况下,则优先执行系统变量中PATH的中的命令..

通过CLASSPATH来定义类

在我们以前学习JAVA的人,对于CLASSPATH一定不陌生。几乎在每一本的JAVA书中都有介绍CLASSPATH的设置,但对于CLASSPATH环境变量的作用都常常语焉不详。

实际上,如果使用JDK1.5以上的版本,完全可以不设置CLASSPATH环境变量,在我们学习的过程中即使不设置CLASSPATH变量也可以进行Java的编译和运行。

那么CLASSPATH的变量有什么用的,当我们使用“javaJava类名”命令来运行程序时,jre到哪里去搜索Java类呢?可能有人认为在当前路径下搜索啊。这个回答的是很正确的。但是在JDK1.4的版本中没有设计这个功能,这就意味着即使当前路径已经包含了类名,并在当前路径执行“Java类名”,系统一样找不到执行的Java类。

如果使用JDK1.4的版本以前的版本,则需要在CLASSPATH环境变量中添加一点“。”,告诉jre需要当前路径下搜索Java类。

除此之外,编译和运行Java程序还需要JDKlib路径下dt.jartool.jar文件中的Java类,因此还需要把这两个文件添加到classpath环境变量里。

因此,如果使用1.4以前的版本的jdk编译和运行Java程序,常常需要设置的CLASSPATH环境变量里值为.%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tool.jar(其中的JAVA_HOMEJDK的安装目录)

后来的JRE会自动搜索当前路径下的类文件,而且使用Java的编译和运行工具时,系统可以自动加载dt.jartool.jar文件中的Java类,因此不需要在设置CLASSPATH环境量。

当然在JDK1.5的版本上的版本也可以设计环境变量,一旦设置了环境变量,jre将会按该环境变量指定的路径啊,这意味着如果在classpath环境变量中没有设置“。”也就是没有包含的当前路径,jre不会在当前的路径下搜索Java类。

如果想运行Java程序时需要临时配置JRE搜索Java类的路径,则可以使用classpath选项,既是按照如下的格式运行Java命令:

java -classpath dirl;dir2;dir3...dirn; Java类
classpath是选项值中可以选择的一系列的路径,多个路径需要用;来分开。
如果在运行java程序指定了classpath变量的值,jre将严格按照classpath的路径来搜索java类,
不会在当前路径下来搜索java类,也就是说LCASSPATH变量设置不起作用。
但是如果想CLASSPATH环境变量设置的值也起作用,按照一下命令:
java -classpath %CLASSPATH%;.;dir1;dir2.....dirn java类
上面命令中通过 %CLASSPATH%来引用CLASSPATH变量的值,并在-classpath选项中添加一点,强制jre在当前的路径下搜索java类。
关于classpath变量来定义类这些资料是来源课本上,资源或许有不对的地方希望大家可以多多提出,帮助改正。
博文的次序或许有点乱,希望各位大神见谅、
参考资料 :疯狂的java讲义 java从入门到精通

分享到:
评论

相关推荐

    Java环境搭建图文

    自己在服务器上安装的jdk截图步骤,基本都是图片没有文字,环境变量写的很详细

    菜鸟学安卓---02之虚拟运行环境搭建

    安卓虚拟运行环境搭建,谢谢

    实验2 Java语言基础.doc

    本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...

    菜鸟学安卓 ---03之硬件运行环境搭建

    关于小米手机开发运行环境搭建

    java程序员由菜鸟到笨鸟

    《java程序员由菜鸟到笨鸟》 刚开始学习java时看过的一个学习资料。 其中包括开发环境搭建、面向对象、Javascript、设计模式、SSH、jquery、java虚拟机等内容。 设计内容较广,可以学习参考。

    eclipse环境搭建操作过程

    eclipse环境搭建 适合java开发初学者菜鸟級用的eclipse软件环境搭建详解步骤,创建project、导入jar包,jdk,tomcat

    经典Java入门教程超清晰PDF

    包含:Java语言基础,编程环境的搭建,数据和运算符等基本的语法规则,再讲到数组,字符串,类;最后讲解了一些高级的编程技术:对象,包,继承,接口,内部内,线程等。绝对经典的入门级的Java教程。

    SSH搭建详细步骤

    详细描述SSH框架搭建步骤,提供给新手参考

    菜鸟学安卓 ----01之环境准备

    基本安卓开发环境搭建,欢迎大家提意见,谢谢。

    Spring+Spring MVC+Mybatis框架搭建

    Spring+Spring MVC+Mybatis框架搭建,压缩包中有详细文档,表结构sql.前段采用jsp.请使用IDEA打开。

    手把手教你用Eclipse+TestNG搭建接口自动化测试框架

    对于未做过接口自动化和java菜鸟的我,搭建好框架才是迈出的第一步把群博里关于接口自动化的文章都看了一遍,都是关于测试过程中遇到的问题及解决方法,还没有框架搭建的博文。对于未做过接口自动化和java菜鸟的我,...

    Bootstrap和Java分页实例第一篇

     现在遇到了bootstrap的分页与Java后台结合起来的分页封装问题,对于我这个Java菜鸟来说,包装分页还没玩过。故此,在网上找了这个。觉得很不错,所以决定记录到博客里面。  还没有实践,决定写完博客去实践。在上...

    开源bbs源码java-noobbs:用SpringBoot、MyBatis搭建的简单论坛和博客!

    菜鸟 介绍 一个由kuangbbs改造而来的开源bbs 将很快部署! 主要依赖: SpringBoot 2.3.0 MySQL 5.7 MyBatisPlus 3.0.5 昂首阔步 fastjson 百里香叶 编辑器 层 引导程序 弹簧安全 代码生成器 教程 使用 sql 文件构建...

    java版飞机大战源码-Coding-Now:立即编码

    java版飞机大战源码 目录 涉及MapReduce、Hdfs、Hive、Kafka、ZooKeeper等hadoop生态圈组件 Coding Now 初衷 一是平时看的一些自己认为不错的文章总是很难整理,所以...Linux系统下开发环境搭建 含有如何在Deepin Linu

    C语言培训教程.doc

    缺点 入门太难了,学习环境难以搭建. 想精通更难,如果没有高人指点,几乎不可能. C提供的函数都只是简单的功能,但是,在实际应用中,需要程序根据自己丰富的应用 经验,预先做大量的封装工作。 C语言的应用还有...

    li708851221.github.io:LeeBlog-Jekyll

    代码笔记本lcwnote.com访问地址:本博客Fork自:博客主题使用:关于博客搭建可以参考 纯洁的微笑-文章博主刚转JAVA开发工作,作为一个JAVA菜鸟,正在努力学习,希望自己能在技术的道路上不断进步。博客现状:fock大佬...

    SpringBoot整合Shiro实现基于角色的权限访问控制(RBAC)系统简单设计从零搭建.zip

    IT毕业设计

    Android 零基础教程视频(新手,老手均适合)

    1.Java基础 2.环境搭建 3.Android基础知识 4.用户界面优化 5.系统功能 6.数据存储 7.网络通信 8.混合编程 9.Android测试 10.知识点精讲

    jdk1.8.0_112.zip

    Java jdk1.8 免安装版,通过配置环境变量来搭建。免去了安装的烦恼,希望大家喜欢奥!需要的请下载

    springcloud入门

    项目为学习用途搭建,主要包括以下模块: springcloud-register:服务注册中心 (eureka-server),提供服务注册与发现功能。 springcloud-config:远程配置中心,分为git与native两个版本,为producer提供远程配置。 ...

Global site tag (gtag.js) - Google Analytics