Java 核心技术 笔记一
时间:2020-10-16
本文章向大家介绍Java 核心技术 笔记一,主要包括Java 核心技术 笔记一使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
基本数据类型:
byte \ short \ int \ long 常量默认int
float \ double 常量默认double
char
boolean
引用数据类型
class : String
interface
array
自动类型转换
byte、char、short 做运算后都变成int类型
强制类型转换
截断操作,可能损失精度
算数运算符:+ - * / % ++ --
+= *= ++ --不改变原有的数据类型
逻辑运算符 & | ! ^ && ||
位运算符 & | ! << >> >>>(无符号右移)
三元运算符 (条件)?表达式1:表达式2
流程控制: 顺序、分支、循环
数组属于引用数据类型的引用数据类型的变量,数组的元素既可以是基本数据类型也可以是引用数据类型。
数组默认初始化
整型数组 0
浮点型数组 0.0
char型数组 0或
boolean型数组 false
引用数据类型数组 null
二维数组可以看成一维数组作为另一个一维数组的元素而存在
从数组底层的运行机制看没有多维数组
java类及类的成员、属性、方法、构造器、代码块、内部类
特征:封装性、继承性、多态性、抽象性
其他关键字:this、super、static、final、abstract、interface、package、import
类是抽象的,对象是类的实例
重载:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可
同一个类、相同方法名、参数列表不同
跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系
jdk5.0的新增功能:可变个数形参
可变个数形参格式:数据类型 ... 变量名
当调用可变个数形参的方法时,传入参数的个数可以是0、1、2...个
可变个数形参方法与本类中其他方法名相同的方法构成重载
可变个数形参在方法的形参中,只能声明在末尾
方法中定义的变量是局部变量,存在栈中,
基本数据类型值存在栈中
引用数据类型,new的对象都存在堆中,对象在堆中的首地址存在栈中
赋值操作,基本数据类型赋值的是值,引用数据类型赋值的是地址
方法形参的传递机制:值传递
形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据
值传递机制:如果参数是基本数据类型,实参赋给形参的是真实存储的值
如果参数是引用数据类型,实参付给形参的是存储数据的地址
面向对象的特征一,封装与隐藏
创建一个类的对象以后,通过”对象.属性“的方式进行赋值,赋值操作只受属性的数据类型和存储空间的限制。
想要对属性的额外限制条件时,将类的属性private化,同时提供public的设置setX和获取getX方法来对属性进行操作。
封装性的体现:私有的属性、私有的方法、单例模式...
封装性的体现需要权限修饰符来配合。
Java规定了4种权限:private,缺省,protected,public
4种权限可以修饰类的内部结构,属性,方法,构造器,内部类
类只能用public和缺省修饰
构造器的作用:创建对象、初始化对象属性
如果没有显示的定义构造器,系统默认提供一个空参的构造器
定义构造器的格式: 权限修饰符 类名(形参列表){}
一个类中定义的多个构造器,彼此构成重载
JavaBean是一种Java语言写成的可重用组件,是指符合以下标准的Java类
类时公共的
有一个无参的公共的构造器
有属性,且有对应的get,set方法
this关键字的使用
在类的构造器中可以显式的使用“this(形参列表)”来调用其他构造器,且必须声明在当前构造器的首行、
在类的构造器或方法中可以使用this调用该类的属性或方法
面向对象的特征二,继承性
继承性的好处:提高代码的复用性,便于功能的扩展,为多态性提供条件
继承性的格式:class A extends B{}
A:子类subclass B:父类superclass
一旦子类A继承父类B后,A就获取了B中声明的所有的属性和方法
父类中private的属性或方法,子类继承仍然获得了属性和方法,只是由于封装性不能直接调用
子类继承父类后,可以声明自己的属性和方法,实现功能的拓展
单继承:一个类可以由多个子类继承,一个类只能有一个父类
如果没有显式的声明一个类的父类,则此类继承于java.lang.Object类
方法的重写 override / overwrite
重写:子类继承父类以后,可以对父类中同名同参的方法进行覆盖操作
重写以后,当创建子类对象后,调用同名同参方法时执行子类重写的方法
重写的规定:子类重写方法的权限修饰符不小于父类被重写的方法,子类不能重写父类中private的方法
返回值类型 父类被重写的方法返回值是void 子类重写的返回值只能是void
父类被重写的方法返回值是A类型,子类重写的返回值只能是A类或A的子类
子类重写的方法抛出的异常类型不大于父类被重写的方法的异常类型
子类和父类中的同名同参的方法要么都声明为非static的(考虑重写),要么都声明为static的(不是重写)
static的方法不能被覆盖,随着类的加载而加载
super关键字的使用
在子类的方法或构造器中使用“super.属性“或”super.方法”来调用父类中的属性或方法。
在子类的构造器中使用“super(形参列表)”的方式调用父类中声明的指定构造器,且必须声明在子类的首行
在类的构造器中,super和this调用其他构造器时只能二选一。子类构造器首行没有显式声明时,默认调用父类空参的构造器
子类对象实例化过程
子类继承父类后,获得了父类声明的属性和方法
创建子类的对象,在堆空间中会加载所有父类中声明的属性
通过子类对象创建对象时,每一个构造器都会直接或间接的调用父类的构造器,直到调用java.lang.Object的空参构造器
虽然创建子类对象时调用了父类的构造器,但是只创建了一个对象,即new的子类对象
面向对象的特征三,多态性
父类的引用指向子类的对象
--虚拟方法调用,在编译时,只能调用父类中声明的方法
在执行时,实际执行子类中重写的方法
多态性使用的前提:类的继承关系,子类方法的重写
多态性只适用于方法,不适用于属性
原文地址:https://www.cnblogs.com/wangconnor/p/13779258.html
- Hive四种数据导入方式
- 34c3 部分Web Writeup
- 原来Oracle也不喜欢“蜀黍"(r6笔记第54天)
- Java基础19(01)总结IO流,异常try…catch,throws,File类
- 使用shell生成orabbix自动化配置脚本(r6笔记第53天)
- 现在 tensorflow 和 mxnet 很火,是否还有必要学习 scikit-learn 等框架?
- 数据的标准化与中心化以及R语言中的scale详解
- Java基础19(02)总结IO流,异常try…catch,throws,File类
- HTML5 — header
- 两条报警信息的分析(第二篇)(r6笔记第71天)
- 两条报警信息的分析(第一篇) (r6笔记第70天)
- R-求y=sin(X) 0-PI 面积代码
- Facebook 发布 wav2letter 工具包,用于端到端自动语音识别
- Java企业面试——Java基础
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Android 设置颜色的方法总结
- Android支付宝支付的示例代码
- 试图解释清楚【JavaScript Event Loop】
- 结合Event Loop谈谈对Vue中nextTick的理解
- Vue3响应式原理
- ClickHouse和他的朋友们(1)编译、开发、测试
- 学会如何学习 - 成为更好的终身学习者
- ToolBar中menu无法同时显示图标和文字问题的解决方法
- Android官方的侧滑控件DrawerLayout的示例代码
- 详解React Native监听Android回退按键与程序化退出应用
- 详解android webView独立进程通讯方式
- Android编程中File文件常见存储与读取操作demo示例
- Android读取properties配置文件的实例详解
- Android开发实现popupWindow弹出窗口自定义布局与位置控制方法
- Android编程实现使用handler在子线程中更新UI示例