java学习体系及java基础知识

时间:2021-01-05 20:02:15

 Java的概述

 一、主要的特点有:

   01、简单性。Java略去了运算符重载、多重继承等概念。

   02、面向对象。

   03、分布性。Java是面向网络的语言。可以通过自身的的类库可以处理TCP/IP协议等等。

   04、鲁棒性。这个性能的意思主要是说Java这门语言的自我纠错能力很强。

   05、安全性。在Java中,去掉了对指针的支持,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了人为使用诸如特洛伊木马等手段来访问对象的私有成员。

   06、体系结构中立。主要是说Java编译出来的软件可以在任何的平台上面运行。

   07、可移植性。

   08、解释执行。Java字节码本身就可以对自己进行解释。

   09、高性能。

   10、多线程。多线程机制使应用程序能够并行执行,并且可以保证准确性,从而提高了效率。

   11、动态性。对于在Java中使用多重继承。Java使用的方式是通过接口来支持,这样的灵活性更高。


   
二、下面来说一说JavaApplet这个东东。

   相信很多初次接触Java的朋友来说,根本就不知道JavaApplet到底是一个什么东东。不要急,其实简单的说,JavaApplet就是Java的一个小的应用程序。上面我们已经看到了Java的一些特点,而且JavaApplet又是基于Java语言的,所以说,JavaApplet是动态、安全、跨平台的网络应用程序。


   
三、Java包含了丰富的类、库。

   Java之所以要提供大量的类,目的就是为了满足网络化、多线程和面向对象系统的需要。


   
四、我们来看看JavaCC++之间的一些区别和联系。

   对于变量声明、参数传递、操作符、流控制等,Java使用了和CC++一样的习惯。但同时也摒弃了后两者中一些不合理的东西。

   1、全局变量

   Java中对于全局变量进行了更好的封装,这样可以有效的避免的在C或者C++中因为在类外定义全局变量而引起的系统崩溃。

   2goto语句

   Java不支持goto语句,是通过其他的例外的处理语句来代理goto语句,比如:trycatchfinal等,这样可以使程序的可读性和结构化更加的合理。

   3、指针

   CC++中,指针是最灵活的数据类型,甚至可以说指针就是C或者C++的灵魂,但是在指针灵活的同时,它也是CC++中最容易产生错误的的数据类型。

   4、内存管理

   C中。对于内存的分配和释放,用的是:malloc()free()两个库函数来实现的。
   
C++中。对于内存的分配和释放,用的是:newdelet两个运算符来实现的。
   
Java中。对于内存的管理,用的是:newJava会在程序执行的过程中自动的收集垃圾文件,避免了因为内存的管理不当而引起的系统崩溃。

   5、数据类型的支持

   Java中,各个数据类型在内存占用的空间永远都是一样的,所以这个就保证了Java的平台无关性。

   6、类型转换

   Java中,要进行数据类型的转换的时候,Java会先进行数据类型相容性检查,以防止不安全的转换,而CC++则是通过指针来进行转换的,这样很容易带来不安全性。

   7、头文件

   Java不支持头文件。

   8、结构体和联合体

   Java中不包含结构体和联合体,这些东西统统包含在类里面。

   9、预处理

   Java中不支持宏,通过关键字“final”来声明一个常量。

   五、接下来用具体的例子来学习一下Java这门语言。

   1-1

   public classHelloWorldApp                        //an application
    {
        public static void main ( Stringargs [ ] )
        {
           System.out.println ( " Hello World ! " ) ;
        }
    }


   本程序的输出结果是:HelloWorld !

   在这个程序中,首先是使用了保留字class来声明一个新的类,且名字是HelloWorldApp。它是一个公共的类(public)。定义了一个main方法,并且设置成public,在Java编程中,在每一个类里面都可以有许多个方法,但是对于publicmain方法,则只能有一个。static说明了main是一个类方法,并且作为一个应用程序来说,类中的main方法都必须像上面的这个格式来定义。在Java解释器没有生成任何实例的情况下,是以main作为程序入口的。在main方法中的“System.out.println( ... )”C语言中的“printf (... )”以及C++语言中的“cout<<”的作用是一样的,都是作为输出使用。还有就是“//”后面的内容是作为程序解释使用。

   现在可以运行该程序了。

   首先,可以把它放到一个叫做“HelloWorldApp.java”的文件夹中,这里,文件名应该和类名一样,因为Java解释器要求公共类必须放在与其同名的文件中。

   然后,就可以进行编译了:

   C:/>javac HelloWorldApp.java  (回车)

   编译的结果是生成字节码文件HelloWorldApp.class

   最后,用Java解释器来运行该字节码文件:

   C:/>java HelloWorldApp

   这样,结果就在屏幕上面显示出来了,内容是:“HelloWorld !”

   下面,我们再来看一个例子,例1-2

   import  java.awr.* ;
    import  java.applet.* ;
    public  class  HelloWorldApplet extends  Applet
    {
          public  void paint ( Graphics  g)            //an  applet
          {
               g.drawString ( " Hello World ! " , 20 , 20 ) ;
          }
    }


   这是一个简单的Applet(小应用程序)。

   首先,用import语句输入java.awrjava.applet下所有的包,使得该程序可能使用这些包中所定义的类,它类似于CC++语言中的#include语句。

   然后,声明一个公共类HelloWorldApplet,并且用extends指明它是Applet的子类。在这个类中重写了父类Appletpaint()方法,其中参数gGraphics类。在paint方法中调用g的方法drawString(),表示在坐标 ( 20 ,20 ) 处输出字符串“HelloWorld !”

   要注意的是:这个坐标是用象素点来表示的,不是用厘米或者毫米来表示的。

   下面就开始运行。由于这个程序没有实现main方法,这是Applet与应用程序Application的区别之一。为了运行该程序,我们还是要把踏放到文件HelloWorldApplet.java中去,再进行编译。

   C:/>javac HelloWorldApplet.java

   这样,我们得到一个字节码文件HelloWorldApplet.class。由于Applet中没有main方法作为java编译器的入口,所以我们必须编写一个HTML文件,来把该文件嵌入其中,然后用appletviewer来运行,或在支持java的浏览器上面来运行。它的HTML文件如下:

   <HTML>
          <HEAD>
               <TITLE> An Applet </TITLE>
          </HEAD>
          <BODY>
               <applet code="HelloWorldApplet.class" width=200 height=40>
               </applet>
          </BODY>
    </HTML>


   其中,<applet>标记用来启动HelloWorldAppletcode指明字节码所在的文件,widthheight指明applet所占的大小,我们把这个HTML文件存入Example.html,然后运行:

   C:/>appletviewer Example.html

   这时,屏幕上面就会弹出一个窗口,其中显示Hello World !

   从上面的例子可以看出来,Java程序是由类构成的,对于一个应用程序来说,必须有一个类中定义了main方法的,而对于applet来说,它必须作为Applet的一个子类。在类的定义中,应该包含变量的声明和类中方法的实现。

   java数据类型

