Java学习笔记(一)

1.1、Java的历史

  Java语言是sun公司开发一门用于像电视盒这样的消费类电子产品的小型计算机语言,1995年5月23日,Java语言正式诞生。1996年1月,第一个JDK-JDK1.0诞生,1999年6月,Sun公司发布Java的三大版本:标准版(Java SE)、企业版(Java EE)、微型版(Java ME),2009年4月20日Oracle宣布收购Sun。

1.2 Java的特点

  Java的特点是平台无关性、面向对象、多线程、自动内存管理。

  Java的开发环境与C语言不同,C的运行通过源文件(.C)编译直接得到可执行文件(机器语言),所以在不同系统无法通用。而Java的运行时通过源文件(.java)编译得到字节码(.class),再在JVM上运行.class。也就是编译期和运行期。不同系统对应不同的JVM,实现Java跨平台运行。

1.3 JDK结构

  JDK是开发工具集,包含JRE和Java相应的开发工具包,包含Java、javac、jar、rmic...命令和JRE。JRE是Java基本运行环境,包含系统API库和系统类库以及JVM。JVM即Java虚拟机,当我们运行一个程序时,JVM 负责将字节码转换为特定机器代码,JVM 还提供了内存管理/垃圾回收和安全机制等。

1.4 IDE

  IDE = Integrated Development Environment ,Java常用的IDE有Eclipsei、IDEA等。

1.5 Java开发环境配置

  Java开发环境配置可以设置环境变量PATH指向JDK的bin文件夹,这样就可以在任意目录下运行JDK下面的工具。

 

2.1 Java的基础语言要素

  1)标识符:给类、方法变量起的名字

    A、必须以字母或下划线或$符开始,其余字符可以使字母、数字和下划线。

    B、只有两个特殊字符_和$。不允许有其他特殊字符。

    C、标识符不能包含空格。

    D、区分大小写。

    E、不能包含关键字。

   2)关键字:只有系统才能用的标识符

    A、true、false、null不是关键字,是字面量。

    B、main不是关键字,但是是一个特殊单词,可以被JVM识别,主函数是固定格式,作为程序的入口。

2.2 八种基本类型

  1)四种整数类型(byte、short、int、long)。

    byte:8位,用于表示最小数据单位,如文件中的数据,-128~127。

    short:16位,很少用,-32768~32767。

    int:32位,最常用,-2^31~2^31-1,整数字面量默认都为int类型。

    long:64位,次常用,定义long型数据后面加L或l。

    小于32位的变量,都按int结果计算,强转符比数学运算符优先级高。

  2)两种浮点数类型(float、double)

    float:32 位,后缀F或f,1位符号位,8位整数,23位有效尾数。

    double:64位,最常用,后缀D或者d,1位符号位,11位整数,52位有效尾数。

  3)一种字符类型(char)

    char:16位,是整数类型,用单引号括起来的一个字符,使用Unicode码代表字符,0~65535。

  4)一种布尔类型(boolean)

    boolean:只有true和false两个值。

  5)类型转换:

    自动转换:byte -> short(char) -> int -> long -> float -> double 。

    强制转换:会损失精度,产生误差,小数点以后的数字全部舍弃。容易超过取值范围,溢出。

2.3 引用数据类型

  引用数据类型建立在基本数据类型的基础上,包括数组、类和接口。引用数据类型是由用户自定义,用来限制其他数据的类型。(Java语言中不支持C++中的指针类型、结构类型、联合类型和枚举类型。)

  引用类型还有一种特殊的null类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。(实际上,引用类型变量就是一个指针,只是Java语言里不再使用指针这个说法。)

  空类型(null type)就是null值的类型,这种类型没有名称。因为null类型没有名称,所以不可能声明一个null类型的变量或者转换到null类型。

  所有引用类型的默认值都是null。

  一个引用变量可以用来引用任何与之兼容的类型。

 

2.4 基本数据类型和引用数据类型的区别

  基本数据类型 在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

 

posted @ 2021-03-17 23:16  进取的2ke  阅读(71)  评论(0)    收藏  举报