自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 问答 (1)
  • 收藏
  • 关注

原创 java-征服面试官(三)

一、面向对象的特征有哪些方面答:面向对象的编程语言有封装、继承、抽象、多态4个主要的特征1.封装封装是保证软件内部具有优良的模块性的基础封装的目标是要实现软件部件的“高内聚,低耦合”,防止程序相互依赖而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统封装更为清晰,更为有力。面相对象的封装就是把描述一个对象的属性和行为的代码封装在一个模块中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。总结:通常情况下,只要记

2020-08-18 11:05:54 179

原创 看着这些java面试题让面试官唱征服(二)

1.使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如:对于如下语句final StringBuffer a = new StringBuffer...

2020-07-30 19:07:37 151

原创 最全泛型和集合框架讲解(知识点+方法+示例)

一、认识集合在开始之前我们先认识一下集合。开发应用程序时,如果想存储多个类型的数据可以使用数组来实现;但是使用数组存在一些明显的缺陷数组长度固定不变,不能很好的适应元素数量动态变化的情况可以通过数组名.length来获取数组的长度,却无法直接获取数组中实际存储的元素个数数组采用在内存中分配连续空间的存储方式存储,根据元素信息查找时效率比较低,需要多次比较针对这些缺陷,java结合框架提供了一套性能优良、使用方便的接口和类,即在这里我们即将讲解的内容。二、List接口Collection接

2020-07-28 23:16:36 2249

原创 看着这些java面试题让面试官唱征服(一)

1.一个“.java”源文件是否可以包括多个类(不是内部类)?有什么限制答:可以有多个类,但只能有一个public类,并且public的类名必须与文件名一致2.java有没有goto?答:java中的保留字,现在没有在java中使用3.说说&和&&的区别答:共同点:&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式结果都为true时,整个运算结果才为true,否则只要有一方为false。则结果为false。&amp

2020-07-24 09:45:29 793

原创 mysql面试17讲 --第二讲

Mysql是如何执行一条select的查询语句的一、流程图mysql> select * from T where ID=10;当这样一条命令,我们在mysql客户端打开的时候,他是如何进行一系列的执行程序,最后得到我们想要的结果的?解决这个问题,其实不难,我们只需要将mysql “拆解”就可以知道。下面我们看一下我画的一张图,它大体上解释了一句select查询的执行流程。图上就可以看出,mysql基本分为两层,一层是Server层,一层是存储引擎。二、组件拆解Server 层包括

2021-12-01 15:04:16 182

原创 Mysql 面试17讲--第一讲

文章目录环境搭建问题1.root用户密码忘记,如何重置2.命令行客户端字符集问题3.如何修改数据库和表的字符集编码环境搭建问题1.root用户密码忘记,如何重置1: 通过任务管理器或者服务管理,关掉mysqld(服务进程)2: 通过命令行+特殊参数开启mysqldmysqld --defaults-file=“D:\ProgramFiles\mysql\MySQLServer5.7Data\my.ini” --skip-grant-tables3: 此时,mysqld服务进程已经打开。并且不需要

2021-12-01 14:21:27 849

原创 Spark RDD内存数据集分配 用源码让你更快理解原理

