JAVA------java概述

来源:互联网 发布:淘宝主图psd 编辑:程序博客网 时间:2024/05/14 16:20

Java起源和发展:

        第一代语言:机器语言

       第二代语言:汇编语言

        第三代语言:(结构化语言的诞生了)Fortran、Basic 、C语言等等。

                  3.5代语言:C++,C#,java

       第四代语言: 数据库用的sql语言。

    无论是那一代的语言其实表达的思路都是类似的。只是表示的方式不同。越高级的语言越屏蔽了底层的东西。

  2、java语言的基本特点

     2.1、简单易学(其实本人并不同意这点,java的东西十分繁琐,多,并不容易学习)。

                2.1.1、这里说java简单易学,其实是跟C进行比较。因为在C中有指针操作,没有把指针用好,并不能说自己是一个C程序员。而指针的运用很可能会产生,也很容易产生两种情况,动态内存分配没有释放,或者释放两次。比如说p和q指针同时指向一块malloc分配的内存,在使用完该内存后free(p),而不小心free(q)。这就会导致程序崩溃,“死掉”。如果没有释放内存,那么就会造成内存泄露,内存越用越少。这也是C、C++比较危险的原因。 而在java中只需要分配内存,并不需要释放内存。释放内存是java虚拟机的工作。当某一个不确定的时间,某一块内存变成“垃圾内存”,Java虚拟机把内存释放掉。程序员不会接触到释放内存的情况。写java虚拟机的才是大牛。(当一块内存不再有变量指向的时候就认为是“垃圾内存”)。

               2.1.2、java中有丰富的类,可以帮助我们很方便的开发。

               2.1.3、java是一种完全面向对象的语言,支持继承、多态等等。c是纯面向过程语言。 

     2.2、安全性高,这点是同C/C++进行比较  

            2.2.1、内存问题。java提供垃圾回收机制。

            2.2.2、检查语法的敏感性。在C中 int  i=6.6;可以编译通过,而在java中是不会通过。

     java 去掉了C和C++中影响程序健壮性的部分,是程序更加安全。指针、内存申请和释放(其实底层也是用指针实现)。/*Triangle.cpp------求三角形的面积和周长*/

     2.3、跨平台。其实本质上是不同的操作系统安装了不同的Java 虚拟机。

          2.3.1、因为互联网的兴起才使java语言在当今的语言编程领域占据重要的地位,最主要的原因就是跨平台的原因。sun公司编写了不同操作系统上不同的java虚拟机,使不同的计算机都可以运行同样的java程序,而且保证程序的运行结果高度一致。

          2.3.1、java作为一种网络语言,其源代码.java文件编译成中间代码字节码class文件,然后由java虚拟机翻译成该机器上所支持的机器语言,达到“一次编译,到处执行”的结果。而C语言不是这样的,他直接由.c文件编译连接成.exe文件,导致了,只能针对同类型的操作系统和硬件类型的机器才能运行。

3、小例子:分别用C语言和java语言求三角形的周长和面积!

      求面积的公式:p=(a+b+c)/2   s=sqrt(p*(p-a)*(p-b)*(p-c))。

          C语言实现:

#include <stdio.h>
#include <math.h>

int zhouchang(int a,int b,int c);
double area(int a,int b,int c);

int main(void)
{
int a;
int b;
int c;

a=3;
b=4;
c=5;
printf("%d %lf\n",zhouchang(a,b,c),area(a,b,c));
return 0;
}
int zhouchang(int a,int b,int c)
{
return a+b+c;
}
double area(int a,int b,int c)
{
double p=1.0*(a+b+c)/2;

return sqrt(p*(p-a)*(p-b)*(p-c));
}

        JAVA实现:

  /*Triagle.java--------三角形的面积和周长的求解*/
class Triangle_O
{
int a;
int b;
int c;

int zhouchang()
{
return a+b+c;

}

double area()
{
double p=(a+b+c)/2;
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
}
class Triangle
{

public static void main(String [] args)
{
Triangle_O s=new Triangle_O();
s.a=3;
s.b=4;
s.c=5;
System.out.printf("%d %f\n",s.zhouchang(),s.area());
}
}

 

前面提到,c语言是纯面向过程的语言,而java则是面向对象的语言,单纯的说很简单能记住。但是实际意义是什么呢?我们就从这这个事例中简单的介绍一下。

c语言的思想是数据和操作(方法)分离,一只手取数据,一只手进行数据操作。这样的逻辑其实也很合理,合理的原因是因为我们大部分编程人员都是从C语言开始的更容易接受这样的数据操作方式。实际上我们以数据为中心。

java的思想思想是以事物(对象)为中心。认为就应该有三角形这样的数据类型。而这个数据类型里面就应该有放三边的长度的地方,三角形自己就知道自己的周长面积。类就是构造这个数据类型的模版,当需要一个三角形的时候,直接来一个真实的三角形(new Triangle_O())。从这个三角形中得到周长和面积。因为三角的三边给了以后他自己最清楚自己是什么样子。

              以上均是参考郝斌老师------------自学java视频        

0 0
原创粉丝点击