2021.12月归档(20211129-20220102)
文章平均质量分 72
第五周_20211129-20211205
第六周_20211206-20211212
第七周_20211213-20211219
第八周_20211220-20211226
第九周_20211227-20220102
菜菜的大数据开发之路
Java技术栈 AND 大数据开发,学习笔记, 拒绝水文
展开
-
六-1, Scala模式匹配对象及样例类
1. 提取器2. Unapply方法快速上手, 可略过下面Scala 提取器是一个实现了Unaply方法的对象;Unapply方法算是apply方法的反向操作: unapply 接受一个对象, 然后从对象中提取值, 提取的值通常是用来构造该对象的值为了更快的理解, 我们有必要复习一下apply方法: , 简单说就是当我们把对象当做函数一样调用, 传值等, Scala会隐式的调用该对象的类中实现的apply方法;, 如我们有初始化一个Person类,并传入值, Person类如果实现了相应的a翻译 2022-02-25 22:47:01 · 252 阅读 · 0 评论 -
六, Scala 模式匹配总结
六, 模式匹配Scala中的模式匹配类似于Java中的switch语法,但是scala从语法中补充了更多的功能, 所以更加强大;switch(变量){ case '值1': 执行语句; break; case '值2': 执行语句; break; default: 执行语句; break;}6.1 基本语法模式匹配语法中, 采用match关键字声明, 如: 变量名 ma原创 2022-02-25 22:42:34 · 822 阅读 · 0 评论 -
五-4, Scala 队列,并行集合
1. Scala队列1,1 Scala Queen 定义Scala 同 Java 一样,已经直接给出了 Queue 的实现。它本质上是一个有序列表,在底层可以使用数组或者链表去实现。Queue 显然遵循先入先出的原则。Scala 同时给出了对于队列的 mutable 实现和 immutable 实现。对于不可变队列,进行操作后会返回新的队列;对于可变队列,进队出队操作是在原先的队列中进行的。//加上前缀来明确声明使用的是可变队列还是不可变队列。//apply方法实现mutable.Queue原创 2022-02-25 10:53:55 · 586 阅读 · 0 评论 -
五-3, Scala 类型检查和转换, 枚举类, 应用类,定义新类型
1. 类型检查和转换用法说明 obj.isInstanceOf[T] 判断obj是不是T类型, 返回布尔值 obj.asInstanceOf[T] 将pbj强转成T类型, 返回的是 包名.类名@地址 classOf[类名]获取对象的类名,返回的是 class 包名.类名package patternmatchdemoclass Person{}object Person { def main(args: Array[String]): Unit =原创 2022-02-24 20:29:21 · 324 阅读 · 0 评论 -
完整代码示例-Scala 基础集合计算函数
Scala 基础集合计算函数代码示例详细总结查看本文package collectionsdemoimport scala.collection.mutableimport scala.collection.mutable.{ArrayBuffer, ListBuffer}object NormalCollectionFunctionDemo { def main(args: Array[String]): Unit = { //常见集合 Array, List, Set, Map原创 2022-02-22 12:12:11 · 518 阅读 · 0 评论 -
五-2, Scala集合常用函数全总结
五-2, 集合常用函数在学习本文之前, 必须掌握以下知识点函数的最简化原则元组的概念和使用方法函数柯里化隐式参数(可选)1. 集合的基础方法/函数用法解释Array, List, Set, Map使用区别xx.length 或 xx.size获取集合长度(大小)(Array, List均有length, size方法, 而Set, Map只有 size方法)xx.foreach(println)循环遍历均可使用xx.iterator迭代器原创 2022-02-21 23:11:22 · 1445 阅读 · 0 评论 -
五-1, Scala 元组(Tuple)
1. 快速上手元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。说的简单点,就是将多个无关的数据封装为一个整体,称为元组package TupleDemoobject TupleDemo { def main(args: Array[String]): Unit = { //(1)声明元组的方式:(元素 1,元素 2,元素 3) val tuple: (Int, String, Boolean) = (40,"bobo",true)原创 2022-02-21 17:07:52 · 804 阅读 · 0 评论 -
五, Scala常见集合类总结(Array, List, Set, Map)
五, Scala常见集合类总结(Array, List, Set, Map)5.1 Scala集合概述Scala 的集合有三大类: 序列seq, 集Set, 映射Map, 所有的集合都扩展自 Iterable 特质;对于几乎所有的集合类, Scala都同时提供了可变和不可变的版本. 分别位于以下两个包: scala.collection.immutable, scala.collection.mutableQ:什么是可变,不可变集合?a. Scala 不可变集合, 就是指该集合对象不可修原创 2022-02-20 22:11:55 · 1629 阅读 · 0 评论 -
四, Scala 伴生对象, 特质
四, Scala 伴生对象和伴生类4.1 单例对象和伴生对象Scala语言是完全面向对象的语言, 所以并没有静态的操作(即在Scala中没有静态的概念, 没有静态变量, 静态方法等等);但是为了能够和Java语言交互(因为Java中有静态概念), Scala使用单例对象去模拟实现Java中的静态概念; 如何模拟呢? 让单例对象的名称与类的名称保持一致(即object A, class A, 类名为A, 保持一致), 这个单例对象呢, 也有了个新的名称, 我们称之为某个类的伴生对象;(即,原创 2022-02-19 17:31:27 · 581 阅读 · 0 评论 -
三, Scala 面向对象基础知识汇总
六, Scala 中的面向对象Scala 的面向对象思想,概念与Java 的基本一致, 但是语法和Java不同, 补充了更多的功能;6.1 包基本语法 package 包名 Scala包的三大作用(和Java一样)区分同名类在类很多的时候, 很好的管理类控制访问的范围6.1.1 包的命名数字, 字母, 下划线, 小圆点[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vRFiDrwu-1644314342819)(2022-01-06-22-2原创 2022-02-08 17:59:35 · 701 阅读 · 0 评论 -
一, Scala基础语法全总结
一, 简单入门1.1 为什么要学习Scala?Java的扩展和延伸Scala基于JVM, 和Java完全兼容, 同样具有跨平台,可以执行好,方便的垃圾回收等特性;Scala是一种纯粹的面向对象语言;Scala是一门函数式编程语言;Scala更适合大数据的处理Scala对集合类型数据处理有非常好的支持Sparkd的底层用Scla编写1.2 Scala 与 Java, JVM的关系1.3 Scala语言的特点1.4 Scala 安装和IDE的配置安装和配置环境变原创 2021-12-29 21:15:36 · 2402 阅读 · 1 评论 -
二, Scala 函数式编程详解
五, 函数式编程面向对象编程(OOP)面向对象思想: 使用对象来映射现实中的事物, 使用对象的关系来描述事事物之间的联系面向对象编程: 把要解决的问题按照一定的规则划分为多个独立的对象, 这些对象拥有各自的属性和方法, 通过调用对象的方法来解决问题;[举个栗子]用户通过JDBC连接和读取数据库对象: 用户;属性: 用户名, 密码;行为(方法): 登录, 连接JDBC, 读取数据库; 对象的本质: 对数据和行为的一个封装 函数式编程(FP)面向过程编程: 分析解原创 2022-01-06 22:06:12 · 1260 阅读 · 0 评论 -
0. Scala HelloWord 案例
Scala版本的HelloWorld, 注意先把IDEA装上支持Scala的插件噢;打开 IDEA->点击左侧的 Flie->选择 New->选择 Project…选择Maven, 填好喜欢的GAV;默认下,Maven 不支持 Scala 的开发,需要引入 Scala 框架。, 在项目上右键选择, Add FrameWorks Support;选择Scala的安装目录,新建Scala, 写入HelloWorld, 注意下一步创建的是Object噢;.原创 2021-12-24 20:30:25 · 350 阅读 · 0 评论 -
Java IO流详解和常用流的使用
一, IO概念I/O 即输入Input/ 输出Output的缩写,其实就是计算机调度把各个存储中(包括内存和外部存储)的数据写入写出的过程 ;java中用“流(stream)”来抽象表示这么一个写入写出的功能,封装成一个“类”,都放在java.io这个包里面。二, “流” 是原创 2021-12-14 14:50:28 · 1274 阅读 · 0 评论 -
11. <tag-数组和双指针(左右指针)>-lt.18-四数之和 2.8
lt.18-四数之和[案例需求][思路分析]本题也就是三数之和的拓展罢了, 前面我们三数之和怎么解的呢? --> 先对数组排序, 然后共一层for循环遍历第一个加数, 后面两个加数分别使用左指针和右指针向中间(L=R)逼近的方式进行遍历.同样的, 四数之和, 使用两层for循环遍历前两个加数, 使用左右指针遍历后两个加数;像这种数组中, 多个加数的和, 最重要的就是熟练掌握对加数的去重, 因为每个加数都是遍历得到的, 比如第一个加数a, 它(nums[i])和前一次遍历的数(nu原创 2021-12-07 14:31:17 · 883 阅读 · 0 评论 -
14. <tag-数组和二分查找_2>-lt.240-搜索二维矩阵 || + lt.633-平方数之和 +lt.69-Sqrt(x) 1.8
lt.240-搜索二维矩阵 ||[案例需求] 优化1. 二分查找法[思路分析]本题, 从基础的倒序遍历解法上来看, 跟之前做过的一道题((lt.74-搜索二维矩阵)[https://blog.csdn.net/nmsLLCSDN/article/details/121284683])完全类似这里, 我们采用二分查找法解题;要注意到的是: 与 ((lt.74-搜索二维矩阵)[https://blog.csdn.net/nmsLLCSDN/article/details/121原创 2021-12-09 22:40:50 · 302 阅读 · 2 评论 -
13. <tag-数组和双指针(左右指针)>-lt.977-有序数组的平方 + lt.75-颜色分类 2.2
lt.977-有序数组的平方[案例需求][思路分析]简单题简单做, 遍历给定的有序数组的每个数, 把遍历到的每个数进行平方, 放入到新数组,而由于题目要求我们输出的数组是有序的, 如果数组中含有负数, 那么还要对得到的结果数组进行排序后, 再返回.[代码实现]class Solution { public int[] sortedSquares(int[] nums) { //新数组. 存放平方数 int[] res = new int [nums.原创 2021-12-08 15:55:51 · 490 阅读 · 1 评论 -
12. <tag-数组和双指针(快慢针)>-lt.80- 删除有序数组中的重复项 II 1.8
lt.40- 删除有序数组中的重复项 II[案例需求][思路分析][待补充][代码实现]class Solution { public int removeDuplicates(int[] nums) { //有序数组 + 原地交换==> 双指针==> 快慢针 //左指针指向不重复, 或只重复一次的一组数的末尾; //如何判断只重复一次? // l-1 = l = r, 说明 重复两次以了 //原创 2021-12-07 14:36:51 · 132 阅读 · 0 评论 -
Java实现反射的常见用法完整代码示例
package cn.cyy.cl.common.bean;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;public class Dog { //Dog实体类 int age; String name; public String field = "我是一个参数, 你获取到原创 2021-12-05 22:47:43 · 464 阅读 · 0 评论 -
Java面试重点_4. 一文彻底搞懂Java中的反射 0.5
一, 什么是反射? 反射存在的意义是什么?反射作为Java这门语言中, 可以说是最抽象的一种概念, 让我们先从知乎大佬的一番近似于大白话的叙述看起来:概念:Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。用一句话总结就是反射可以实现在运行时可以知道任意一个类的属性和方法。1.1 反射存在的意义有的同学可能会疑惑,Java 已原创 2021-12-05 22:46:33 · 728 阅读 · 0 评论 -
Java面试重点_3. 你了解引用拷贝,浅拷贝和深拷贝吗? 0.5
文章目录引用拷贝, 深拷贝, 浅拷贝1. 引用拷贝2. 浅拷贝3. 深拷贝引用拷贝, 深拷贝, 浅拷贝在开发、刷题、面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况,这种情况就叫做拷贝。拷贝与Java内存结构息息相关,搞懂Java深浅拷贝是很必要的!在对象的拷贝中,很多初学者可能搞不清到底是拷贝了引用还是拷贝了对象。在拷贝中这里就分为引用拷贝、浅拷贝、深拷贝进行讲述。1. 引用拷贝**引用拷贝会生成一个新的对象引用地址(变量),但是两个最终指向依然是同一个对象。**如何更好的理解引用拷原创 2021-12-03 15:45:48 · 680 阅读 · 0 评论 -
Java面试重点_1. 常量池 和 String类的不变性, 拼接方式等 0.8
一, 常量池1. 常量池的好处常量池是为了避免频繁的创建和销毁对象而影响系统性能,其实现了对象的共享。例如字符串常量池,在编译阶段就把所有的字符串文字放到一个常量池中。(1)节省内存空间:常量池中所有相同的字符串常量被合并,只占用一个空间。(2)节省运行时间:比较字符串时,比equals()快。对于两个引用变量,只用判断引用是否相等,也就可以判断实际值是否相等。2. 双等号 ==, equals();在基本数据类型中使用==表示比较他们的数值大小, 在引用数据类型的对象之间, ==是比较原创 2021-12-02 21:52:20 · 566 阅读 · 0 评论 -
Java面试重点_2.为什么重写 equals() 时必须重写 hashCode() 方法?0.5
我觉着很无聊的一个问题;原创 2021-12-02 22:18:04 · 315 阅读 · 0 评论