Apache Curator 实现分布式锁 Curator是Netflix公司开源的一套ZK客户端框架。基于Zookeeper官方API自定义实现分布式锁有以下特征:Curator API简单明了,接入成本很低; 解决了异常处理、Watch反复注册 ; 客户端宕机等异常情况下,当前客户端持有的锁可实时释放; 提供了各种分布式场景下的工具包,例如分布式锁的实现,分布式CyclicBarrier实现、Leader选举等;方法:...
好资源分享 JavaJavaGuide :【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。 CS-Notes :技术面试必备基础知识、Leetcode 题解、后端面试、Java 面试、春招、秋招、操作系统、计算机网络、系统设计。 advanced-java :互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。 arch...
深入JVM垃圾回收 JVM一、术语说明 Collector 用于进行垃圾回收的线程 Mutators 应用程序的线程,可以修改 heap MS mark-sweep 算法的简写,标记-清除算法 MC mark-compact 算法的简写,标记-压缩算法 ...
不懂这些,你还敢说了解Redis缓存? 【聊聊redis持久化 – 两种方式】redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)。RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上; AOF,则是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前 到后再...
深入Java内存模型 在介绍 Java 内存模型之前,我们先来看一下到底什么是计算机内存模型,然后再来看 Java 内存模型在计算机内存模型的基础上都做了哪些事情。要说计算机的内存模型,就要说一段古老的历史,看一下为什么要有内存模型。内存模型:英文名 Memory Model,它是一个老古董了。它是与计算机硬件有关的一个概念。那么,我先介绍下它和硬件到底有啥关系。CPU 和缓存一致性我们应该知道,计算机...
学习 flag https://blog.csdn.net/z694644032/article/details/100084287基础篇Java 毕向东_Java基础视频教程25天基础版 菜鸟教程 Java SE 社区 JDK 8 中文手册 Java入门第一季 慕课网 Java入门第二季 慕课网 Java入门第三季 慕课网 马士兵 J...
常用数据结构java实现 跳跃表跳跃列表是对有序的链表增加上附加的前进链接,增加是以随机化的方式进行的,所以在列表中的查找可以快速的跳过部分列表。是一种随机化数据结构,基于并联的链表,其效率可比拟于红黑树和AVL树(对于大多数操作需要O(logn)平均时间),但是实现起来更容易且对并发算法友好。redis 的 sorted SET 就是用了跳跃表。性质:由很多层结构组成; 每一层都是一个有序的链表,排列顺序为...
常用数据结构java实现 数组数组是相同数据类型的元素按一定顺序排列的集合,是一块连续的内存空间。数组的优点是:get和set操作时间上都是O(1)的;缺点是:add和remove操作时间上都是O(N)的。Java中,Array就是数组,此外,ArrayList使用了数组Array作为其实现基础,它和一般的Array相比,最大的好处是,我们在添加元素时不必考虑越界,元素超出数组容量时,它会自动扩张保证容量。Ve...
google 10年 java技术栈【全栈】 java技术栈参考了众多资料,这里就不再详细列举了,可以自行去搜索1 java基础:1.1 算法1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase)1.3 BitSet解决数据重复和是否存在等问题1.2 基本2.1
50条工作中绝对要掌握的sql(含有答案) 50个常用sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score fro
Hive学习 第五课 修改表名修改列名添加列并删除或替换列。 本章将介绍如何修改表的属性,如,修改表名,修改列名,添加列,并删除或替换列。Alter Table 语句它是在Hive中用来修改的表。语法声明接受任意属性,我们希望在一个表中修改以下语法。ALTER TABLE name RENAME TO new_nameALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])ALTE
Hive学习 第四课 创建表并load 数据到表 本章将介绍如何创建一个表以及如何将数据插入。创造表的约定在Hive中非常类似于使用SQL创建表。CREATE TABLE语句Create Table是用于在Hive中创建表的语句。语法和示例如下:语法CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name[(col_name data_t
Hive学习第三课 创建数据库和删除数据库 Hive是一种数据库技术,可以定义数据库和表来分析结构化数据。主题结构化数据分析是以表方式存储数据,并通过查询来分析。本章介绍如何创建Hive 数据库。配置单元包含一个名为 default 默认的数据库。CREATE DATABASE语句创建数据库是用来创建数据库在Hive中语句。在Hive数据库是一个命名空间或表的集合。此语法声明如下:CREATE DATABASE|SCHEMA [
Hive学习 第二课 hive安装 第1步:验证JAVA安装在Hive安装之前,Java必须在系统上已经安装。使用下面的命令来验证是否已经安装Java:$ java –version如果Java已经安装在系统上,就可以看到如下回应:java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b13) Java HotSpot(TM
Hive学习 第一课 Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。Hive 不是一个关系数据库一个设计用于联机事务处理(OLTP)实时查询和行级更新的语言Hiver特点它存储架构在一个数据库中并处理数据到HDFS。它是专为OLA
Git学习-第二节:Egit使用 使用egit首先需要 配置个人信息,最重要的是user.name和user.email 。用于提交代码时使用。 Preferences>Team>Git>configuration:点击Add Enty添加user.mail和user.name如图: 创建git仓库 在服务器端用egit创建一个git仓库(当作git服务器,)。 注:这里因为做Demo。我将项目H
Git 学习-第一节:基础和原理 Git基础 直接记录快照,而非差异比较 Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。这类系统(CVS,Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容,请看图 1 1 其他系统在每个版本中记录着各个文件的具体差异 Git
springMVC中controller的几种返回类型 spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。下面将对具体的一一进行说明:ModelAndViewJava代码 @RequestMapping("/show1") public ModelAndView show1(HttpServletReques