文章目录1.先码一个demo2.看结果3.看源码1.先码一个demoobject RDD_Memory_Par { def main(args: Array[String]): Unit = {// TODO 准备环境 val sparkConf = new SparkConf() .setMaster("local[*]") .setAppName("RDD_Me

2021-11-03 18:40:10 918

原创 Kafka topic、producer、consumer的基础使用

文章目录Kafka初级前言1.topic的增删改查2.生产者的消息发送3.消费者消费数据Kafka初级前言关于kafka的集群安装这里就先跳过,如果需要相关资料以及学习视频的可以在留言下留下联系信息(邮箱、微信、qq都可),我们直接从kafka的学习开始,这是初级阶段,这篇博主主要讲述kafka的命令行操作。1.topic的增删改查创建主题:切换到kafka的相关目录,进行以下命令行操作bin/kafka-topics.sh --create --bootstrap-server had

2021-10-30 18:46:52 1269

原创 Flink on yarn 不废话集群部署

文章目录Flink on yarn 集群部署前言先安装好yarn集群,在我们这个环境中使用的是CDH6.3,也就是基于hadoop3.0的大数据生态环境flink部署1.包下载2.将所下载的包放置/opt/flink下进行解压安装3.切换到相关目录4.配置hadoop相关路径5.如果第四步采用后仍然报错找不到相关包,则切换到lib包中并将相关hadoop包放置lib目录下6.确保你的环境有足够的内存能够启动集群后,开始进行启动7.启动成功后,会提供客户端网址,输入浏览器可进行查看,成功代表集群已经启动Fl

2021-10-28 10:58:24 2167

原创 HIVE内置函数记录

HIVE内置函数记录一、关系运算:1. 等值比较: =2. 等值比较:<=>3. 不等值比较: <>和!=4. 小于比较: <5. 小于等于比较: <=6. 大于比较: >7. 大于等于比较: >=8. 区间比较9. 空值判断: IS NULL10. 非空判断: IS NOT NULL10. LIKE比较: LIKE11. JAVA的LIKE操作: RLIKE12. REGEXP操作: REGEXP二、数学运算:1. 加法操作

2021-10-19 13:03:25 75

原创 CDH环境下运用MR执行wordcount

好久没有更新博客了,最近在公司中每天都在忙于当sqlBoy以及做一些琐碎杂事,感觉已经忘记了什么叫做上进,几天开始要重新拾起更新博客的习惯了,就从hadoop生态圈开始重新更博吧,前端时间安装了CDH,但是在CDH环境中如何使用MR琢磨了好久,现在记录一下,方便以后翻阅,也给大家提供一点素材共同学习。运用MR执行wordcount准备工作:在hdfs中创建wcinput目录,并将wordcount案例放入该目录,输出目录wcoutput不用创建1.sudo -u hdfs hadoop fs -m

2021-10-09 13:24:11 326

原创 常用正则表达式详写

常用正则表达式详写一、校验数字的正则表达式1 数字:1$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9])$6 非零开头的最多带两位小数的数字:^([1-9][0-9])+(.[0-9]{1,2})?$7 带1-2位小数的正数或负数:^(-)?\d+(.\d{1,2})?$8 正数、负数、和小数:^(-|+)?\d+(.\d+)?$9 有两位小数的正实数:2+(.[0-9]{2})

2021-04-28 10:01:48 140

原创 DataFrame与DataSet

一、概述Spark在RDD基础上,提供了DataFrame与DataSet用户编程接口,在跨语言方面具有很好的支持。二、DataFrameDataFrame与RDD一样,都是不可变分布式弹性数据集。不同之处在于RDD中的数据不包含任何架构信息,数据的内部结构可以看作黑盒,因此直接使用RDD时需要开发人员实现特定的函数来完成数据结构的解析;而dataFrame中的数据集类似于关系数据库中的表,按列名存储,具有Schema信息,开发人员可以直接将结构化数据集导入DataFrame。DataFrame的数据

2020-08-14 09:09:41 675 1

原创 Scala中的组合与继承----建立一个创建和渲染二维布局元素的库(实例)

一、关于抽象类在这个实例中,我们的第一项任务就是定义代表布局元素的类型Element。因为元素是二维的字符矩形,所以顺理成章应包含一个成员contents指向布局元素的内容。内容可以由字符串数组表示,这里每个字符串代表一行。因此,contents返回的结果类型为Array[String]。如:abstract class Element{ def contents:Array[String]} 这个类里,contents被声明为没有实现的方法。换句话说,这个方法是Element类的抽象成员。具有抽

2020-08-12 20:21:00 170

原创 函数式对象详细分析(分子分母计算加减乘除实例)

一、创建Rational在着手设计Rational类之前应该先考虑客户程序员将如何创建新的Rational对象。假设我们已经决定让Rational对象是不可变的,我们将需要那个客户在创建实例时提供所有有需要的数据。(在接下来的分析中,是分子和分母)。因此,我们可以这么设计:calss Rational(n:Int,d:Int)首先应该注意到的是如果类没有主体,就不需要指定一对空的花括号 。在类名Rational之后的括号里的n和d,被称为类参数。scala编译器会收集这两个类参数并创造出带同样的两

2020-08-11 10:54:57 1243

原创 Scala的三个位移方法

一、左移(<<)示例:1<<2res0:Int = 4解释:1<<2,二进制的1是0001指左操作数即0001被向左移动2个位置(填入0),产生结果是二进制的0000 0000 0000 0000 0000 0000 0000 0100,即4.二、右移(>>)示例:-1>>31res1:Int = -1解释二进制的-1是1111 1111 1111 1111 1111 1111 1111 1111。-1>>31,-1

2020-08-10 14:11:05 831

原创 使用Scala从文件里读取文本行