java数据类型划分

java学习体系及java基础知识

分为两大类型:

               1)基本数据类型:类似于普通的值。

               2)引用数据类型:传递的是内存的地址。

浮点类型实际上就是表示小数。

java基本数据类型

java学习体系及java基础知识

数据的溢出

当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生絮乱,且不是预期的运行结果。

例如:求出整型的最大值

public class T {  
    public static void main(String[] args) {  
        int max = Integer.MAX_VALUE;  
        System.out.println("整型的最大值为:"+max); //整型的最大值为:2147483647  
    }  
}  
现在对求的最大值进行加法操作

public class T {  
    public static void main(String[] args) {  
        int max = Integer.MAX_VALUE;  
        System.out.println("整型的最大值为:"+max);       //整型的最大值为:2147483647  
        System.out.println("整型的最大值+1: "+(max+1));  //整型的最大值+1: -2147483648  
        System.out.println("整型的最大值+2: "+(max+2));  //整型的最大值+2: -2147483647  
    }  
}  
如果现在要想避免数据的溢出,可以采用扩大数据类型的方式。int-->long

public class T {  
    public static void main(String[] args) {  
        int max = Integer.MAX_VALUE;  
        System.out.println("整型的最大值为:"+max);       //整型的最大值为:2147483647  
        System.out.println("整型的最大值+1: "+(max+1));  //整型的最大值+1: -2147483648  
        System.out.println("整型的最大值+2: "+(max+2));  //整型的最大值+2: -2147483647  
        System.out.println("整型的最大值+2: "+((long)max+2));  //2147483649  
    }  
}  

字符类型

    字符类型在内存中占有2个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待,

    因此,严格说来,字符类型也算是整数类型的一种。

public class T {  
    public static void main(String[] args) {  
        char ch1 = 'a';     //字符是使用''括起来的数据  
        char ch2 = 97;      //通过数字定义字符变量  
        System.out.println("ch1 = "+ch1);  
        System.out.println("ch2 = "+ch2);  
    }  
} 

常用的转义字符

java学习体系及java基础知识

浮点数类型与双精度浮点数类型

    在日常生活中经常会使用到小数类型的数值,如身高,体重等需要精确的数值时,整数就不能满足程序设计者的要求了。在数学中,这些带有小数点的数值

   称为实数,在java中,这种数据类型称为浮点数类型(floag),其长度为32个字节,有效范围为-3.4E1038到3.4E1038。当浮点数的表示范围不够大的时候

   还有一种双精度(double)浮点数可供使用。双精度浮点数类型的长度为64个字节,有效范围为-1.7E10308到1.7E10308

 

在java 中一个数字或者一个小数实际上也都是存在默认类型的:

               小数(1.1,1.2)的默认类型是double类型

               整数(1,2,3)的默认类型是int类型

 

布尔类型

     布尔(boolean)类型的变量,只有 true(真)和false(假)两种

 

基本数据类型的默认值

java学习体系及java基础知识