自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 比较 Hibernate与 MyBatis

第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。MyBatis 参考资料官网:http://www.mybatis.org/core/zh/index.htmlHibernate参考资料: http://docs.jboss.org/hibernate/core/3.6/reference/zh-.

2021-08-18 12:36:30 409

原创 什么是Hibernate

什么是Hiberatehibernate优点:1、封装了jdbc,简化了很多重复性代码。2、简化了DAO层编码工作,使开发更对象化了。3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。Hiberate框架学习目标:1、掌握Hiberate的基本配置——即搭建Hiberate开发环境;2、掌握Hibe

2021-08-18 11:35:10 315 2

原创 Java多线程开发(二)

Java多线程开发(二)一、多线程并发安全问题多线程之间存在相互抢占(CPU执行权-随机),抢占发生在代码的每一步,产生错误的数据问题,导致多线程数据并发安全问题。解决方式——加锁1、同步代码块锁(互斥锁)synchronized(锁对象){}根据锁对象共享进来的线程对象保证在执行代码块内容时不会有抢占锁对象:一个对象,可以把哪些线程对象共享进来可以把当前参与的线程对象共享进来的对象方法区资源(把所有的线程对象都共享)this(当参与的所有线程对象被Runnable实现类对象共享)2

2021-04-30 15:10:33 256 3

原创 Java多线程开发(一)

Java多线程开发(一)一、什么是进程,什么是线程进程:进程是指在一个系统中正在运行的一个应用程序,程序一旦运行就是进程。线程:操作系统上的应用程序可以拆分成多个小任务,成对的小任务就是线程,一个进程可以拥有多个线程(每个线程使用的是所属进程的栈空间)。在某个时刻,CPU的某个核中只能执行一个进程,进程可以拆分成多个线程,CPU会轮换线程执行。线程是进程的一个实体,是进程的一条执行路径,多个线程共享进程的堆和方法区资源但是每个线程有自己的程序计数器和栈区域。线程是CPU独立运行和独立调度的基本单

2021-04-30 15:03:06 165 2

原创 mysql中当一个查询语句同时出现where、group by、having、order by时,顺序及用法:

mysql中当一个查询语句同时出现where、group by、having、order by时,顺序及用法:select 选择的列from 表where 查询的条件group by 分组属性 having 分组过滤的条件order by 排序属性limit 起始记录位置,取记录的条数其中select 选择的列 from 表 where 查询的条件以上是基本的结构group by 分组属性 having 分组过滤的条件这个是按照分组属性进行分组,所有分组属性上值相同的记录被分为一

2021-02-09 23:20:10 1199

原创 DDL中常见的六大约束

约束含义:一种限制,用来限制表中的数据,为了保证数据的可靠性和准确性create table 表名(字段名 字段类型 约束)1、not null:非空,用来保证该字段对应的值不能为空(姓名、学号)2、 default:默认约束,用来保证该字段有默认值(性别)3、 primary key:主键约束,用来保证该字段的值具有唯一性,并且非空(员工编号)4、 unique:唯一约束,用来保证该字段的值具有唯一性,对应的值能为空(座位号)5、 check:检查约束,【mysql不支持c

2021-02-09 23:03:37 597

原创 MYSQL中的DDL、DML、DCL、DQL的区别

MYSQL中的DDL、DML、DCL、DQL的区别SQL:结构化查询语句,是一种特殊的编程语言,用来存储以及查询更新和管理数据库系统分类:DDL:数据定义语言,用来定义数据库对象(库、表、列),负责数据结构定义常用create—创建 \alter—修改 \drop—删除特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也比记录大个层次。以表举例:Create创建数据表,Alter可以更改该表的字段,Drop可以删除这个表,从这里我们可以看到,DDL所站的高度,他

2021-02-09 22:48:17 1948

原创 什么是redis

什么是redisredis:是 nosql的,key-value数据结构的,内存运行的,支持持久化的,支持分布式的,支持缓存功能的,数据库(读写数据容器);、相关概念:1.no-sql: not only structured query language 不仅支持结构化查询语言,和sql语言语法是一对对立的概念.2. 结构化数据:一批可以抽取共同属性的数据集合(表格,学生信息,学校信息,员工表格)关系型数据库中都是保存的结构化数据–操作结构化数据的技术 sql语言3. 非结构化数据:一批不.

