1、核心优势
跨平台
2、版本区别
- JAVA SE
标准版,定位在个人计算机上的应用。 - JAVA EE
企业版,定位在服务器端的应用。 - JAVA ME
微型版,定位在消费性电子产品的应用上。

3、运行机制
Java首先利用文本编辑器编写 Java源程序,源文件的后缀名为.java;
再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为.class;
最后利用虚拟机(解释器,java)解释执行。

4、JVM、JRE和JDK
- JDK用于开发Java程序,JRE是Java运行环境; JVM是JRE的子集,JRE是JDK的子集。
JVM(Java Virtual Machine)
就是一个虚拟的用于执行bytecode字节码的”虚拟计算机”。
定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。
JVM负责将Java字节码解释运行,边解释边运行
Java Runtime Environment (JRE)
包含:Java虚拟机、库函数、运行Java应用程序所必须的文件。
Java Development Kit (JDK)
包含:包含JRE,以及增加编译器和调试器等用于程序开发的文件。

5、代码注意事项
- 所有代码必须位于类里面。
- main方法是Java应用程序的入口方法。
6、变量分类
-
局部变量(local variable)
- 方法或语句块内部定义的变量。
- 生命周期是从声明位置开始到到方法或语句块执行完毕为止。
- 局部变量在使用前必须先声明、初始化(赋初值)再使用。
-
成员变量(也叫实例变量 member variable)
-
方法外部、类的内部定义的变量。
-
从属于对象,生命周期伴随对象始终。
-
如果不自行初始化,它会自动初始化成该类型的默认初始值。
实例变量的默认初始值如下
-
| 数据类型 | 实始值 |
|---|---|
| int | 0 |
| double | 0.0 |
| char | ‘\u0000’ |
| boolean | false |
- 静态变量(类变量 static variable)
- 使用static定义。
- 从属于类,生命周期伴随类始终,从类加载到卸载。
- 如果不自行初始化,与成员变量相同会自动初始化成该类型的默认初始值。
7、数据类型简介

注意:
- 整数
- 整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’
- 浮点数
- 默认是double类型
float类型赋值时需要添加后缀F/f - 浮点数存在舍入误差,数字不能精确表示。
如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。//案例1 float f = 0.1f; double d = 1.0/10; System.out.println(f==d); /*结果为false*/ //案例2 float d1 = 423432423f; float d2 = d1+1; if(d1==d2) System.out.println("d1==d2"); else System.out.println("d1!=d2"); /*输出结果为d1==d2*/
浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。
二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。
并不是所有的小数都能可以精确的用二进制浮点数表示。 - 避免比较中使用浮点数,需要比较请使用BigDecimal类
- 默认是double类型
- 引用类型
- 引用数据类型的大小统一为4个字节,记录的是其引用对象的地址
8、方法
-
参数
- Java中进行方法调用中传递参数时,遵循值传递的原则(传递的都是数据的副本):
- 基本类型传递的是该数据值的copy值。
- 引用类型传递的是该对象引用的copy值,但指向的是同一个对象。
-
重载
- 方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。
- 构成方法重载的条件
- 不同的含义:形参类型、形参个数、形参顺序不同都可以构成方法的重载
- 只有返回值不同不构成方法的重载
- 只有形参的名称不同,不构成方法的重载
9、参数传值机制
- 基本数据类型参数的传值
传递的是值的副本。 副本改变不会影响原件。 - 引用类型参数的传值
传递的是值的副本。但是引用类型(类、接口、数组)指的是“对象的地址”。因此,副本和原参数都指向了同一个“地址”,改变“副本指向地址对象的值,也意味着原参数指向对象的值也发生了改变”。
16万+

被折叠的 条评论
为什么被折叠?



