Oeljeklaus
码龄10年
关注
提问 私信
  • 博客:492,849
    社区:392
    493,241
    总访问量
  • 256
    原创
  • 933,168
    排名
  • 272
    粉丝
  • 1
    铁粉

个人简介:python开发,大数据,图数据,数据分析

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2015-05-17
博客简介:

Oeljeklaus的博客

博客描述:
读书二十载,风雨任平生
查看详细资料
个人成就
  • 获得122次点赞
  • 内容获得48次评论
  • 获得480次收藏
创作历程
  • 19篇
    2019年
  • 161篇
    2018年
  • 110篇
    2017年
成就勋章
TA的专栏
  • Java并发编程的艺术
    15篇
  • 大数据框架知识
    35篇
  • Java性能调优
    5篇
  • LintCode刷题指南
    61篇
  • 思考和想法
    1篇
  • 线程安全
    2篇
  • linux
    23篇
  • 算法
    10篇
  • jvm学习与理解
    32篇
  • java
    73篇
  • python
    7篇
  • 图数据
    3篇
  • RDF
    2篇
  • c/c++
    3篇
  • javaee
    6篇
  • springmvc
    1篇
  • Hadoop学习
    12篇
  • levelDB学习笔记
    1篇
  • Java常见面试题
    20篇
  • 数据结构
    8篇
  • 大数据
    39篇
  • LintCode
    61篇
兴趣领域 设置
  • 大数据
    spark
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

JVM之JIT技术(四):锁粗化

点击上方蓝字,记得关注我们!JVM之JIT技术(四):锁粗化引言在上面的三篇文章中,我们首先解释了JIT的历史,JIT技术:内联、逃逸分析、锁消除等。但是,这仅仅是适用于单线程,如果需要同步,这个这些就不适合了,现在我们来介绍适用于多线程的JIT技术:锁粗化。01​在上一篇文章中,锁消除已经简单的介绍。但是并不是所有的情况可以使用锁消除,这时我们需要使用锁粗化...
原创
发布博客 2019.03.22 ·
1058 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

JVM之JIT技术(三):逃逸分析,锁消除

点击上方蓝字,记得关注我们!JVM之JIT技术(三):逃逸分析,锁消除引言​逃逸分析和锁消除是常用的JIT技术,锁消除常常用来消除不必要的锁。01​在上一节中,我们已经分析了JIT的较为简单的技术:内联。这里这一节,我们将会讲解逃逸分析和锁消除。 JVM通过域分析来确定是否一个对象能够从现在方法或者线程的域逃出出去,这被称为逃逸分析。...
原创
发布博客 2019.03.22 ·
1107 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

JVM之JIT技术(二):内联

点击上方蓝字,记得关注我们!JVM之JIT技术(二):内联引言在JIT技术上,有很多种优化技术,其中内联是一种非常常见的技术,在本文中将会详细的介绍这技术,同时使用数字对比,更加形象的突出内联的运行时间。01在上一篇文章《JVM之JIT优化技术(一)》中,我们使用了大量的篇幅讲解了JIT技术的由来和一些简单的优化步骤,以及优化例子,本文将详细讲解JIT...
原创
发布博客 2019.03.22 ·
1059 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

JVM之JIT优化技术(一)

点击上方蓝字,记得关注我们!JVM之JIT优化技术(一)引言本文是JVM之JIT优化技术的开篇,这个在接下来的几章中将会详细讲解JIT优化技术。关于JVM优化和如何使用JIM编译和不同的优化技术让程序运行的更快有很多争论。其实,有很多优秀的文章是可以被找到的,但是对于我自己来说,我还想看看关于这方面的应用,因此我决定对此去深挖和进行一些简单的测量。01延迟编译 ...
原创
发布博客 2019.03.22 ·
2003 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构之布隆过滤器