代码呈现import scala.io.Sourceobject Test { def main(args: Array[String]): Unit = { def widthOfLength(s: String) = s.length.toString.length val filePath = "文件路径" if (filePath.length > 0) { val lines = Source.fromFile(filePath, "UTF

2020-08-10 11:41:17 1783 2

原创 使用集(set)和映射(map)(绝对新手讲解)

一、概述Scala的集合(collection)库区分为可变类型和不可变类型。例如,array具有可变性,而list保持不变。对于set和map来说,Scala同样有可变和不可变的,不过并非各提供两种类型,而是通过类继承的差别把可变性差异蕴含其中。二、set的基本构造方法object Test{ def main(args: Array[String]): Unit = { var jetSet = Set("baba","haha") jetSet += "Lear" p

2020-08-10 10:31:11 139

原创 Scala中如何使用元组

一、概述元组是很有用的容器对象。与列表一样,元组是不可变的;但与列表不同,元组可以包含不同类型的元素。比如列表只能写成List[Int]或List[String],但元组可以同时拥有Int和String。元组使用场景很多,比方说,如果需要在方法里返回多个对象。Java里的做法是创建JavaBean以包含多个返回值,Scala里可以仅返回元组。而且做起来也很简单:只要把元组实例化需要的对象放在括号里,并用逗号分隔即可。元组实例化之后,可以用点号、下划线和基于1的索引访问其中的元素。二、访问元组的元素示例

2020-08-10 09:55:53 411

原创 使用多线程输出数列

一、认识线程计算机的操作系统大多采用任务和分时设计,多任务是指在一个操作系统中可以同时运行多个程序,例如,可以在使用qq聊天的同时听音乐,即有多个独立运行的任务,每个任务对应一个进程,每个进程又可以产生多个线程。1.进程进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。操作系统同时管理一个计算机系统中的多个进程,让计算机系统中的多个进程轮流使用CPU资源。进程的特点:进程是系统运行程序的基本单位每一个进程都有自己独立的

2020-08-10 09:11:31 231

原创 用三分钟的浏览让你看懂java的反射机制(概念+方法+示例,吐血整理)

一、认识反射1.反射机制java反射机制是指在运行状态中,动态获取信息以及动态调用对象方法的功能。java反射有三个动态性质运行时生成对象实例运行期间调用方法运行时更改属性java的程序执行过程:java文件—>编译器---->class文件----->java虚拟机----->运行程序反射原理而java的反射机制在编译时并不确定是哪个类被加载了,而是在程序运行时才加载,探知,使用。这样的特点就是反射。在计算机科学领域中,反射是指一类应用,它们能够描述和自控制

2020-08-07 09:02:01 282

原创 使用对象流读写对象信息

一、认识序列化通俗点理解,序列化就是将对象的状态存储到特定存储介质中的过程,也就是将对象状态转换为可保持或传输格式的过程。在序列化过程中,会将对象的公有成员和私有成员包括类名转换为字节流。然后再把字节流写入数据,存储到存储介质中,这里说的存储介质通常指的是文件。意义使用序列化的意义在于将java对象序列化后,可以将其转换为字节序列这些字节序列可以保存在磁盘上,也可以借助网络进行传输,同时序列化后的对象保存的是二进制状态,这样实现了平台无关性,即可以将在windows操作系统中实现序列化的一个对象,传输

2020-08-06 09:59:46 1098 1

原创 java使用I/O操作文件

一、操作文件或目录属性关于File的构造方法方法说明File(String pathname)用指定的文件路径构造文件File(String dir,String subpath)在指定的目录下创建指定文件名的路径File(File parent,String subpath)根据一个文件对象和一个字文件构造文件对象parent参数指定目录文件,subpath参数指定文件名关于File类的常用方法方法说明boolean exists测试

2020-08-05 14:44:29 226 1

原创 JAVA.util包中的常用类(日期操作类与Random类)

一、概述java.util包也是Java内置的一个工具包,它包含了集合框架、日期和时间、随机函数生成器等各种使用工具类。java.util工具包不会自动导入,如果要使用该包中的类,则必须在程序的开始部分手动导入。二、日期操作类java.util中提供的和日期时间相关的类有Date类、calendar类和simpleDateFormat类等1) Date类对象用来表示日期和时间,该类提供了一系列操作日期和时间各组成部分的方法。Date类中使用最多的是获取系统当前的日期和时间2)Calendar类是用

2020-08-03 15:57:44 1549

原创 Java中操作字符串

一、String类的概述及常用方法概述String类提供了许多有用的方法,例如,获得字符串的长度、对两个字符串进行比较、连接两个字符串以及提取一个字符串中的某一部分等。可以使用String类提供的方法来完成对字符的操作。String类的常用方法1)求字符串长度length():调用length()方法的语法格式如下字符串.length();length() 返回字符串的长度示例:注册新用户,要求密码长度不能小于6位import java.util.Scanner;public class

2020-08-03 10:17:44 469

原创 Java.lang包中的常用类的使用(枚举、包装类、Math类)

一、java API中的常用包java.lang:编写java程序时最广泛使用的包,自动导入到所有的程序中,包含了java程序的基础类和接口。包装类、Math类String类等常用的类都包含在此类中,java.lang包还提供了用于管理类的动态加载、外部进程创建、主机环境查询和安全策略实施等“系统操作的类”。java.util:包含了系统辅助类,特别是Collection、List和Map等集合类java.io:包含了与输入、输出有关的类java.sql:包含了与数据库相关的类。二、认识枚举

2020-07-31 16:12:06 1175

原创 用示例看会scala函数

1.函数定义a指你定义的参数即4,b指你定义的参数即3;Int是a和b的参数类型,最后的Int指的是整个函数的类型 def fun (a:Int,b:Int):Int ={ if (a>b)a else b } println(fun(4,3))2.递归函数同时这也是个嵌套函数,里面夹杂着if和else的逻辑结构,控制台输出后不难看出他是一个依次递减并相加的关系。def fun2(num: Int): Int = { if (num == 1)

2020-07-29 18:56:09 113

原创 SQL语句操作数据库表(DDL)全命令

一、创建数据库表create table[if not exists]表名()1.1单字段主键create table[if not exists]表名(字段1数据类型PRIMARY KEY,)在定义所有字段后指定主键create table student( 'studentNo' INT (4), ... primary key(studentNo)) 1.2多字段联合主键create table student('id' INT(4),'name' VARCHAR(

2020-07-24 11:49:26 755

原创 MySQL数据库的基本操作语句

1.创建数据库create database myschool;注意!在MySQL中,以英文半角分号(;)作为一条命令的结束符,且在windows系统下,默认不区分大小写。2.查看数据库列表show databases;3.选择使用数据库use myschool;4.删除数据库drop database myschool;提示:在创建数据库的时候若是数据库已经存在,可以使用以下语句:create database if not exists myschool;...

2020-07-24 10:50:26 348

原创 HBase Java 核心API介绍(最重要核心帮你列全)

1.HBaseConfiguration它是HBase的配置类,通过HBaseConfiguration类可以对HBase运行时环境进行配置,所有的操作都需要先创建HBaseConfiguration类的实例,可以通过该类的静态方法create()获得。用法示例如下:Configuration configuration = HBaseConfiguration.create();上述语句会从classpath中查找hbase-site.xml文件如果查不到则使用默认配置文件2.Connection

2020-07-23 15:03:44 580

原创 用《王者荣耀》游戏玩家信息管理操作教会使用hbase

一、任务描述主要使用HBase shell的方式实现对王者荣耀游戏玩家信息表的操作,包括表的创建、删除及数据的插入、查询等操作。二、了解并使用DDL操作创建王者荣耀玩家信息表HBase Shell常用DDL(数据定义语言)命令HBase Shell命令功能描述list列出HBase中的所有表create创建一张表describe列出表的详细信息alter修改表的列族disable禁用表,使表无效enable启用表,使表有效drop

2020-07-23 13:57:05 2454

原创 Hbase基础

一、了解HBase1.HBase是什么HBase是一个高可靠、高性能、面向列、可伸缩、可实时读写的分布式数据库。HBase基于HDFS作为存储单元,可以快速随机访问海量非结构化和半结构化数据2.Hbase和HDFS的区别HDFSHBase适合存储大量文件的分布式文件系统建立在HDFS上的数据库不支持款速单独记录查询支持在较大的表中快速查询支持高延迟批量处理支持在数十亿条记录中低延迟访问单个行记录只能顺序访问提供的数据内部适用哈希表并提供随机接入,利用存储

2020-07-23 10:09:29 308

原创 使用异常处理机制解决问题

一、关于异常认识异常:1)异常是指在程序的运行过程中所发生的的不正常的事件,如所需文件找不到、网络连不通或连接中断、算术运算正常(如被零除)、数组下标越界、装载一个不存在的类、对null对象操作、类型转换异常等。异常会中断正在运行的程序。2)简单的处理异常,我们可以添加if-else语句对各种异常情况进行判断处理。但是使用这种方式有不可忽视的缺点。代码臃肿,加入了大量的异常情况判断和处理代码程序员花费更多时间在异常处理的代码上,影响开发效率很难穷举所有的异常情况异常和业务代码交织在一起,影响

2020-07-17 18:38:59 926

原创 面向对象的知识实现愤怒的小鸟

一、设计分析在手机游戏“愤怒的小鸟中”,有多种角色。我们以主角小鸟为例。当弹弓拉到极限后,小鸟就会飞出去进行攻击,这说明,小鸟都有飞的行为,即一个方法fly()同时飞的行为都是一样的。同时,小鸟发射出来的时候都会叫,但明显的是每个小鸟的叫声是不一样的,我们通过设计接口来实现让不同的小鸟拥有不同的叫声。并且,在这款游戏中,每个小鸟都是有他们独特的攻击方式的。结合这些特点我们可以考虑使用接口来实现,那么我们接下来就来实现这个小游戏吧!二代码实现1.定义鸟叫的接口//定义鸟叫的接口public int

2020-07-17 16:28:52 722

原创 面向对象之接口

一、初步认识接口听起来接口好像比较抽象难以理解,为什么接口会和抽象类有关系呢?那么我们来看看生活中的接口。就用USB接口来说,USB接口相关工作是按照如下步骤进行的:约定USB接口标准制作符合ISB接口约定的各种具体设备把USB设备插到USB接口上进行工作而java中的接口和生活中的接口类似,它提供一种约定,使得实现接口的类(结构)在形式上保持一致。就像USB接口可以让USB风扇插入,可以让USB鼠标插入,可以让U盘让鼠标插入,所服务的对象他们与USB接口接入的线头都是一样的,这就是结构、

2020-07-17 15:06:48 169

原创 面向对象之抽象类

一、初步认识抽象类和抽象方法1.首先尤为重要的是要区分普通方法和抽象方法在java中,当一个类的方法被abstract关键字修饰时,该方法称为抽象方法,抽象方法所在的类必须被定义为抽象类当一个方法被定义为抽象方法后,意味着该方法不会有具体的实现,而是在抽象类的子类中通过方法重写进行实现。定义抽象方法的语法格式:[访问修饰符]abstract<返回类型><方法名>([参数列表])abstract关键字表示该方法被定义为抽象方法普通方法和抽象方法对比,主要有下列两点区别抽

2020-07-17 14:17:56 215

原创 面向对象的重要特性之多态!

**多态是面向对象的一个重要特性!**那么我们来认知一下什么是多态。一、什么是多态在程序设计的术语中,它意味着一个特定类型的变量可以引用不同类型的对象,并且能够自定地调用引用的对象方法,也就是根据作用到的不同对象类型,响应不同的操作。方法重写是实现多态的基础。二、简单示例认识多态下面通过这个例子简单认识多态有宠物类父类(Pet),有几个子类(Bird)、(Dog)等宠物类定义了看病的方法toHospital(),子类分别重写了看病的方法。在main方法中分别实例化各种具体的宠物,并调用看病的方法。

2020-07-17 10:48:49 434

原创 MapReduce的应用开发与编程模型详细进阶概述

!!!学习之前请回顾一下之前的菜鸟基础介绍https://blog.csdn.net/weixin_42507474/article/details/107055643首先我们 复习一下什么是MapReduce:是Google的一个编程模型,采用并行计算的处理方式来及进行大数据的计算**MapReduce拥有“分散任务、汇总结果”的特点,及把对大规模数据集的操作,分发给主节点管理下的各个子节点共同完成,然后整合各个子节点的中间结果,从而得到最终的计算结果。**这以特点有效的更简洁的让程序员的程序

2020-07-15 18:38:11 658

原创 Hive的基本窗口函数

一、Hive函数分类1)从输入输出角度分类标准函数:一行数据中的一列或多列为输入,结果为单一值聚合函数:多行的零列到多列为输入,结果为单一值表生成函数:零个或多个输入,结果为多列或多行2)从实现方式分类内置函数自定义函数1.UDF:自定义标准函数2.UDAF:自定义聚合函数3.UDTF:自定义表生成函数二、内置函数Hive提供大量内置函数供开发者使用1)标准函数字符函数类型转换函数数学函数日期函数集合函数条件函数2)聚合函数3)表生成函数int一、字符函数

2020-07-13 13:57:05 221

原创 Hive:聚合运算

一、GRPUP BY作用:用于分组注意事项:Hive基本内置聚合函数与GROUP BY 一起使用如果没有指定GROUP BY 字句,则默认聚合整个表除聚合函数外,所选的其他列也必须包含在group by 中GROUP BY支持使用CASE WHEN或表达式示例以表中城市分组select city ,count(1) from emp_psn group by city;以城市分组对phone列进行统计查询城市,注意的是group by后面要把列写全。多不行,漏也不行。select

2020-07-10 10:04:34 528

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除