Java学习汇总

1.什么是Java
Java是一门面向对象编程语言,


2.Java的运行原理
即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。


编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode)(class文件的内容),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。


Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。


3.面向对象编程
在完成一件事情时,会将事情中的实体对象抽象出来,形成「类」的概念,事情的完成是通过类的对象之间发生关系去实现的。


4.类和对象
类是一群对象的抽象,类是对象的特征母板
对象是类的具体实现


5.Java的数据类型
Java的数据类型主要分基本数据类型和引用数据类型两大类
基本数据类型分为整数型、浮点型和布尔型
整数型:byte、short、int、long
浮点型:float、double
布尔型:Boolean


6.变量的生命周期
变量的生命周期在{}定义的范围内。


7.比较运算符
<,>,<=,>=,!=,==


8.逻辑运算符
运算符两边必须是 boolean 类型的变量、常量、表达式
与 && 或者 || 非 !
与:只要有一个假就是假
或者:只要有一个真就是真


9.流程控制包括顺序结构、判断结构、循环结构
程序是一个自上而下运行的过程。
Java 中的分支选择结构有 if 结构、switch 结构
循环结构:循环语句可以在满足循环条件的情况下,反复执行某一段代码。
被重复执行的代码叫做循环体。


10.数组结构
数组是编程语言中最常用的一种数据类型。可以存储多个数据。
数组的要点


存放的数据是相同的数据类型
数组的长度在定义时就确定了大小,数组是不可变长度的,或者说叫定长
数组中可以存放任意的数据类型(包含基本数据类型、引用数据类型、数组)
数组本身是引用数据类型(在栈内存中会存储其在堆内存中的引用地址)
定义语法


type[] 变量名; // 强烈建议用这种命名
type 变量名[]; // 只要知道就可以


数组的初始化
在 Java 语言中,数组必须先被初始化,才能被使用。所谓的初始化,就是在内存中为数组元素分配空间,并为每个元素赋予初始值。


静态初始化:显式的指定每个数组元素的值,由系统来决定数组的大小;
动态初始化:只需要指定数组的长度,通过程序动态的给每个元素赋值(即由系统为每个数组元素分配初始值)。


11.面向对象编程
类: 是一种自定义的数据类型。有时把这种数据类型也叫做「类类型」或者「引用数据类型」。「引用」就是内存地址的意思。


对象:通过类创建的变量,或者叫类的实体。


类的三大部件:成员变量、方法、构造器
构造器:构造器是一个特殊的方法,方法名就是类名,没有返回值(和 void 是有区别的),构造器是类创建对象的唯一途径。如果一个类没有显式的定义一个构造器,那么编译器会给这个类默认的定义一个没有参数的构造器。
如果显式的定义了一个构造器,那么编译器就不会给类定义默认的空参数构造器。
成员变量:语法:


[修饰符] 数据类型 成员变量名 [= 默认值];
修饰符:可以省略,也可以是 public protected private static final,其中 public protected private 只允许出现一个。
数据类型:可以是任意的数据类型(包含基本数据类型、类类型、数组类型)
默认值:如果是类类型的,没有定义默认值,那么成员变量的值为 null,如果是基本数据,没有定义默认值,那么成员变量的值是有意义的,比如 int 就是 0,boolean 就是 false。
方法:语法:
[修饰符] 方法的返回值数据类型 方法名(形参列表) {
    方法体语句;
}
修饰符:可以省略,也可以是 public protected private static final abstract,其中 public protected private 只允许出现一个
返回值:可以是数据类型(不要忘了自定义的数据类型),也可以是 void,如果定义了返回值,那么就必须在 return 后面跟随该类型的值或者对象。


方法名:一般首字母小写,也适用驼峰命名法则,一般是动词在前,名词在后,不易过长
形参列表:定义方法可以接受的参数,由 0-N 个 「数据类型 参数名」通过 「,」 组合的。一旦方法指定了形参,那么在调用的时候就必须一一对应的传入实参。


static 关键字:用于修饰成员变量和方法,用 static 修饰的成员变量后者方法是属于 类 的,而不属于该类的实例(对象)。通常把 static 修饰的成员变量称为「类变量、静态变量」,方法称为「类方法、静态方法」


静态的成员是不能访问非静态成员的;


静态成员之间是可以互相访问的。
static String teacher = "陆老师";


this关键字:Java 中使用 this 关键字,指向调用该方法的对象。根据 this 所在的位置,大致分为两种:


出现在构造器中:引用该构造器正在初始化的对象;
普通方法中:调用该方法的对象。
this 用于在类定义中,获取当前对象的属性,或者调用当前对象的方法。