数据结构之布隆过滤器01引言您可能从未听说过Bloom Filter,但是这个巧妙的算法在Google的BigTable数据库中使用,以节省时间,无需搜索不存在的数据。在编程中,也许在生活中,有一些众所周知的权衡。您通常可以将空间交换一段时间,因为您可以通过更多的存储空间来解决问题,您可以更快地运行空间。还有一个鲜为人知的权衡,它更为复杂。一般来说,您可以确定时...
原创
发布博客 2019.03.16 ·
1113 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java中Vector的操作一定是线程安全的嘛?

Java中Vector的操作一定是线程安全的嘛?Java中Vector类是JDK1.2加入的遗留集合,其内部的方法主要是通过synchronized关键字进行封装,保证这个类是一个线程安全的类,那么是不是vector的操作一定是线程安全的呢?本文将带你分析不一样的vector。01vector简介首先,我们使用简单的描述vector的重要方法。这里是...
原创
发布博客 2019.03.15 ·
5921 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

Java并发之Monitor实现

Java并发之Monitor实现可能在synchronized关键字的实现原理中,你已经知道了它的底层是使用Monitor的相关指令来实现的,但是还不清楚Monitor的具体细节。本文将让你彻底Monitor的底层实现原理01简介本文主要翻译Monitors – The Basic Idea of Java Synchronization国外大神的文...
原创
发布博客 2019.03.09 ·
3240 阅读 ·
2 点赞 ·
1 评论 ·
6 收藏

JVM之垃圾回收算法

JVM之垃圾回收算法相比如C++,Java程序的一大优势是不需要程序员手动释放分配的内容,主要由Java虚拟机管理内存的分配和释放,但是并不意味着我们不需要掌握垃圾回收算法。本文将会带你探索Java虚拟机中主要的垃圾回收算法。01标记-清除算法标记-清除算法是最基本的算法,也会受比较容易实现的垃圾收集算法。这个算法主要分为标记和清除两个阶段...
原创
发布博客 2019.03.09 ·
304 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

JVM之类加载机制

JVM之类加载机制在一般的强类型语言中,都有预处理、编译、汇编和链接过程,Java一般是将Java编译成class文件后,Java虚拟机需要将class文件在内存后到底发生了什么呢?本文将会带你了解Java的类加载过程01类加载时机类才能够被加载到虚拟机内存中开始,到卸载出内存位置,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和...
原创
发布博客 2019.03.08 ·
210 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java并发之线程

Java并发之线程讨论并发,大多数都与线程脱不开关系。本文将对从线程的特点、多线程优势以及线程状态和实现等几个方面讲解Java线程,同时讲解Java线程在虚拟机中如何实现。01线程的特点和实现说到线程,首先要谈到进程;进程是操作系统资源分配和调度的基本单位,即运行起来的程序。毕竟进程是粗粒度的单位,为了更好地量化程序,引入了线程的概念。...
原创
发布博客 2019.03.08 ·
233 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java并发之synchronized关键字

Java并发之synchronized关键字synchronized是Java的重量级锁,本文将从synchronized的使用方式,底层原理,特点和适用场景讲解。让你彻彻底底明白Java中的synchronized。01使用方式先来看一下synchronized关键字的同步基础:Java中的每一个对象都可以作为锁。为什么对象可以作为锁呢?这里...
原创
发布博客 2019.03.03 ·
279 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

JVM运行时数据区域

JVM运行时数据区域Java虚拟机在运行Java程序的过程中会把它所管理的内存划分为多个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间。本文将带你理解JVM的各大数据区域以及用途。01程序计数器程序计数器是线程私有的,它的主要作用是记录当前线程执行到了那一条指令。线程有可能因为时间片轮转的关系导致挂起,或者是线程上下文切换,这个时...
原创
发布博客 2019.03.02 ·
218 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java并发之volatile关键字

