面向对象
什么是面向对象?
对比面向过程,是两个完全不同的处理问题的角度;
面向过程更多的是注重事情的每一个步骤,面向对象更多的是注重的是这个事情的参与者,是参与者更需要什么。
相对比来说,面向过程比较直接高效,但是面向对象更易于复用、维护。
封装
封装的意义在于明确标识出允许外部使用的所有成员和数据项,内部细节对外部调用透明,外部调用无需修改或关心内部的实现。
1.javabean的属性私有,提供getse对外访问,访问的属性逻辑只能由javabean本身决定
private String name;
public void setName(String name){
this.name = "Mei" + name;
}
该name有自己的命名规则,不能由外部直接赋值
2.orm框架
操作数据库我们不需要关系连接如何建立,sql如何执行,只需要引入mybatis,调用方法即可。
继承
继承基类的方法,并做出自己的一些改变或扩展;
子类共性的方法或者属性直接使用父类的,不需要自己定义,只需要扩展个性化。
多态
基于对象所属类的不同,外部对一个方法进行调用,实行执行逻辑不同。
父类类型 变量名 = new 子类对象;
变量名.方法名();
JDK、JRE、JVM之间区别
JDK
Java标准开发包,提供了编译、运行Java所需的各种工具和资源,包括Java编译器、Java运行时环境以及常用的库类等;
JRE
Java运行环境,用于运行Java的字节码文件,包括了JVM以及JVM工作所需的库类;
JVM
Java虚拟机,JRE一部分,整个Java实现跨平台最核心的部分,负责运行字节码文件。
重载和重写
重载
在一个类中,同名的方法有不同的参数列表(参数类型、个数不同)为重载;
重写
子类中把继承的父类本身有的方法重新写一遍,在方法名,参数列表,返回类型都相同的情况下,对方法进行修改为重写。
字节码及采用字节码的好处
编译器将(javac)Java源文件(.java)文件编译成字节码文件(.class),可以做到一次编译到处运行,Windows上编译的class文件可以直接在Linux上运行实现跨平台,但是需要把字节码解释成各个操作系统的机器码需要不同的解释器,所以针对各个操作系统需要各自的JDK或JRE;
好处一方面实现了跨平台,另一方面提高了代码的执行性能,编译器可以在编译源代码时做一些编译期的优化。