自定义博客皮肤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)
  • 收藏
  • 关注

原创 oracle基本查询

一、简单查询查询所有员工的信息select * from emp;查询显示指定列(编号,姓名,职位)select empno,ename,job from emp;修改显示别名(中文编号,姓名,职位)select empno as “编号”,ename “员工信息”,job 职位 from emp;所有职位(去重)select distinct job from e...

2019-03-07 16:40:40 147

原创 synchronized和volatile的区别?

一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。2)禁止进行指令重排序。volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;synchronized则是锁定当前变量,只有当前线程可...

2019-02-23 20:23:49 123

转载 ReenTrantLock可重入锁(和synchronized的区别)总结

ReenTrantLock可重入锁(和synchronized的区别)总结可重入性:从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁。锁的实现:Synchronized是依赖于JVM实现的,而ReenT...

2019-02-16 21:39:11 168

转载 浅谈SQL优化入门:2、利用索引

索引是众所周知的可以提高查询的速度,且针对的是具体的字段,使用方式为:(MySQL中,一般建立主键,数据库会自动建立其聚集索引;而其他字段的索引,若不具体指明则建立非聚集索引)(也可以通过关键字 CLUSTERED 或 NONCLUSTERED 指定聚集索引或非聚集索引,因为本篇不涉及具体应用案例,故不展开)1、索引1.1 索引的概念我们在数据库查询过程中,即使满足给定条件的记录很少,...

2019-02-14 21:54:23 237

转载 浅谈SQL优化入门:1、SQL查询语句的执行顺序

1、SQL查询语句的执行顺序1 (7) SELECT2 (8) DISTINCT <select_list>3 (1) FROM<left_table>4 (3) <join_type> JOIN <right_table>5 (2) ON <join_condition>6 (4) ...

2019-02-14 21:25:26 231

原创 Java面试题—try语句中执行return语句

