自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sugar-foxs

i can do everything

  • 博客(120)
  • 收藏
  • 关注

原创 java锁

synchronizedsynchronized是虚拟机的内置锁对于同步块:编译之后,会在同步块的前后形成 monitorenter 和 monitorexit 两个字节码指令,每个对象都具有一个monitor与之关联,拥有了monitor的线程便锁住了对象。对于同步方法:编译之后,该同步方法有一个同步标志来表明该方法是同步方法。sync...

2020-01-11 13:58:49 171

原创 docker命令

docker命令docker pulldocker pull mysql:5.6拉取mysql镜像,版本是5.6docker ps列出所有在运行的容器信息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5e518chK-1577291311317)(/img/docker-ps.png)]docker ps -n 5列出最近创建的5...

2019-12-26 00:30:44 174

原创 Flink之Checkpoint

Flink CheckPoint配置储存方式StateBackend配置储存方式StateBackend优先选择程序里的配置,第二选择是配置文件里的配置,第三选择是默认MemoryStateBackend在配置文件中可这样配置:state.backend :filesystem/rocksdb/jobmanager,分别代表文件系统,flink自带的RocksDB,内存####实例化用...

2019-02-25 22:50:15 2023 1

原创 Jobmanager处理消息--SubmitJob消息

Jobmanager处理SubmitJob先将submitJob的主要步骤总结写在开头,然后一步步分析。1,通过JobGraph生成ExecutionGraph;2,恢复状态CheckpointedState,或者Savepoint;3,提交Execution给Scheduler进行调度;3.1 获取ExecutionGraph中所有vertice,并为其分配slot资源;3.2 ...

2019-02-25 22:48:32 445

原创 JobManager--启动

