大数据学习记录--JAVA篇--面向对象进阶

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 这一部分的语法和相关知识非常多,重在理解方便后续能流程的读代码,也不需要死记一些太细的知识点。

Static关键字--静态的意思

常常用于修饰成员变量或者成员方法,代码块等,静态static的核心!!就是说明这个东西一开始就在这,归属于类,随着类的加载而加载,不需要实例化具体对象
1、Static修饰的成员变量
a、static修饰的变量属于整个类,在内存里就只存一份,被所有类成员共享。
image.png
b、这个变量不需要实例化对象就一直存在在那。所以在访问静态变量的时候,直接 ( 类名.xxx )的形式访问。
2、Static的修饰的成员方法
a、static修饰的方法属于整个类,静态方法在类加载的时候就一起放到方法区中,常用来实现一些共有功能。
image.png
b、同样,在访问静态方法的时候,直接 ( 类名.xxx )的形式访问。
3、static用在工具类,
a、定义一个类,里面全是静态方法,直接用类名调用这些共有的方法,供其他类使用,同时将工具类的构造器私有,因为用不着实例对象。

代码块--类中第四大部分

1、理解是什么,方便以后代码中看到能懂
a、代码块是和成员变量,方法,构造器同一级别的东西,同样归属于类,一般写在成员变量之后,方法之前。
b、写法就是直接写一个{}大括号,然后里面写一些代码。
2、一般有两种--static{}代码块和无static的{}代码块
a、static{}同样是归属于类,不需要实例化对象,在类加载时就直接执行,一般就常用于作静态资源的初始化。举了个例子,假设定义了一个类中有一个扑克牌成员变量,类型是ArrayList。那我们就可以定义一个static{}代码块,用于把这个扑克牌成员变量给填充了,就是把各种牌放进这个定义的扑克牌ArrayList中。
b、无static{}修饰的,就是只有在用构造器new一个对象的时候,才会跟着执行的代码块,不常用。

单例--可以理解为一种固定的写法模式

1、理解概念
a、用于保证类只能实例化一个对象,在某种需求下需要设计相应的代码实现。
2、怎么实现--饿汉单例和懒汉单例
--饿汉单例就是直接在类中定义static成员变量的时候就new出来一个对象
image.png

--懒汉单例就是在类中定义static成员变量的时候先不new,后面定义一个方法来new,同时判断对象是否已经存在,不存在才能new,否则就把原来的对象返回。
image.png

--注意在单例这种设计模式下构造器一定要私有!!!其余的区别就是那个唯一的对象是如何定义,在何时定义的问题了。

JAVA中的继承

1、理解概念和最重要的内存机制!!

a、定义的时候用extend来表明继承的关系,同时子类在定义对象的时候会开辟一对空间,因为子类中可能有一些父类的信息。
b、后面的一切的一些规则,什么可以什么不可以的核心其实就是理解这个内存关系!从这个内存中推理哪些可以访问可以哪些不可以。
image.png

2、继承里的一些访问规则

a、java是单继承,但是可以多层的继承,就近原则,同样的变量或方法,优先自己内部的,再到直接父类,再到父类的父类。java有一个究极大爹--object类,是所有类的最终的父类,什么equal和tostring这种方法就是属于object的,所以除了基本数据类型以外的所有类都可以调用!
b、子类是可以继承父类里的private的成员变量的,相当于子类也有同样的变量,只不过不能直接访问,要用相应的getter和setter的方法访问,从内存图那里理解。
c、但是!但是!父类的private的方法子类是无法直接访问的,是调用不了的,因为私有方法只有在类内部才可以用。虽然内存里也存了,但是由于访问规则限制,访问不了。
d、子类也可以直接访问父类里定义的一些static的变量成员,内存图理解,那个static的变量就放在父类那个空间里呢,当然可以访问。
--这些个访问规则通通可以用内存图来理解清楚

3、this,super关键字和其余一些继承后的特点