题目:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?也许你的答案是在return之前,但往更细地说,我的答案是在return中间执行,请看下面程序代码的运行结果:public class Test { /** * @param args add by zxx ,Dec 9, 2008...

2019-01-26 12:22:29 1023

原创 StringBuffer与StringBuilder的区别?

StringBuffer和StringBuilder类都表示内容可以被修改的字符串,StringBuilder是线程不安全的,运行效率高,如果一个字符串变量是在方法里面定义,这种情况只可能有一个线程访问它,不存在不安全的因素了,则用StringBuilder。如果要在类里面定义成员变量,并且这个类的实例对象会在多线程环境下使用,那么最好用StringBuffer。...

2019-01-26 11:18:55 87

原创 String 和StringBuffer的区别?

JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。String类表示内容不可改变的字符串。而StringBuffer类表示内容可以被修改的字符串。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。另外,String实现了equals方法,new Str...

2019-01-26 11:17:55 101

原创 Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor的英文意义是地板,该方法就表示向下取整,所以,Math.floor(11.6)的结果为11,Math.floo...

2019-01-18 11:47:36 1102

原创 Integer与int的区别

int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,所以用el表达...

2019-01-18 11:37:30 99

原创 "=="和equals方法究竟有什么区别?

“= =”操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用= =操作符。如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet obj = new Object();变量obj是一个内存,new Object()是另一个内...

2019-01-18 10:54:33 113

转载 Java多线程(三)—— synchronized关键字详解

一、多线程的同步1、为什么要引入同步机制在多线程环境中,可能会有两个甚至更多的线程试图同时访问一个有限的资源。必须对这种潜在资源冲突进行预防。解决方法:在线程使用一个资源时为其加锁即可。访问资源的第一个线程为其加上锁以后,其他线程便不能再使用那个资源,除非被解锁。2、程序实例用一个取钱的程序例子,来说明为什么需要引入同步。在使用同步机制前,整体程序如下:package com.dem...

2019-01-17 11:06:21 95

转载 Java多线程(二)——常用的实现多线程的两种方式

一、继承Thread类创建线程类Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码。Java使用线程执行体来代表这段程序流。Thread类的声明如下:public class Thread implements Runnable {}可以看到,Thread本身就实现了Runn...

2019-01-16 17:49:58 107

转载 Java多线程(一)多线程基础

一、进程进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中,几乎所有运行中的任务对应一条进程(Process)。一个程序进入内存运行,即变成一个进程。进程是处于运行过程中的程序,并且具有一定独立功能。描述进程的有一句话非常经典——进程是系统进行资源分配和调度的一个独立单位。进程是系统中独立存在的实体,拥有自己独立的资源,拥有自己私有的地址...

2019-01-16 17:27:31 110

原创 浅谈java中的final关键字

一、final关键字的基本用法在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。1、修饰类当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。2、修饰方法下面这段话...

2019-01-16 13:54:09 76

转载 再谈redis

一、介绍一下RedisRedis是一个开源的,基于内存的数据结构存储,可用作于数据库、缓存、消息中间件。从官方的解释上,我们可以知道:Redis是基于内存,支持多种数据结构。 从经验的角度上,我们可以知道:Redis常用作于缓存。1.1为什么要用Redis?从上面可知:Redis是基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。我们可以发现这不...

2019-01-12 14:13:28 158

转载 java后端开发每天遇到的jsp

一、JSP基础语法1、JSP模板元素JSP页面中的HTML内容称之为JSP模版元素。JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。2、JSP脚本片段JSP脚本片断(scriptlet)用于在JSP页面中编写多行Java代码(在<%%>不能定义方法)。语法:<%多行java代码 %>例如:注意:1、JSP脚本片断中只能出现java代码,不能出...

2019-01-09 17:48:09 253

转载 Tomcat的使用

一、简介Tomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,...

2019-01-09 16:54:56 315

原创 大数据面试题

hive内部外部表的区别?答:内部表先有表 后有数据,数据被存储到hdfs目录下表对应的文件夹进行管理。使用Hive命令删除表相关的操作时HDFS上对应的文件就会被删掉。外部表先有数据后有表,hive表关联到该位置管理其中的数据。Hive的一切命令都不能够对外部文件造成影响。Hadoop和spark区别?答:hadoop核心包括Hadoop分布式文件系统(HDFS),Hadoo...

2019-01-07 10:16:21 527 2

原创 数据序列化

数据序列化(Serialization)数据序列化就是将对象或者数据结构转化成特定的格式,使其可在网络中传输,或者可存储在内存或者文件中。反序列化则是相反的操作,将对象从序列化数据中还原出来。而数据序列化后的数据格式可以是二进制,可以是XML,也可以是JSON等任何格式。我们要明确的是:数据序列化的重点在于数据的交换和传输。序列化的关注点/衡量标准1.序列化后的数据大小因为序列化后的字...

2019-01-07 10:03:13 2667

原创 Spark

简述是一种快速、通用、可扩展的大数据分析引擎。它是不断壮大的大数据分析解决方案家族中备受关注的明星成员,为分布式数据集的处理提供了一个有效框架,并以高效的方式处理分布式数据集。Spark集批处理、实时流处理、交互式查询、机器学习与图计算于一体,避免了多种运算场景下需要部署不同集群带来的资源浪费。目前,Spark社区也成为大数据领域和Apache软件基金会最活跃的项目之一,其活跃度甚至远超曾经只能...

2019-01-07 09:59:36 135

原创 Scala

简述Scala既是面向对象的语言,也是面向函数的语言。scala可以为你在做大量代码重用和扩展是提供优雅的层次结构,并可以通过高阶函数来实现这样的目标。(高阶函数是函数式编程里的特性之一,允许函数作为参数传递,也允许函数作为返回值来返回)Scala语言的特点Scala并不适于编程的初级课程。相反,它是为专业程序员定制的强力语言。1)它是一门现代编程语言,作者是Martin Odersky(...

2019-01-05 16:00:53 86

原创 Storm

Storm概述实时计算可以实时获取数据进行运算,得到计算结果,在很多实时性要求比较高的场景下有大量的应用.例如:微博热门话题榜单、电商网站实时推荐、地图路况信息。实时计算和离线计算有较大的不同,实时计算强调实时性,数据不断流入,实时运算后结果实时反馈,实时计算没有数据积累的过程,有开始没有结束,如果不人为停止会一直运行下去。Storm是一个开源的分布式实时计算系统,可以简单、可靠的处理大量的...

2019-01-05 15:56:38 88

原创 Kafka

KafKa是一个分布式的消息队列,既然说到了消息队列那么也就意味着它的出现是为了解决通信问题的。具体来说就是发送消息的一方(在这里我们称之为生产者)会将数据写到消息队列中然后消息的接收者(在这里我们称之为消费者)会从这个队列中读取数据进而达到通信的目的。KafKa的设计非常的特别,它没有采用传统的基于内存读写的队列而是将整个队列读写的过程都放在了硬盘上。这里我们可能会担心硬盘的读写效率,但事实上...

2019-01-05 15:52:59 126

原创 Hbase

HBase概述HBase是一款基于HDFS做存储的,Zookeeper做调度的能够存储半结构化与非结构化数据的数据库。它不同于Hive它是一个真正的数据库产品,它的内部基于顺序IO与内存读写,能够非常高效的实现数据的增删改查。HBase的总体架构HBase有如下几个部件协调服务:HMaster:主要负责,给HRegionServer分配Region,HRegionServer的负载均衡。负...

2019-01-05 15:45:04 177 1

原创 Hive

Hive的本质是一个翻译器。它的任务就是将一种类SQL(HQL)的语句翻译成Mapreduce任务,通过执行Mapreduce任务来对海量数据仓库进行处理。从表面上来看它就是一个数据仓库能够查询与分析数据。它与Hadoop的关系如下图所示:与传统数据库相比Hive的主要特点为:①分析离线存储数据,不具有实时性②不支持事务,由于是历史数据所以没有必要去增删改。③不支持修改,由于是历史数据所...

2019-01-05 15:31:27 111

原创 flume

Flume概述flume是分布式的,可靠的,用于从不同的来源有效收集 聚集 和 移动 大量的日志数据用以集中式管理的系统。他的核心思想就是从不同的数据源(比如说远程的http请求,监听远程的日志文件,当然也有可能是远程的程序发出的序列化数据)获得数据然后放入数据中转站,然后不同的数据中转站之间可以进行相互连接构成一个中转站网,最后我们可以将一根管子通到中转站上的任何一个节点来接收数据。是ap...

2019-01-05 15:27:52 57

原创 Hadoop

Hadoop是基于Google的集群系统理论来进行的开源实现:Google的集群系统:GFS、MapReduce、BigTableHadoop的集群系统:HDFS、MapReduce、HBaseHadoop设计的初衷是为了解决Nutch的海量数据存储和处理的需求,可以解决大数据场景下的数据存储和处理的问题。一开始HDFS和MapReduce是作为Nutch的两个组件来使用,后来发现这两个组件...

2019-01-05 15:18:43 163

原创 HDFS

概述Hadoop分布式文件存储系统HDFS为了保证数据存储的可靠性和读取性能,对数据进行切块后进行复制(保证副本的数量)并存储在集群的多个节点中.HDFS中存在一个名字节点NameNode和多个数据节点DataNodeHDFS优点1.支持超大文件2.检测和快速应对硬件故障故障检测和自动恢复(心跳机制)是hdfs文件系统的一个设计目标3.流式数据访问hdfs的的数据处理规模比较大,...

2019-01-05 14:58:07 161

原创 Zookeeper

Zookeeper是一个分布式的协调服务框架,Zookeeper可以解决分布式环境常见的问题:集群管理、统一命名服务,信息配置管理,分布式锁等等。Zookeeper特性总结数据一致性client不论连接到哪个Zookeeper,展示给它都是同一个视图,即查询的数据都是一样的。这是zookeeper最重要的性能。Zookeeper通过ZAB协议算法来确保数据一致性原子性对于事务决议的更...

2019-01-05 14:47:17 64

原创 ES

ES集群中,节点的角色1 master:保存集群的元数据元数据:管理当前集群的所有数据内容,包括索引记录(切片数量,副本数量,切片和副本的存放位置,data节点的各自信息)2 data:只负责切片数据的读取;3 index:负责和客户端通信,通信之后,从客户端获取请求,到master获取权限,直接到data读取数据;由于是master间保持通信,同步元数据,都能正确管理集群,容易导致"...

2019-01-05 14:44:16 123

原创 lucene

lucene开源的全文检索引擎工具包;Doug Cutting 2000年左右,lucene是使用java语言开发的具有如下的特点:稳定,索引性能高(创建搜索速度)现代磁盘每小时索引150G数据;对内存的要求1MB增量索引和批量索引速度几乎一样索引的大小约占索引整体文件20%提供多种搜索功能:短语,通配符,近似,范围查询等等lucene自带的各种分词器,无法处理复杂的多种语言数据的环...

2019-01-04 11:25:25 106

原创 RabbitMq

消息队列如何产生的:与认证系统的使用逻辑相关;认证系统:对客户端传递的数据进行复杂的认证计算之后,将认证结果返回;两方系统同时提供若干线程,完成这样一次系统间的通信;只要认证逻辑没有完成,整体的调用就失败;整体的调用逻辑需要重新调用;两方资源浪费—系统通信强耦合。多个系统同时请求认证系统进行认证计算,对后台认证系统的并发是考验,不希望任何一个客户端的系统请求被拒绝的;但是由于硬件限制,...

2019-01-04 11:23:47 128

原创 mycat

Mycat简介是一个彻底的开源的面向企业的应用开发的大型数据集群中间件;特点:1 高性能的支持读写分离的中间件2 100亿级别的大表水平分片,并行计算3 整合多种资源多源输入,单源输出单源的输入,多源输出多源输入,多源输出概念逻辑库: 底层控制若干数据库的集群节点;数据库中的数据通过mycat观察或者使用是非常庞大的,实际来源并不是自身内容,是管理的数据库集群提供的;逻辑表...

2019-01-04 11:20:14 76

原创 redis

概念是一个非关系型数据库,按照key-value的形式来存储非结构化数据,可持久化,内存,缓存可持久化,内存;内存存储数据缺点:量少(分布式,海量集群解决)、容易丢失如果缓存中的数据由于内存断电丢失:会造成缓存的击穿/雪崩;一旦出现雪崩,整个系统将会进入瘫痪状态,所以一个支持持久化能力的缓存技术,是非常重要的redis支持内存数据进行写入磁盘的操作(宕机数据回复,容灾)缓存:re...

2019-01-04 11:16:21 99

原创 springboot

一个独立运行,准生产级别,基于spring框架快速搭建的工具springboot核心功能• 独立运行的spring项目(嵌入式常用spring框架开发项目:导航系统)只要具备运行的环境即可,jdk,不需要外部支持spring框架的容器;main方法入口;• 内嵌的serlvet容器web应用不需要依靠外部的web容器(web.xml无需配置),直接启动springboot即可完成一个we...

2019-01-04 11:09:04 89

原创 数据结构----常见树

B树每个节点都存储key和data,所有节点组成这棵树,并且叶子节点指针为null。B+树只有叶子节点存储data,叶子节点包含了这棵树的所有键值,叶子节点不存储指针。后来,在B+树上增加了顺序访问指针,也就是每个叶子节点增加一个指向相邻叶子节点的指针,这样一棵树成了数据库系统实现索引的首选数据结构。原因有很多,最主要的是这棵树矮胖,呵呵。一般来说,索引很大,往往以索引文件的形式存储...

2019-01-04 11:06:13 120

原创 NIO概述

Non-Blocking I/O,是一种非阻塞通信模型。BIO和NIO的对比BIONIO1.阻塞通信模型,典型代表是ServerSocket 和Socket accept connect read write 会产生阻塞。所以 BIO通信模型的弊端在于:如果有大量请求,会创建大量线程,一是可能造成内存溢出,此外,线程多了之后,会造成cpu的负载过高...

2019-01-04 10:58:25 114

原创 java八大常见排序

冒泡排序相邻两个元素两两进行比较然后交换位置for(int i = 1; i < arr.length; i++){ // 控制轮数for(int j = 1; j <= arr.length - i; j++){ // 控制每一轮的次数if(arr[j - 1] > arr[j]){int temp = arr[j - 1];arr[j - 1] = arr[j];...

2019-01-04 10:55:51 98

原创 MySQL相关问题

drop、delete与truncate分别在什么场景之下使用?不再需要一张表的时候,用drop想删除部分数据行时候,用delete,并且带上where子句保留表而删除所有数据的时候用truncate触发器的作用?答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运...

2019-01-04 10:31:54 95

空空如也

空空如也

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

TA关注的人

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