方法中参数传递的机制
参数的传递都是「值传递」,在调用方法的时候,参数会被创造出一个副本,原本的值是不会改变的。
基本数据类型,也称为「值类型」。
如果方法中传入的是基本数据类型,那么原变量的值是不会发生改变的,如果方法中传入的是引用数据类型(即类类型),那么传入方法中,如果对对象的相关属性进行了修改,那么原对象的相关属性也会发生改变。


12.隐藏和封装
封装是面向对象的三大特性之一
封装是隐藏成员变量,暴露方法来限制用户的不合理访问


13.继承
继承可以提高软件的复用性,
Java的继承中是单继承,子类只能有一个父类
子类能够继承父类的信息包括:
没有使用private修饰符修饰的成员变量和方法,子类都能够继承
子类重写了父类的方法,则父类的方法会被隐藏,隐藏的方法或者成员变量可以通过super关键字进行访问
引入super关键字的原因是可以访问被隐藏的成员变量和属性,而且super只能在子类的方法定义中使用。


14.多态
Java引用类型变量有两种类型:一种是编译时的类型,一种是运行时的类型。
编译的类型是由声明变量的时候决定的。
运行时类型由实际赋给该变量的对象决定。
如果运行时的类型和编译时的类型不一致就会出现所谓的多态。


首先编译时类型和运行时类型是一种父类和子类的关系。
多态最常用的场景就是子类重写父类的方法后,如果引用变量的类型为父类,而对象为子类,如果引用类型调用重写方法,会去执行子类定义的实现。


引用类型的强制类型转换


编写Java程序时,引用变量只能调用他编译时的方法,而不能调用其运行时类型的方法。如果你必须要调用其运行时的类型,则需要进行强制类型转换。


强制类型转换是把大的类型转换为小的类型。


在我们的引用数据里,大的类型是父类,小的类型是子类。


只可能发生在子类和父类的关系中


15.包装类
在Java中,基本数据类型本身不是对象,但是为了面向对象设计语言的规范使用,Java对八大基本数据类型进行了包装,提高了相应的构造器,方法以供使用。
byte:Byte、short:Shert、int:Integer、long:Long、float:Float、double:Double、char:Character、boolean:Boolean。


16.抽象类
在某些情况下,父类中只知道子类中应该包含什么样的方法,但是无法知道其具体的实现内容。
抽象方法和抽象类都是使用 abstract 修饰的


如果在一个类中定义了抽象方法,那么这个类就是抽象类;
抽象类是无法实例化的,只能作为父类被继承使用;
抽象类的构造器只能用于被实现的子类的构造器调用。


17.接口
如果在一个类中,一个实现的方法都没有,或者都是抽象方法,那么,这样的类,成为接口。
接口定义使用 interface 定义
接口是抽象类一样,是不能被实例化的,但是接口可以用于声明引用类型的变量,当使用接口来声明变量时,该变量的运行时类型必须是该接口的实现类。
接口和抽象类的相同点是都不能被实例化,位于继承树的顶端,是用于被其他类继承或者实现的;
都可以包含抽象方法,子类都必须要实现抽象方法;
不同点是抽象类中可以定义普通方法,但是接口中都是抽象方法和静态变量;
在抽象类是可以定义静态方法的,接口中不能定义静态方法的;
在抽象中可以定义构造器的,但是在接口中是不存在构造器这个概念的;
一个类最多只能有一个直接的父类或者抽象类,但是可以有多个接口的实现


18.集合框架
在集合框架中,主要分为 Collection 和 Map 两大接口。
在 Collection 中又分为 List (有序集合) 和 Set (无序集合)。List 和 Set 都是接口。
Map 存储的 Key-Value 结构。
集合框架存储的元素可以是不定长的,即可以任意的添加,但是数组在定义的时候就确定了长度。实际开发中,对于同类型数据的结构,一般使用 Collection 结构会较多。


List:是实际开发中用的最多的一种数据结构,存储的单个元素,使用泛型取强制约束List中存放的是一直的数据类型。


19.异常处理
如果不处理异常,一旦在出现异常的地方,程序会被直接终止,不再往下运行。
我们使用try catch来处理异常。
throw:抛出异常。
常见的异常
NPE:NullPointerException 空指针异常
Java lang:ArryayLndexOutOfBoundsException 数组越界异常
Java lang:IndexOutOfBoundsException: Index: 1, Size: 1:集合越界


20.JDBC
JDBC:(Java Database Connectivity) Java数据库连接技术。
JDBC操纵数据库步骤
1.选择连接数据库,加载数据库驱动
2.连接数据库
3.创建数据库查询
4.获取查询结果
5.关闭查询和连接

你可能感兴趣的:(Java学习汇总)