黑马程序员--Java概述

来源:互联网 发布:淘宝手机版怎么贷款 编辑:程序博客网 时间:2024/05/21 00:46
<------- android培训、java培训、期待与您交流! ---------->


Java是于 1995年由Sun公司推出的一种极富创造力的面向对象的程序设计语言,它是由Java之父之称的Sun研究院院士James Gosling博士亲手设计而成的,并完成了Java技术的原始编译器和虚拟机。Java最初的名字 OAK,在1995年被重命名为Java,正式发布。它是一种跨平台的程序设计语言,可以运行在任何平台和设备上,并且已经成为Internet中最具有影响力、最受欢迎的编程语言之一。


Java的三种技术架构:

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

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

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


 

1、JDKJava DevelopmentKitjava的开发和运行环境,java的开发工具和jre


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


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


环境变量的配置:


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


                       path=%JAVA_HOME%\bin


   2):临时配置方式:setpath=%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的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。


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




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


   要知道java是分两部分的:一个是编译,一个是运行。


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

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


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


5、Java语法基础



1)关键字:其实就是某种语言赋予了特殊含义的单词。


   保留字:其实就是还没有赋予特殊含义,但是准备日后要使用的单词。


2)标示符:其实就是在程序中自定义的名词。比如类名,变量名,函数名。包含0-9a-z$_


   注意:


   1)不可以数字开头


   2)不可以使用关键字


3)常量:是在程序中的不会变化的数据;


4)变量:其实就是内存中的一个存储空间,用于存储常量数据;


   作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间;


   特点:变量空间可以重复使用;



  变量空间的开辟需要什么要素呢?


   1)这个空间要存储什么数据?数据类型。


   2)这个空间叫什么名字啊?变量名称。

(5)数据类型:

   3)这个空间的第一次的数据是什么? 变量的初始化值。



5)数据类型:

    


6)数据类型转换:


    

自动类型转换(隐式类型转换)

例如:

int类型的变量占4个字节,当byte类型的变量与其相加的时候,首先会将byte类型的变量自动转化为4个字节的int类型,然后再进行加法操作。



强制类型转换(显式类型转换)



例如:



byte类型的变量提升为int类型与int类型的常量200相加后,结果依然是int类型。再赋值给byte类型,当然会出现损失精度的错误。


解决方法:

进行强制类型转换,也就是将占4个字节的int类型值,再强硬存储到占1个字节的byte变量中。



结果为-53的原因是,200+3结果是203,换算成占1个字节空间的二进制也就是11001011


由于首位为1,所以是负数,除符号位外,其余部分取反加1,得1,0110101,即-53


(7)运算符:

         1)赋值运算符:= , +=, -=, *=, /=,%=

         2)比较运算符:  

               

        3)逻辑运算符:

              

        4)位运算符:

               

        5)三元运算符:

          格式:
              (
条件表达式) ?表达式1 :表达式2


         如果条件为true,运算后的结果是表达式1
         如果条件为false,运算后的结果是表达式2

 (8)基本语句

         1)条件语句


            格式:

             if( 条件表达式 )


                       {
                         执行语句;
                       }
                         else

                       {
                         执行语句;
                       }

         2)选择switch语句


            格式:


            switch(表达式)
            {
              case 取值1:
                      执行语句;
                 break;
              case 取值2:
                      执行语句;
                break;

                …...
               default:
                     执行语句;
               break;
            }


switch语句特点:
1、switch语句选择的类型只有四种:byte,short,int,char。
2、case与default没有顺序。
先执行第一个case,没有匹配的case执行default
3
、结束switch语句的两种情况:遇到break执行到switch语句结束。
4
、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。



        3)循环语句

           关键词:while,dowhile,for


while语句格式

while( 条件表达式 )
{
     执行语句;
}


do while语句格式

do
{
     执行语句;
}while( 条件表达式 );


do while语句的特点:无论条件是否满足,循环体至少执行一次。
while
如果条件不满足,循环体一次都不会执行。


For语句格式

for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
    
执行语句;(循环体)
}


for里面的三个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复整个过程,直到条件不满足为止。












0 0