JavaSE总结-上部(面向对象)
JavaSE总结-上部(面向对象)
这是我第一篇博客,主要就是记录日常所学的知识和日常遇到的问题和解决方案,如果有写的不足或者有失的地方还请各位见谅和指教。下部传送门
Java概述
###Java的分类 ###
- javaSE (标准版 基础)
- javaEE (企业版 企业的PC端开发)
- javaME (微型版 移动端开发)
Java的特性
- 简单
- 面向对象
- 分布式
- 健壮型
- 安全
- 结构中立型
- 可移植
- 解释型
- 高性能
- 多线程
- 动态变化的
Java名词
- jdk
java development kit java开发工具包 - jre
java runtime environment java运行时环境 - jvm
java virtual machine java虚拟机
基本数据类型
引用数据类型
- 类
- 接口
- 枚举
- 数组
数据类型默认类型
- 整型
int - 浮点型
double
类型转换
- 自动转换
小字节数据类型转换成大数据类型 - 强制转换
大字节数据类型转成小数据类型
&&和&的区别
- &&
如果第一个表达式为false,就不会执行第二个表达式 - &
两边都会执行
这就是短路效应
||和|的区别
- ||
如果第一个表达式为true,就不会执行第二个表达式 - |
两边都执行
位移
三目运算
表达式1?表达式2:表达式3
如果表达式1结果为true,结果就是表达式2
如果表达式1结果为false,结果就是表达式3
switch判断因子的数据类型
byte,short,int,char,枚举类型,java7开始支持字符串String
while和do…while的区别
- while
先判断再循环 - do…while
先循环再判断
break和continue的区别
- break
结束当前循环 - continue
结束本次循环,继续执行下面循环
break和continue只针对当前所处的循环对其他循环不起作用、
数组
相同数据类型的组合
一维数组内存结构示意图
二维数组内存结构示意图
面向对象
面向过程和面向对象的区别
- 面向过程
面向过程(亲历亲为,注重过程)- 例子(想吃西红柿炒蛋)
自己去菜市场买菜,自己去烹饪,自己吃
- 例子(想吃西红柿炒蛋)
- 面向对象
面向对象 (注重结果,让专业的人做专业的事)- 例子(想吃西红柿炒蛋)
自己让保姆给你做一份西红柿炒蛋
- 例子(想吃西红柿炒蛋)
面向对象的四大特征
- 封装
把类的细节隐藏起来,只为外部提供调用和赋值的方法.提高了代码的安全性 - 继承
用于表明类与类之间的关系
父类:基类 子类:派生类,继承了父类的属性和方法,也有自己特有的属性方法
可以继承父类的非私有的方法和属性且java只支持单继承可多重继承构造函数的调用关系
创建子类的时候,子类的构造函数会自动调用父类的构造函数,父类的构造函数会继续往上调用父类的构造函数
子类的构造函数中,如果没有显示的写出调用父类的构造函数,那么jvm会自动调用并且只会调用父类的无参构造函数,如果父类没有无参的构造函数,那么会报错,必须子类手动写出调用父类的其他构造函数,通过super关键字 - 多态
类不同时期展现的多种形态多态的前提
两个类之间要有继承关系,要有方法的重写,父类的引用指向子类的实例 - 抽象
抽象就是从多个事物中将共性的,本质的内容抽取出来
继承的优缺点
-
优点
- 提高代码复用率
- 提高代码可维护性
- 多态的前提
-
缺点
- 类与类之间产生了依赖
- 破环了封装性
- 不符合代码的编写原则(高内聚低耦合)
封装的缺点
- 优点
- 提高了代码的安全性
- 降低了软件的耦合度
- 封装的实体类传递参数高效
多态的优缺点
-
优点
- 提高代码的可扩展性
- 方法的形参可以设置成父类类型,这样一来,不管有多少个子类,都可以填入,通用方法
- 运用在抽象类和接口创建实例静态成员和成员变量的区别
-
缺点
- 不能使用子类特有的方法
static
静态的变量和方法是随着类的加载而加载,优先于我们的对象,所以不能在静态里调用对象的东西
静态方法和普通方法的区别
- 普通方法可以调用静态的变量和静态方法,也可以调用非静态变量和方法
- 静态方法只能调用静态变量和方法
- 普通方法可以通过对象来去调用
- 静态方法既可以通过对象去调用(不推荐),也可以通过类名去调用(推荐)
静态成员和成员变量的区别
- 所属关系
- 成员变量依赖于对象,属于对象
- 静态变量属于类,可以叫类成员或者叫类变量
- 内存
- 成员变量在各自对象的堆里
- 静态变量在方法区里的静态区里
- 调用方式
- 成员变量使用对象来获取
- 静态变量通过类名来获取
- 生命周期
- 成员变量的生命周期和对象同步,对象消失,成员变量也就消失了
- 静态变量与类的声明周期同步,随着类的加载而加载,随着类的消失而消失
this与super
- this 可以看作这个类的一个对象
- super 父类的一个对象
重写和重载
重写的好处
- 类具有多样性,也是多态的前提
- 提高了类的代码的灵活性
- 还可以对类进行扩展性
多态的成员访问特点
接口
属于扩展功能的API