a、在子类中如果要访问大家都有的一些成员变量或者方法,访问的原则是就近原则,如果不指明的话。或者可以用this.和super.来指明要访问哪个类的变量和方法。
b、this和super除了用来指明引用的是子类还是父类以外,还可以用来调用,子类其他构造器或者父类构造器,下面有说。
c、方法的重写
--就是子类中重写父类的某个方法,要求方法名和参数列表全部一致,其他一些什么规则其实也不用太在意,就明白子类中有些行为和父类一样但是具体细节不同,所以要重写就行。
c、子类构造器的特点
--子类构造器在调用的时候会默认先调用父类的无参构造器,同样用那个内存图来理解。
--具体实现:子类构造器里会默认写一个super()来调用了父类的无参,所以其实可以手动调用父类的有参,就是在子类的有参里,第一行加上super(x,x)来先调用父类有参,为一些来自父类的成员变量幅值,再对自己独有的一些成员变量赋值。
--所以this(...)和super(...)分别代表的就是访问子类中其他兄弟构造器,和访问父类中的构造器。且这两个都必须放在构造器的第一行,所以不能同时存在。

权限修饰符

1、四种权限修饰符:作用范围从小到大(private->缺省->protected->public)
2、四种修饰符的作用域如下:
image.png
具体在定义时,一般参考如下:
image.png

final关键字--最终的意思

1、可以修饰--类、方法、变量,--类--不可被继承,--方法--不可被重写,--变量--第一次赋值后,不可被重新赋值。
2、对变量来说,分为两种情况,若修饰基本类型的变量,那么变量存储值不可改变,若修饰引用类型的变量,那么变量存储的地址不能变,但是内容是可以更改的。
3、常量!用public static final修饰的成员变量
image.png

枚举--一种特殊的类

1、枚举实例化在一开始就进行,且不能修改,
image.png
--相当于定义了一个类,这个类就固定几个实例对象--
2、枚举的具体实现方式,其编译后的代码如下:
image.png

抽象类--abstract修饰

image.png
1、用来作为父类给子类继承,子类必须重写全部的抽象方法,否则也必须定义成抽象类。
2、重写方法的时候,可以写一个@override,重写方法标志。
3、抽象类不能定义对象,只是用来给子类继承的。
image.png

接口--一种定义的规范

image.png
image.png
1、接口定义一种规范,用来被类实现,可以多实现
2、有人问那有内部类不久行了,要接口干嘛?接口的优势就是类可以实现多个接口。
3、同时接口和接口之间还可以多继承!
image.png

多态--面向对象最后一个特征

image.png
1、理解什么是多态就行,就是对象是父类的,但是方法是子类重写的。
image.png
2、对象还是定义成父类的,所以父类中没有的方法,子类独有的功能是不能调用的。
3、对象类型的转换--两种:
自动的类型转换(子赋给父)和强制的类型转换(父赋给子)
image.png
---instanceof关键字,用来判断对象的真实类型

内部类--类的五大成分中的最后一个

1、回顾一下类的五大成分:成员变量,成员方法,构造器,代码块,内部类
image.png
2、主要从定义上分为三种:
--静态内部类
image.png
image.png
--成员内部类
image.png
image.png
--私有内部类
看看书咯!
3、匿名内部类
image.png
image.png

一些常见的API--object、objects