2021-01-18 11:40:26 146

原创 spring中的两种ioc容器

spring中的两种ioc容器一、BeanFactory:是spring中提供的最简单最基本的容器;这个容器只提供了IOC/DI的功能;这个容器中最主要个方法就是getBean()方法;通常我们会使用xmlBeanFactory对象创建容器:XmlBeanFactory就是针对最基本的ioc容器的实现, 这个IOC容器可以读取XML文件定义的BeanDefinition(XML文件中对bean的描述);二、ApplicationContext:是一个功能更加全面的容器,一般我们直接使用这个

2021-01-06 20:42:04 1711

原创 Kafka的消息系统语义(数据传输的可靠性保障)

Kafka的消息系统语义概述在一个分布式发布订阅消息系统中,组成系统的计算机总会由于各自的故障而不能工作。在Kafka中,一个单独的broker,可能会在生产者发送消息到一个topic的时候宕机,或者出现网络故障,从而导致生产者发送消息失败。根据生产者如何处理这样的失败,产生了不通的语义:1、至多一次语义(At most once semantics):如果生产者在ack超时或者返回错误的时候不重试发送消息,那么消息有可能最终并没有写入Kafka topic中,因此也就不会被消费者消费到。但是为了避

2020-12-24 18:07:25 207 1

原创 JDBC连接数据库的六个步骤

JDBC连接数据库(编辑)步骤(主要有六个步骤)1.注册JDBC驱动:Class.forName(“com.mysql.jdbc.Driver”);显示的加载到JVM中2.获取数据库连接:(1) param1: 要连接数据库的url-----》 String url=“jdbc:mysql://localhost:3306/test?”+ “useUnicode=true&characterEncoding=UTF8”;//防止乱码param2:要连接数据库的用户名–》 String

2020-12-22 20:34:01 2423

原创 kafka集群配置

kafka集群配置1.启动三台云主机2.cd /home/software3.下载kafka的安装包并解压wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/kafka_2.11-1.0.0.tgztar -xvf kafka_2.11-1.0.04.cd kafka_2.11-1.0.05.进入config目录cd config/编辑server.properties文件vim server.properties修改三个位置#broke

2020-12-22 19:04:30 255

原创 rabbitmq五种模式

rabbitmq五种模式1.简单模式2.争抢模式(工作模式,工作争抢模式)3.路由模式 route4.发布订阅模式 fanout5.主题模式 topic6. RPC异步调用模式(不常用)1.简单模式当生产端发送消息到交换机,交换机根据消息属性发送到队列,消费者监听绑定队列实现消息的接收和消费逻辑编写.简单模式下,强调的一个队列queue只被一个消费者监听消费.1.1 结构生产者:生成消息,发送到交换机交换机:根据消息属性,将消息发送给队列消费者:监听这个队列,发现消息后,

2020-12-21 19:26:07 7317 1

原创 什么是消息队列

消息队列1.概括1.1消息队列是什么queue:队列实现排队,先后顺序的数据结构message:消息队列中存放的数据,将自字符串封装的消息对象1.2消息队列的作用❤解耦代码,或者系统通信都可能存在强耦合的关系,可以通过消息队列第三方技术处理强耦合,解耦❤消峰(消除并发峰值)请求到达系统的方法上限,超过上限的请求不丢失不拒绝. 通过引入消息队列可以解决这2个问题2.Rabbimtq2.1介绍企业级别,常见的一种开源消息中间件.实现了sun公司定义的AMQP高级

2020-12-21 18:39:12 224

原创 Hive的函数

函数在Hive中提供了非常丰富的函数用于对数据进行分析或者处理,还允许使用者自定义函数。可以通过desc function 函数名来描述这个函数。案例:提取年份。2020-12-25select year(‘2020-12-25’);2020/12/25方案一:替换select year(regexp_replace(‘2020/12/25’, ‘/’, ‘-’));方案二:切分select cast(split(‘2020/12/25’, ‘/’)[0] as int);·

2020-12-17 20:57:16 132

原创 Hive的数据类型

