Java基础知识点
- Java的特点
Java是简单,面向对象,分布式,安全,稳定,跨平台,可解释,多线程,动态的语言,Java是一种编程语言,一种开发环境,一种应用环境,一种部署环境 - Java虚拟机的功能
(1)通过ClassLoader寻找和装载class文件
(2)解释字节码成为指令并执行,提供class文件的运行环境
(3)进行运行期间垃圾回收
(4)提供与硬件交互的平台 - Java代码安全性
(1)编译时的错误检验
(2)类装载检查,把本机上的类和网络资源类相分离,在调入类的时候进行检查
(3)字节码校验
(4)沙箱机制,限定访问权限 - Java代码的运行过程
(1)编写代码
(2)编译
(3)类装载 通过类装载器装载CLASS文件
(4)校验代码 由字节码校验
(5)解释 由解释器将字节码转换成机器码
(6)运行 - 搭建Java开发环境
(1)下载安装JDK 然后配置环境
(2)配置PATH 操作系统运行环境的路径
(3)配置CLASSPATH Java运行应用程序时所需要的类包的路径
(4)配置JAVA_HOME 供需要运行JAVA的程序使用 - 定义一个完整的JAVA文件代码
package 当前类所在位置
import 当前类运行时所需要的包或类
public class 类名{
属性定义;
方法定义;
构造方法定义;
public static void main(String[] args){ 程序入口
语句;
}
} - 注释
(1)//单行注释
(2)/* / 块注释
(3)
/*
*文档注释
*/ - 标识符
是赋予变量,类,方法的名称
规则:首字母只能以字母,下划线,$开头,不能是关键字,区分大小写 - Java的基本数据类型
byte->short char->int->long->float->double
boolean - 什么是实例变量,局部变量,类变量,final变量
(1)实例变量:类中定义的变量,即类成员变量,如果没有初始化,会有默认值
(2)类变量:用static修饰,可以用类名调用,也可以用类的实例调用
(3)局部变量:在方法内定义变量即为局部变量
(4)final变量:也就是常量,一旦被定义,不可以在修改的变量 - a++,++a
a++:先使用,后+1
++a:先+1,在使用 - instanceof、?:、&、&&
instanceof:用来判断某个实例变量是否属于某种类的类型
?: 三目运算符: 表达式1?表达式2:表达式3 (如果表达式1为true则执行表达式2,否则3)
&:位运算,按位与|
&&:逻辑运算,逻辑与 - 强制类型转换,自动类型转换,向上造型
强制类型转换:在类型前面加()来进行强制转换 long l = 9L; int i = (int)l;
自动类型转换:int i = 5; String str = “” + i;
向上造型:把范围小的造型为范围大的类型:int i = 2; long l = i; - break、continue
break:终止循环
continue:跳出本次循环,执行下一次循环
Java面向对象
- 面向对象三大特点
(1)封装:隐藏类的实现细节,迫使用户去使用一个接口去访问数据,使代码更好维护
(2)继承:子类可以直接继承使用父类的方法,程序员只需要做的是的定义额外特征或规定将使用的变化
(3)多态性:同一个行为具有多个不同表现形式或形态的能力 - 继承
public class A extends B{
}
(1)单继承性
(2)构造方法不能继承
(3)super引用父类,调用父类的属性,方法
(4)当子类中出现与父类的方法名,返回类型,参数列表相同的方法时要覆盖此方法 - this,super
this:访问子类
(1)能访问除构造方法以外所有的属性,方法,通过this. 来调用方法和属性
(2)不可以在静态方法中使用
(3)在调用其他构造方法时,必须放在该构造方法的第一行
(4)在构造方法中使用this(参数列表),相当于调用本类的其他构造方法,它必须作为构造方法的第一句
super:访问父类
(1)super. 读取父类中被子类隐藏的方法和属性
(2)通过super(参数列表)来调用父类的属性和方法,在调用父类的构造方法时必须放在子类构造方法的第一行 - 如何确定在多态的调用中,调用的究竟是哪个方法?
new 的是哪一个类就是调用哪一个类的方法 - 什么是重载
在一个类中出现方法名相同,但参数列表不同,这种情况就是重载
(1)方法名称必须相同
(2)参数列表必须不同
(3)与返回类型无关 - 方法覆盖
方法覆盖:子类可以修改从父类继承过来的行为,也就是说子类可以创建一个与父类方法有不同功能的方法,但具有相同的:名称,返回类型名,参数列表
在父子类情况下出现
(1)访问权限要大于等于被覆盖方法的权限
(2)例外列表要小于等于被覆盖方法的例外列表 - static
static修饰符功能:
(1)共用一块内存区域,也就是用static修饰的变量或成员方法对所有类的实例都是相同的
(2)静态成员方法和静态变量的优点在于他们能在没有创建类的任何一个实例的情况下被引用
(3)可以用在方法或属性上
访问方式:
(1)直接使用类名调用
(2)new 一个实例,用实例调用
基本规则
(1)类中的静态方法只可以调用静态的属性和方法,不允许调用非静态的属性和方法
(2)静态变量为类变量,可以用类名直接调用静态的属性和方法
(3)静态方法中不允许出现this和super
(4)构造方法不允许声明static
(5)非静态变量为实例变量,通过实例调用
(6)静态方法不能被非静态方法覆盖 - 抽象abstract
抽象方法:用abstract修饰的方法,只有方法的声明,而没有方法的实现,就叫抽象方法
抽象类:用abstract修饰的类,就叫抽象类
抽象类的规则:
(1)抽象类内部可以没有抽象方法
(2)必须用abstract修饰
(3)不能够直接使用抽象类,必须通过子类继承并且实现
(4)抽象方法不允许被private修饰
什么情况下使用抽象类
(1)当一个类的一个或多个方法时抽象方法时
(2)当类是一个抽象类的子类,并且不能为任何抽象方法提供任何实现细节或方法体时
(3)当一个类实现一个接口,并且不能为任何抽象方法提供实现细节或方法体时 - equals 和 ==
equals: 方法比较的是对象的值
==: 比较的是对象值的内存地址,对基本数据类型来说 == 比较的是数值
Java API
- String
substring(参数1,参数2):截取参数1到参数2的所有字符
replace(参数1,参数2):替换参数1到参数2的所有字符
equals():判断两个字符串是否相等
trim():去掉字符串两边的空格
indexof():查找字符串中参数所在的位置,并返回字符串这第一个出该参数的下标
split():拆分字符串