JobManager启动JobManager里有个main方法,通过脚本启动,主要做的工作如下:首先做一些检查,加载日志环境和配置启动jobManagertry { SecurityUtils.getInstalledContext.runSecured(new Callable[Unit] { override def call(): Unit = { ...

2019-02-25 22:47:23 2688

原创 ExecutionGraph生成

ExecutionGraphjobManager在接收到submitJob消息之后,会先根据jobGraph生成ExecutionGraph。1,使用ExecutionGraphBuilder的buildGraph方法生成ExecutionGraph;executionGraph = ExecutionGraphBuilder.buildGraph( executionG...

2019-02-25 22:42:02 526

原创 StreamGraph生成

StreamGraph1,在执行execute之前,代码中DataStream会进行一系列转化,比如map:public <R> SingleOutputStreamOperator<R> map(MapFunction<T, R> mapper) { //获取map输出类型信息 TypeInformation<R> outT...

2019-02-25 22:40:33 395

原创 kafka基础概念

kafka基础概念1,topic,partition,offsettopic是一个逻辑概念,表示了一类消息,同一个topic下的消息属于同一类。topic又是由多个分区partition组成的,partition数可配置。消息其实是采用了topic-partition-message结构用来分散负载,消息是存在某个topic下其中一个partition下的。partition下的每条消息...

2018-12-02 18:54:51 124

转载 ubuntu下载及U盘安装制作

https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-windows?_ga=2.154491960.187435962.1526364053-401614332.1526364053#0

2018-05-16 12:49:31 204

原创 Spark之数据读存

Spark可以通过不同途径读取和存储数据。以下是基于java编程的。一,读存文本文件里的数据1,读取数据;file是文件路径SparkConf conf = new SparkConf().setAppName("Simple Application");JavaSparkContext sc = new JavaSparkContext(conf);JavaRDD<String> i...

2018-03-15 20:42:38 211

原创 spark学习之RDD

学习Spark首先学到就是spark中数据核心抽象----RDD.Spark中的RDD是一个不可变分布式对象集合。每个RDD都被分为多个分区运行在集群的不同节点上。1. 创建RDD(1) 读取一个外部数据集textFile()函数将一个文本文件读入为一个存储字符串的RDD。(2) 读取在驱动器程序里分发驱动器程序中的对象集合。parallerlize()函数2. RDD转化操作(transform...

2018-03-03 16:50:17 226

原创 正则表达式

正则表达式描述了一种字符串匹配的模式.可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。普通字符包括可打印字符和不可打印字符.不可打印字符:\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为

2017-11-04 20:50:21 179

原创 生产者和消费者模式

生产者:class Producer implements Runnable { protected BlockingQueue queue; Producer(BlockingQueue theQueue) { this.queue = theQueue; } public void run() { try {

2017-09-18 10:20:38 378

转载 设计模式之观察者模式

定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。类型:行为类模式类图:        在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。比如,我们要设计一个右键菜单的功能,只要在软件的有效区域内点击鼠标右键,就会弹出一个菜单;再比如,我们要设计一个自动部署

2017-09-12 16:32:27 173

转载 java中到底是值传递还是引用传递?

首先我们来看下面这段代码:public class Test1 { String a = "123"; public static void change(Test1 test) { test.a="abc"; } public static void main(String[] args) { Test1 test1=

2017-09-12 15:40:25 272

转载 sql语句执行顺序

SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。      每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。如果没有在查询中

2017-09-12 15:04:53 853

原创 字符串数组中所有字符串组成一个字典序最小的字符串

如果a+b的字典序小于b+a,就把a放在前面,否则把b放在前面。证明略。/** * 所有字符串组成一个字典序最小的字符串 * @param arr * @return 字典序最小的字符串 */ public String lowestStrign(String[] arr){ if(arr == null || arr.l

2017-09-12 09:01:33 1419

原创 最长无重复字符子串

时间复杂度O(n),空间复杂度最大是O(n),map里key存放的是字符串中某个字符,value为这个字符最近出现的位置。private static int maxUnique(String str){ if(str == null || str.length() == 0){ return 0; } int[]

2017-09-12 08:39:30 178

原创 最长公共子序列

给定两个字符串str1和str2,返回两个字符串的最长公共子序列。时间复杂度O(m*n),空间复杂度O(m*n).如果只想求最长公共子序列长度,可以使用空间压缩的方法将额外空间复杂度降到O(min{m,n}).private static String lcse(String str1,String str2){ if(str1 == null || str1.le

2017-09-11 22:36:57 442

原创 最长公共子串

给定两个字符串,返回两个字符串的最长公共子串:两个字符串长度分别为M,N;时间复杂度O(M*N),空间复杂度为O(1)private static String lcst(String s1,String s2){ if(s1 == null || s1.length()==0 ||s2 == null || s2.length() == 0){ return

2017-09-11 22:09:53 237

原创 约瑟夫环

具体问题我就不描述了,就是著名的约瑟夫问题。解决方法:1,普通解法,时间复杂度O(n*m):使用循环链表,返回唯一剩下的节点。private Node josephusKill(Node head,int m){ if(head == null || head.next == head ||m1){ return head; } Node

2017-09-11 22:01:57 592

转载 设计模式之策略模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述策略(Strategy)模式的:  策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构  策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模

2017-09-11 10:37:45 151

转载 设计模式之模板方法模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述模板方法(Template Method)模式的:  模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模板方法模式的结构  模板

2017-09-11 10:24:32 130

转载 网址访问过程

我们来看当我们在浏览器输入http://www.mytest.com:81/mytest/index.html,幕后所发生的一切。首先http是一个应用层的协议,在这个层的协议,只是一种通讯规范,也就是因为双方要进行通讯,大家要事先约定一个规范。1.连接 当我们输入这样一个请求时,首先要建立一个socket连接,因为socket是通过ip和端口建立的,所以之前还有一个DNS解析过程

2017-09-07 20:32:20 313

转载 hashMap线程不安全,造成死循环

https://coolshell.cn/articles/9606.html

2017-09-06 12:13:47 441

转载 回调机制

Java的回调机制,可能都听说过,当然这个机制不仅限于Java,其他各门语言,都应该有使用。但是怎么理解,就有点困惑。还有什么是抽象类回调,什么是接口回调,以及二者之间的差别。也不是一句两句就能说清楚,就算说的人清楚,但是不能保证,听的人也能听的清楚。下面看这个小故事,来深入理解一下回调机制,然后上面的那些问题,也就不攻自破了。故事背景在日常编程中,我们经常

2017-09-06 10:06:32 280

转载 泛型

1. Java中的泛型是什么 ? 使用泛型的好处是什么?泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。好处:1、类型安全,提供编译期间的类型检测2、前后兼容3、泛化代码,代码可以更多的重复利用4、性能较高,用GJ(泛型JAVA)编写的代码可以为java编译器和虚拟机带来更多的类型信息,这些信息对java程序做进一

2017-09-03 11:25:52 544

原创 java基础面试可能套路

1,问java和c++的异同?答:1,Java是解释型语言,源代码经过Java编译器编译成字节码,然后由JVM解释执行。而c++为编译型语言,源代码经过编译和链接后生成可执行的二进制代码。因此Java的执行速度比c++慢,但是Java能够跨平台执行,而c/c++不行。2,Java为纯面向对象语言,所有代码必须在类中实现,除基本类型外,所有类型都是类。Java中不存在全局变量或全局函数,

2017-09-02 12:40:01 859

原创 Java反射

1,什么是Java反射机制? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为Java的反射机制。2,反射的使用方法:假设有个类Person:package com.gch;class Person{}获取类对象的方法: 1.1 ...

2017-09-02 09:43:08 190

原创 HashMap可能会问的一连串问题

1,第一个问题一般会问 了解HashMap吗,或者说介绍下HashMap的底层原理?回答:HashMap由数组+链表组成,数组元素Entry存放的是键值对,然后说查询,插入,删除,都要用到hash算法,把hash算法介绍一下,然后分别介绍查询,插入,删除。然后说hashMap1.8又有了改变,这时面试官极有可能会问有什么变化,不问的话你就继续说1.8的hashMap,链表长度到达8时会转变为红

2017-08-29 15:58:47 404

转载 字符编码

原文链接:http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html

2017-08-29 10:20:39 192

原创 InnoDB行锁的实现方式

InnoDB的行锁是通过对索引上的索引项进行加锁实现的。如果没有索引,InnoDB会通过隐藏的聚簇索引来对记录加锁。InnoDB行锁有三种情况:1,对索引项加锁。2,对索引项之间的间隙,第一条记录前的间隙,最后一条记录之后的间隙加锁。3,前两种的组合,对记录及其前面的间隙加锁。如果不使用索引条件检索数据,那么InnoDB将对表中的所有记录加锁,实际效果跟表锁一样。

2017-08-29 09:33:24 2215

原创 浅复制和深复制

1,浅复制和深复制的概念浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 深复制:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复

2017-08-27 15:38:33 227

转载 Java8新特性

在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8——lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Java 8中抽象类与接口的比较。我们也在其他地方引用了15个必读的Java 8教程。当然,我们也探究了Java 8的一些不足之处,比如Java 8的“黑暗面”。现在,

2017-08-25 21:16:48 300

转载 java9新特性

Java 8 发布三年多之后,即将快到2017年7月下一个版本发布的日期了。 你可能已经听说过 Java 9 的模块系统,但是这个新版本还有许多其它的更新。 这里有九个令人兴奋的新功能将与 Java 9 一起发布。1. Java 平台级模块系统Java 9 的定义功能是一套全新的模块系统。当代码库越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。这时候就得面对

2017-08-25 21:00:06 1068 1

原创 ForkJoinPool

ForkJoinPool在内部使用了一个无界任务列表,供构造器中所指定数目(如果是无参构造器,默认是cpu数)的线程来运行。ForkJoinPool类是配合分治算法的使用而设计的:任务可以递归地分解为子集。这些子集可以并行处理,然后每个子集的结果被归并到一个结果里。

2017-08-25 20:58:39 222

原创 jvm面试中遇到的问题

1,运行时数据区域划分?2,堆分为那几个代?3,垃圾回收算法?4,类加载过程?5,永久代会发生内存回收吗?6,Java内存模型?

2017-08-25 15:42:53 290

原创 mysql在面试中遇到的问题

1,索引的数据结构?2,为什么要加索引?3,高并发下,如何优化数据库?

2017-08-25 15:24:47 260

原创 redis面试遇到的问题

1,redis如何热启动?2,redis的存储方式?有5种数据格式:字符串,集合,有序集合,字典,链表3,redis如何持久化?1,RDB持久化,保存数据库的键值对来记录数据库状态。2,AOF持久化,保存数据库执行的写命令来记录状态。4,redis如何保证数据库的一致性?5,redis的发布订阅模式,要会手写这个模式

2017-08-25 15:21:28 344

原创 高并发网站解决方法

1,使用nginx做负载均衡,将网络流量分流,分担服务器压力。2,将经常访问的图片等静态资源放在缓存中,提高访问速度。3,使用CDN内容分发网络,使用户能够从最近的节点获得响应。4,数据库I/O,使用读写分离策略。

2017-08-25 14:07:55 176

空空如也

空空如也

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

TA关注的人

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