数据类型1.Hive中的数据类型分为两类:基本类型和复杂类型2.基本类型包含:tinyint,smallint,int,bigint,float,double,boolean,string,timestamp,binary3.复杂类型:array,map和structa. array:数组类型,对应了Java中的集合或者数组。原始数据jack,john lucy,miketom,bob,cindy lily,helen,mary,alexfrank,grace,iran,eden tony,

2020-12-17 20:40:59 4544

原创 MySql的安装(finalshell中)

注意:mysql安装的时候必须是下载完成hive的安装包,并且能够成功启动hive的前提下进行(启动hive命令:sh hive)在home/software目录下cd apache-hive-1.2.0-bin/bin卸载Perconarpm -qa | grep Percona将出现的所有的内容移除掉,例如rpm -ev --nodeps Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64rpm -ev --nodeps Perc

2020-12-17 20:19:38 2093 2

原创 Hive元数据的修改(finalshell中)

在MySQL中赋权,首先进入mysql中grant all privileges on . to ‘root’@‘hadoop01’ identified by ‘root’ with grant option;(注意:hadoop01是指第一台云主机的主机名,可以换成自己的云主机名称)grant all on . to ‘root’@’%’ identified by ‘root’;flush privileges;在MySQL中为Hive存储元数据创建数据库create databa..

2020-12-17 20:09:44 508

原创 Hadoop的伪分布式安装方式

Hadoop的伪分布式安装安装JDK1.8关闭防火墙service iptables stopchkconfig iptables off###如果不能修改主机名,则关闭云主机的初始化服务service cloud-init stopservice cloud-init-local stopchkconfig cloud-init offchkconfig cloud-init-local off修改主机名 - Hadoop集群中,不建议主机名中出现-或者_vim /etc

2020-12-12 14:38:05 104

原创 Hadoop的完全分布式安装方式

Hadoop的完全分布式安装首先,确定你的三台云主机为开启状态三台云主机关闭防火墙service iptables stop(输完命令回车之后如果不出现任何显示表示之前就已经关闭防火墙了,不用担心,继续操作!)chkconfig iptables off(永久关闭防火墙)三台云主机安装JDK(注意:JDK必须是1.8或者以上)关闭三台云主机开启初始化service cloud-init-local stopservice cloud-init stopchkconfig clo

2020-12-12 14:31:06 150

原创 Zookeeper的完全分布式搭建方式

Zookeeper的完全分布式搭建首先,需要开启你的三台云主机在第一台云主机上先通过jps查看,如果出现QuorumPeerMain,则 kill 掉回到software目录下,删除掉Zookeeper的单机模式cd /home/software/rm -rf zookeeper-3.4.8重新解压tar -xvf zookeeper-3.4.8.tar.gz进入安装目录的conf目录下cd zookeeper-3.4.8/conf复制cp zoo_sample.c

2020-12-12 14:13:03 162

原创 Zookeeper的单机安装方式

Zookeeper的单机安装方式关闭防火墙临时关闭:service iptables stop永久关闭:chkconfig iptables off安装JDK要求上课阶段,将所有的软件安装在/home/software目录下cd /home/software下载Zookeeper的安装包wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/zookeeper-3.4.8.tar.gz解压tar -xvf zookeeper-3

2020-12-12 11:26:59 70

原创 元注解了解

