大数据学习记录---JAVA篇---面向对象基础部分

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 第二部分学习面向对象相关知识,这一部分其实不太熟悉,因为也不常写,记录一些知识点,以便后续回忆。

面向对象基础知识

  • 基础部分大概围绕成员变量,成员方法,构造器三个内容
  • 基础部分的重点,是在理解面向对象的一些内存机制!

一、构造器和this关键字

1、构造器分为有参和无参,无参本身就有,但如果定义了有参,就要重新定义无参。具体定义IDEA有快捷,右键+生成里就有。
2、this关键字就是指定当前访问对象,this.xxx可以用于指定访问当前对象的成员变量和方法,有时候你定义的参数和成员变量或者方法同名的情况下就可以用this。

二、封装和javabean

1、封装就是面向对象的三大特性之一,就记得在定义一个对象类的时候,其对应的方法要写在这个类中!可以避免有时候不清楚方法应该在哪定义。
2、javabean就是一些个实体类,在定义这些类的时候,成员变量设为private,同时提供专门的getter和setter的方法,给外面修改变量值。还有必须提供无参构造器,有参可写可不写,写了就一定要补无参。

三、成员变量(类中定义)与局部变量(方法中定义)的区别!

image.png
image.png

四、面向对象内存机制(理解方法区、堆内存、栈内存)!

image.png
只需要明白,实例化一个对象后,对象是和当前方法一起定义在栈内存里的,而对象的成员变量的信息存储在堆内存中,栈内存里存放指向对应堆内存中的地址,而成员的方法还是放在方法区里,堆内存里会记录对应方法的地址信息,也就是调用的时候,从栈内存到堆内存再到方法区。
image.png
JAVA不需要像C++一样释放内存空间,存在垃圾回收机器,定时清理堆内存里没有东西指向的一些信息。
image.png

五、String类和ArrayList类

  • JAVA中提供的可以直接用的非常常见的两种类
  • 简单记录一些可能会忘的东西看,具体在使用中再去查api文档和一些对应方法

String类

1、定义的两种方式,及其内存空间分配的区别
a、直接以""方式初始化定义,会把字符串存在堆内存的字符串常量池中,栈内存中对象存在指向常量池的地址。
image.png

b、用构造器来初始化,这种方法就是和上面说的对象的定义内存分配一致,会直接在堆内存中存储。
image.png
如图,用构造器来定义,即使内容一样,存储空间也是不一样的,因为是开辟了一个新的变量空间
2、String类的一些常用api
image.png
首先是对比两个字符串是否相等不能用==,因为两个字符串的对象里存放的是地址而不是它们的值,==会去比较地址是否指向同一个地方,而不是内容是否相等,这个在python中也有遇到。
image.png

ArrayList类(Python中的list,C++中的vector)

1、构造方式
a、首先用构造器定义,同时可以加上泛型去固定存储类型(<>这个在写C++的时候也遇到过)

 ArrayList<Double> nums = new ArrayList<>(); // java.lang中包装了基本数据类型的面向对象的class形式

image.png

b、泛型不能是基本数据类型,java.lang中提供了基本数据类型的面向对象形式0的包装
2、常用的api和使用方式
a、用add来添加数据,注意String和ArrayList都不能像数组那样按索引读写数,都要用特定的api来操作。
image.png
3、ArrayList的内存机制
image.png
因为ArrayList中存的还是一些对象,所以指向的位置存放的还是地址,如图

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
2月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
95 43
Java学习十六—掌握注解:让编程更简单
|
1月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
36 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
1月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
26 2
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
52 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
2月前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
36 0
|
2月前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势
|
23天前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
181 7
|
23天前
|
存储 分布式计算 大数据
大数据 优化数据读取
【11月更文挑战第4天】
37 2