1、object,所有类的大爹,toString方法就是object中的。
image.png
注意,在定义类的时候必须要重写toString方法,否则的话当你用sout输出对象的时候默认就是输出地址,而不是你想要的内容,这个object的toString方法就是让子类去重写适合自己的内容去进行输出的!
2、还有equals方法
image.png
3、还有一个objects这个是object的一个子类,里面提供了新的equals方法等
image.png

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
26天前
|
Java API Maven
2025 Java 零基础到实战最新技术实操全攻略与学习指南
本教程涵盖Java从零基础到实战的全流程,基于2025年最新技术栈,包括JDK 21、IntelliJ IDEA 2025.1、Spring Boot 3.x、Maven 4及Docker容器化部署,帮助开发者快速掌握现代Java开发技能。
259 1
|
1月前
|
数据采集 搜索推荐 Java
Java 大视界 -- Java 大数据在智能教育虚拟学习环境构建与用户体验优化中的应用(221)
本文探讨 Java 大数据在智能教育虚拟学习环境中的应用,涵盖多源数据采集、个性化推荐、实时互动优化等核心技术,结合实际案例分析其在提升学习体验与教学质量中的成效,并展望未来发展方向与技术挑战。
|
1月前
|
存储 搜索推荐 安全
Java 大视界 --Java 大数据在智能教育学习效果评估与教学质量改进中的应用(209)
本文探讨了 Java 大数据在智能教育中的创新应用,涵盖学习效果评估、教学质量改进及个性化教学方案定制等内容,结合实战案例与代码解析,展现技术如何赋能教育智能化转型。
|
1月前
|
存储 供应链 数据可视化
Java 大视界 -- 基于 Java 的大数据可视化在企业供应链风险预警与决策支持中的应用(204)
本篇文章探讨了基于 Java 的大数据可视化技术在企业供应链风险预警与决策支持中的深度应用。文章系统介绍了从数据采集、存储、处理到可视化呈现的完整技术方案,结合供应链风险预警与决策支持的实际案例,展示了 Java 大数据技术如何助力企业实现高效、智能的供应链管理。
|
1月前
|
存储 SQL Java
Java 大视界 -- Java 大数据在智能医疗手术风险评估与术前方案制定中的应用探索(203)
本文探讨了Java大数据技术在智能医疗手术风险评估与术前方案制定中的创新应用。通过多源数据整合、智能分析模型构建及知识图谱技术,提升手术风险预测准确性与术前方案制定效率,助力医疗决策智能化,推动精准医疗发展。
|
2月前
|
机器学习/深度学习 Java 大数据
Java 大视界 -- Java 大数据在智能政务公共资源交易数据分析与监管中的应用(202)
本篇文章深入探讨了 Java 大数据在智能政务公共资源交易监管中的创新应用。通过构建高效的数据采集、智能分析与可视化决策系统,Java 大数据技术成功破解了传统监管中的数据孤岛、效率低下和监管滞后等难题,为公共资源交易打造了“智慧卫士”,助力政务监管迈向智能化、精准化新时代。
|
2月前
|
数据采集 机器学习/深度学习 Java
Java 大视界 -- Java 大数据在智能体育赛事运动员体能监测与训练计划调整中的应用(200)
本篇文章聚焦 Java 大数据在智能体育赛事中对运动员体能监测与训练计划的智能化应用。通过构建实时数据采集与分析系统,结合机器学习模型,实现对运动员体能状态的精准评估与训练方案的动态优化,推动体育训练迈向科学化、个性化新高度。
|
2月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
76 4
|
2月前
|
分布式计算 DataWorks 数据处理
在数据浪潮中前行:记录一次我与ODPS的实践、思考与展望
本文详细介绍了在 AI 时代背景下,如何利用阿里云 ODPS 平台(尤其是 MaxCompute)进行分布式多模态数据处理的实践过程。内容涵盖技术架构解析、完整操作流程、实际部署步骤以及未来发展方向,同时结合 CSDN 博文深入探讨了多模态数据处理的技术挑战与创新路径,为企业提供高效、低成本的大规模数据处理方案。
167 3
|
2月前
|
SQL 人工智能 分布式计算
ODPS:数据浪潮中的成长与突围
本文讲述了作者在大数据浪潮中,通过引入阿里云ODPS体系(包括MaxCompute、DataWorks、Hologres)解决数据处理瓶颈、实现业务突破与个人成长的故事。从被海量数据困扰到构建“离线+实时”数据架构,ODPS不仅提升了数据处理效率,更推动了技术能力与业务影响力的双重跃迁。

热门文章

最新文章