除了直接使用JDK 定义好的注解,我们还可以自定义注解,在JDK 1.5中提供了4个标准的用来对注解类型进行注解的注解类,我们称之为 meta-annotation(元注解),他们分别是:@Target注解@Retention注解@Documented注解@Inherited注解1、@Target注解Target注解的作用是:描述注解的使用范围(即:被修饰的注解可以用在什么地方) 。Target注解用来说明那些被它所注解的注解类可修饰的对象范围:注解可以用于修饰 packages、types(

2020-12-07 10:01:12 54

原创 Redis相关的相关命令

1.1Redis命令1.1.1String类型| 命令 | 说明 | 案例| set | 添加key-value | set username admin| get | 根据key获取数据 | get username命令 说明 案例set 添加key-value set username adminget 根据key获取数据 get usernamestrlen 根据key获取值的长度 strlen keyexists

2020-12-03 19:46:03 54

转载 常用排序算法的时间复杂度和空间复杂度

常用的排序算法的时间复杂度和空间复杂度排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度冒泡排序 O(n2) O(n2) 稳定 O(1)快速排序 O(n2) O(nlog2n) 不稳定 O(log2n)~O(n)选择排序 O(n2)

2020-11-25 20:41:49 2665

原创 3、选择排序--数组应用

/*选择排序*/import java.util.Arrays;class ArrayXuanZe{public static void main(String[] args) {//定义数组int[] arr={6,1,7,3,9,2}; //通过嵌套循环实现 for(int i=1;i<arr.length;i++){//外层循环---控制轮数 for(int j=i;j<arr.length;j++){//内层循环---控制参与比较元素范围

2020-11-12 19:33:50 67

原创 4、冒泡排序--数组应用

4、排序—给数组元素排列顺序 冒泡、选择/*冒泡排序*/import java.util.Arrays;class ArrayMaoPao{public static void main(String[] args) {//定义数组int[] arr={6,1,7,3,9,2}; //通过嵌套循环实现 for(int i=1;i<arr.length;i++){//外层循环----控制轮数 for(int j=1;j<=arr.length-i;j++){//内层循环-

2020-11-12 19:31:54 156

原创 2、数组查找--数组应用

3、查找—给定查找数返回数组第一次出现的下标值(无序(依次比较)、有序(二分查找))缺点:有序、查找数靠前class ArrayChaZhao{public static void main(String[] args) {//定义数组//int[] arr={1,2,3,5,6,8};//无序数组int[] arr={1,2,3,5,6,8};//有序数组//给定查找数int num=8;//二分查找//提供三个下标int min=0;int max=arr.length-1;

2020-11-12 19:29:50 105

原创 1、数组遍历--数组应用

1、遍历—依次把数组元素进行输出/*数组遍历/import java.util.Arrays;class ArrayBianLi{public static void main(String[] args) {//定义数组int[] arr={2,4,1,6,9,5};///for循环实现遍历//数组名.length----返回数组长度for(int i=0;i<arr.length;i++){//下标范围System.out.println(arr[i]);}*/ /*/

2020-11-12 19:16:32 100

原创 Java中面向对象的特征之三(多态)

多态定义:代码执行过程中呈现的多种形式—称为多态Java分为编译时期,运行时期编译时多态—在编译时期绑定代码—体现形式相当于–重载(在同一个类中,方法名相同,参数列表不同) Public void m( ){……} Public void m(int i){……}运行时多态—在运行时期绑定代码—体现形式相当于—重写,向上造型(继承)package cn.tedu.duotai;public class DTDemo {public static void main(Strin

2020-11-10 15:54:30 79

原创 Java中面向对象的特征之二(继承)

继承定义: 如果多个类的内容出现重复,把重复的内容放到一个新的类中,通过extends 关键字让原来的类与新的类之间产生关联关系—称为继承。原来的类是子类,新的类是父类。子类可以继承父类部分信息(父类的私有化信息、构造方法和构造代码块都不能被继承)。package cn.tedu.extendsx;public class ExtendsDemo1 {public static void main(String[] args) {//创建子类对象—医生类对象Doctor d=new Docto

2020-11-10 15:45:28 70

原创 Java中的成员变量与局部变量的区别

Java中的成员变量与局部变量的区别有什么区别呢?1、位置不一样:成员变量:方法外,类内局部变量:方法内2、作用范围成员变量:整个类内局部变量:当前的代码块/语句中3、内存成员变量:堆局部变量:栈成员变量存储在堆内存中,并且堆内存中有默认值;局部变量是存储在栈内存中,没有默认值4、生命周期成员变量:随着类创建对象而出现,随着对象被回收而销毁局部变量:当方法被调用时才出现,随着方法执行结束之后被释放...

2020-11-10 15:32:44 127

原创 Java中的构造代码块和局部代码块(区别)

1、构造代码块位置:在方法外,类内{}作用: 属性初始化优先级:优先于所有的构造方法先执行packagecn.tedu.object;publicclassObjectDemo2{publicstaticvoidmain(String[]args){Babyb=newBaby();System.out.println(b.name+","+b.age);}}//代表婴儿的类–创建对象就是真实的婴儿//要求:不管怎么出生,婴儿的名字都叫莉莉,年龄是1岁classBaby{//属性

2020-11-10 15:23:15 295

原创 Java中的普通方法与构造方法(区别 续)

1.普通方法:定义:简单的说方法就是完成特定功能的代码块。普通方法定义格式:修饰符 返回值类型 方法名 (参数类型 参数名1,参数类型 参数名2,…){函数体;return 返回值;}返回值类型用于限定返回值的数据类型。普通方法分为:有明确返回值的方法和没有明确返回值的方法。A.有明确返回值的方法的调用可以单独调用(无意义)、输出调用、赋值调用(推荐)。public static int sum (int a , int b){int c =a+b;return c ;

2020-11-10 14:55:02 3368

原创 全文检索概括

全文检索概括1.背景概括1.1背景需求数据特点: 大,增长快搜索需求: 支持海量数据搜索速度快(亿条数据,秒级查询) 准支持丰富搜索条件1.2传统查询搜索不能满足需求文档搜索/系统文档windows/linux 搜索文档内容,先加载到内存,在内存搜索.缺点:不支持海量数据不支持丰富搜索数据库查询搜索能够支持不小的数据量,快速,准确,支持丰富查询功能,对字,词的搜索支持,句子,段落支持差很多搜索领域中,基于上述一部分原因,出现了全文检索技术,全文检索技术在搜索功能上应用非常广泛.

2020-11-09 11:25:33 219 2

原创 单机数据库的表格设计模式(范式设计)

单机数据库的表格设计模式1、范式设计早期数据库使用都是单机.如果用户量不大,访问并发不特别高,但是硬盘成本比较高,一般都会使用三范式设计模式来设计表格—节省空间,牺牲时间(查询需要大量的关联) 。三范式❤第一范式:表格设计不能出现可以拆分的字段id location phone name1 北京 69887656,13309987653 王翠花2

2020-10-30 17:25:33 354 1

原创 关于@RequestMapping注解的使用

@RequestMapping注解RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping注解有六个属性,下面我们把她分成三类进行说明。1、 value, methodvalue: 指定请求的实际地址,指定的地址可以是URI Template 模式;method: 指定请求的method类型, GET、POST、PUT、DELETE等;2、 consumes,produce

2020-10-29 16:57:34 368

原创 redis槽道原理

redis槽道原理1、槽道原理相关的2个问题1.1节点如何判断槽道号管理权1.2节点如何保存其他槽道管理者信息2、槽道原理在redis-cluster 存在分布式计算原则–hash 槽,引入16384个槽道 slot.2.1槽道组成结构16384位的二进制,以2048个元素的byte数据存储在每个节点内存里 byte[2048]—位序列16384个元素的数组,元素值,指向的是一个内存的节点对象node—共享数组/索引数组2.2位序列❤每个节点在集群创建之初都会根据槽道管理权的分配创建一个

2020-10-27 17:40:29 622

原创 一致性hash(利用hash环将key对应node)

一致性hash1.一致性hash原理1)基础:麻省理工大学97年创建的一个数学模型,后被应用到分布式领域.实现了一个hash映射计算,可以将任意的内存数据对象通过hash散列映射到[0,2^32-1] 。由于结果是32位二进制,0减一变成2^32-1 最大数加一变成0,这个取值区间称谓hash环2)数据映射计算:节点收集信息时,每个节点信息作为一个对象映射到这个环上一个整数key值作为字符串数据也会映射到这个环上一个整数3)KEY与节点对应原则key的整数顺时针寻找最近节点整数做对应关系

2020-10-27 15:56:08 253 1

原创 分片计算逻辑hash取余

分片计算逻辑hash取余❤hash取余算法一旦涉及到单调性,最先考虑到的计算逻辑就是hash散列.hash取余是一种分布式结构中非常常见经典的计算方法.hash取余对数据key-value的key值做hash取余计算,得到结果只要key值不变(字符串相等) 取余结果在[0,1,2,3,…,n-1] n=分片个数(节点个数),计算公式:(key.hashCode()&Integer.MAX_VALUE)%N 其中N为分片(节点)个数key.hashCode(): 对key做hash散列计算,

2020-10-26 16:29:53 1531

空空如也

空空如也

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

TA关注的人

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