黑马程序员-----java基础一(之java配置)

------- android培训java培训、期待与您交流! ----------

黑马程序员-----java基础(一之java配置)

java概述:

1991Sun公司的James Gosling等人开始开发名称为 Oak的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;

1994年将Oak语言更名为Java

 

Java的三种技术架构:

JAVAEEJava Platform Enterprise Edition开发企业环境下的应用程序,主要针对web程序开发;

JAVASEJava Platform Standard Edition完成桌面应用程序的开发,是其它两者的基础;

JAVAMEJava Platform Micro Edition开发电子消费产品和嵌入式设备,如手机中的程序;

 

1JDKJava Development Kitjava的开发和运行环境,java的开发工具和jre

2JREJava Runtime Environmentjava程序的运行环境,java运行的所需的类库+JVM(java虚拟机)

3,配置环境变量:java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

环境变量的配置:

   1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk

                     path=%JAVA_HOME%\bin

   2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin

特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。

classpath的配置:

   1):永久配置方式:classpath=.;c:\;e:\

   2):临时配置方式:set classpath=.;c:\;e:\

 

注意:在定义classpath环境变量时,需要注意的情况

如果没有定义环境变量classpathjava启动jvm后,会在当前目录下查找要运行的类文件;

如果指定了classpath,那么会在指定的目录下查找要运行的类文件。

还会在当前目录找吗?两种情况:

   1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。

   2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。

   一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

 

4javac命令和java命令做什么事情呢?

   要知道java是分两部分的:一个是编译,编译是通过java自带的编译机JVM.java一个是运行。

   javac负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。

   java负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.

   一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.main函数也是一个线程。

小结:

这些知识使我知道了java语言是一种高级的编程语言。它与别的高级编程语言都是为了编写指令给计算机执行。都是需要将语言代码通过转译成为机器识别代码才能使计算机执行。然后我知道了java程序想要执行的话只需要JRE这个工具就可以了。JRE中有一个java自带的工具JVM可以解析.class文件中的代码将其转译成机器识别的二进制代码。由于不同操作系统平台上的JVM工具是不同的。Java语言也就实现了意义上的跨平台性。但这不是说程序员编写的java语言就都能在不同平台上运行。要多注意的是在编写.java文件的时候源代码中的某些特殊的字段在不同平台上的兼容性。比如Windows系统中的回车符是有\r\n

而在uinx系统平台下是由\n表示的。

在我起初在DOS命令行中运行java代码的时候,经常会出现找不到类名的错误提示,java.lang.ClassNotFoundException而我明明是有这个类文件的啊,这是因为java虚拟机在加载.java源程序的时候是根据当前DOS命令行路径进行的加载。这时候set pahtclass= 指定类文件路径就能解决了。还有会碰到NoClassDefFoundErrorException in thread "main"这样的异常提示。(public class类名与文件名必须相同)因为我的文件名和类名不一样导致的。这些都是很简单的小问题,可是对于刚接触的我是有些摸不着方向。这是由于对java编译运行规则理解不深导致的。我在这建议跟我一样刚接触java的人们不要走弯路,一定要从根本入手。把java的运行编译一定理解透,碰到问题才好使用排除法来找到问题点在什么地方。无从入手是多么痛苦的事情啊想想。

 ------- android培训java培训、期待与您交流! ----------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值