Java并发之volatile关键字volatile关键字可以说是Java中的轻量级锁,实现Java的同步组件中有发挥了具体的作用。尽管volatile是非常的使用,然而它的原理总是让人困惑。换句话说,我们需要理解它的底层原理是不可或缺的。01volatile定义和原理Java语言为了允许线程访问共享变量。一般来说,为了确保共享变量的一致性和实...
原创
发布博客 2019.03.02 ·
592 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

死磕Java之JDK 1.6HashMap

死磕Java之JDK 1.6HashMapHashMap是常用的按照键值对存储的集合类,内部源码有很多值得思考和学习的地方。你知道为什么HashMap不安全吗?为什么HashMap的初始容量为16吗?HashMap的结构时怎么样的吗?本文将带你揭开HashMap的神秘面纱。01概述HashMap是基于哈希表实现的Map接口。这样的实现允许所有的Map...
原创
发布博客 2019.03.01 ·
1020 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

死磕Java之泛型(二)

死磕Java之泛型(二)在<<死磕Java之泛型(一)>>中,已经简单的讲解了泛型的概念,泛型原理以及泛型边界和通配符。本文将讲解泛型的高级用法和弥补泛型带来的缺陷。01泛型带来的问题Java引入泛型的目的是呈现编译时多态。尽管泛型的引入,给编码带来了很多便利之处,但是往往带来很多困惑。泛型主要的限制之一是,不能使用基本类型,...
原创
发布博客 2019.02.27 ·
294 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

死磕Java之泛型(一)

死磕Java之泛型(一)一般的类和方法,只能使用具体的类型;要么是基本类型,要么是自定义的类,如果需要编写可以应用于多种类型的代码,这种限制就降低了代码的可用性,当然你会想到重载,但是对于类呢,这就需要引入泛型了。01泛型的基本概念    泛型,从字面上理解就是适用于很多很多的类型,即参数化类型。从Java SE5开始,Sun公司就引入了泛型的概念。引入泛型的初衷是,希...
原创
发布博客 2019.02.27 ·
264 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

死磕Java之序列化与反序列化

死磕Java之序列化与反序列化当创建对象时,它就一直存在,但是在程序终止之后,无论如何它不会存在。如果现在的需求是当程序终止后,需要将信息保存起来,这就需要Java序列化了。01序列化的引入Java序列化的引入主要基于两方面的考虑:    1.为了支持Java的RMI(远程过程调用),它使存活于其他计算机上的对象使用起来就像存在于本机计算机一样。    2.对于...
原创
发布博客 2019.02.24 ·
294 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

死磕Java之NIO与IO

死磕Java之NIO与IO    当学习Java NIO与IO时,你是否会有这样的想法:什么时候使用NIO,什么使用IO呢?本篇文章将会分析两者的不同,它们的用例,以及和影响代码的设计。01NIO与IO的区别    下面这张表总结了Java NIO和IO的主要区别,接下来我将从下表中的不同更加细致的讲解。IO NIO Stream oriented ...
原创
发布博客 2019.02.23 ·
4819 阅读 ·
5 点赞 ·
1 评论 ·
14 收藏

死磕Java之hashcode与equals方法

死磕Java之hashcode与equals方法hashCode方法与equals方法来源于Java最基本的类Object,这两个方法常用于自定义类在Java集合类中,类对象的判断等;掌握理解该方法是程序员必备技能。01hashCode    首先让我们先来了解hash的概念。    hash:就是把任意长度的输入(又叫做预映射pre-image)通过散...
原创
发布博客 2019.02.22 ·
424 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Spark的Shuffle原理(一):HashShuffle

01.HashShuffle相关知识    Spark Shuffle类似于MapReduce的过程,在Spark 的1.0版本以前,Spark采用的是Hash Shuffle,与MapReduce不同的是,Hash Shuffle没有排序过程。Shuffle阶段主要发生在宽依赖阶段,什么是宽依赖呢?    上图中,可以很好的理解宽依赖和窄依赖,对于一般的join、groupByKey...
原创
发布博客 2018.08.17 ·
583 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多