1.为了让平台对编程人员透明,写出可以在不同平台运行的相同源代码,Java 开发出了 JVM (Java 虚拟机)。
Java是一门跨平台的语言,一次编译,到处运行。
2.Java是一门面对对象的编程,就是一种将实例抽象画的过程。
3.数据类型分为基本数据类型和引用数据类型(类类型),
基本数据类型分为数值型,字符型,布尔型。
4.Java 在声明编程时候,必须准确定义变量的数据类型。
变量的生命周期在{}定义的范围内才具有效应。
5.直接量是指在程序中直接通过源代码的方式指定的值,有时也成为字面量。
int a = 5; 这里的 5 就是一个直接量。
6. String 类是一个不可改变类,意思就是在String 对象被创建出来后就不能被改变了。
当程序第一次使用某个字符串直接量时,Java 会使用常量池来缓存该字符串直接量。如果后面程序用到了这个字符串直接量, Java 会直接引用常量池字符串。在常量池中不会存在两个一样的字符串字面量值。
7.流程控制分为顺序结构,判断结构,循环结构。
判断结构又分为if结构,switch结构。、
循环结构分为while结构,do-while结构,for循环。
8.控制循环结构
break:在循环体中,使用 break 关键字跳出整个循环。
CONTINUE: 在循环体中,使用 CONTINUE 跳出本次循环,循环还会继续执行。
9.数组本身是引用数据类型(在栈内存中会存储其在堆内存中的引用地址)
10.静态初始化:显式的指定每个数组元素的值,由系统来决定数组的大小;
只需要指定数组的长度,通过程序动态的给每个元素赋值。
11.使用 FOREACH 一般情况下,值用作遍历数据,如果要对数组中元素进行修改,还是需要使用 FOR 循环带索引的方式进行,因为在上述的代码中,A 只是循环元素的一个副本。
12.基本数据类型地址存于栈区,类型的存储是一种地址的传递(本质上也是一种数值的传递),最终指向于堆内存中的同一地址,所以数值改变!
13.类的三大部件:成员变量、方法、构造器。
14.构造器是一个特殊的方法,方法名就是类名,没有返回值(和 VOID 是有区别的),构造器是类创建对象的唯一途径。
如果一个类没有显式的定义一个构造器,那么编译器会给这个类默认的定义一个没有参数的构造器;
如果显式的定义了一个构造器,那么编译器就不会给类定义默认的空参数构造器。
15.STATIC 关键字
用于修饰成员变量和方法,用 STATIC 修饰的成员变量后者方法是属于类的,而不属于该类的实例(对象)。通常把 STATIC 修饰的成员变量称为「类变量、静态变量」,方法称为「类方法、静态方法」。
16.出现在构造器中:引用该构造器正在初始化的对象;
普通方法中:调用该方法的对象。
17.成员变量:在类中定义的变量,用 STATIC 修饰的为类变量,非 STATIC 修饰的为实例变量。
局部变量按照定义的位置分为:
在方法内部定义的变量;
在代码块中定义的变量,比如有循环体内部、判断体内部;
形式参数:在方法定义的参数列表中定义的变量。
18.局部变量中是不可以加入修饰符的;
成员变量中的实例变量是对象被创建出来的时候初始化的,在对象没有引用的时候被销毁。、
19.成员变量中的实例变量描述人的年龄、性别、姓名这类;
局部变量只在方法体内或者代码块中有效。
20.PRIVATE
封装的目的:隐藏类方法实现的细节;限制对成员变量的不合理访问。
21.Getter 和 Setter
把属性定义为 private 类型,即私有,向外部暴露其 get 和 set 方法。
get 方法一般都是具有和属性数据类型一致的返回值,并且是没有形参的。
set 方法一般都是具有和属性数据类型一致的方法参数,返回值一般是 void。
22.通过构造器为成员变量定义初始化值,这也是构造器的最最重要的用途之一。、
23.Java中是单继承,每个子类只有一个直接父类。
24.方法重写(Override)后子类的访问权限要比父类的访问权限要大或者相等。
25.在子类中调用父类被覆盖的方法,可以使用super关键字。
26.Java引用类型变量有两种类型:一种是编译时的类型,一种是运行时的类型。两者的不一致造成了多态!
27.强制类型转换是把大的类型(父类)转换为小(子类)的类型,只可能发生在子类和父类的关系中
28.重写:发生在父类和子类之间,方法签名必须是一样的
重载:发生在本类中,方法名一样,但是参数列表不一样,重载可以是构造器的重载,也可以是方法的重载。
29.抽象类是无法实例化的,只能作为父类被继承使用;
抽象类的构造器只能用于被实现的子类的构造器调用;
abstract 是不能修饰成员变量的;、
30.抽象类作为多个子类的通用模板,子类在抽象的基础上进行扩充,子类必须要实现抽象类的抽象方法。
31. INTERFACE:接口
接口支撑多继承,使用 EXTENDS 关键字;
一个类是可以实现多个接口的,使用 IMPLEMENTS 关键字。
32.抽象类中可以定义普通方法,但是接口中都是抽象方法和静态变量;
在抽象类是可以定义静态方法的,接口中不能定义静态方法的;
在抽象中可以定义构造器的,但是在接口中是不存在构造器这个概念的;
一个类最多只能有一个直接的父类或者抽象类,但是可以有多个接口的实现。
33.在集合框架中,主要分为 COLLECTION 和 MAP 两大接口。
COLLECTION 中又分为 LIST (有序集合) 和 SET (无序集合)。LIST 和 SET 都是接口。
MAP 存储的 KEY-VALUE 结构。
34.常见的异常
NPE:NullPointerException 在调用对象属性或者方法的时候,对象其实是个 null,就会报此异常;
java.lang.ArrayIndexOutOfBoundsException:数组越界
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1:集合越界 |
|