- 博客(20)
- 资源 (17)
- 收藏
- 关注
原创 使用位运算替代模运算
昨天的分析HashMap原理的文章里面提到,使用位运算替代取模运算效率高,但位运算只能在特定场景下才能替代%运算。正常情况下:a % b = a - (a / b)*b但如果b的值为2的n次方的时候(n为自然数),这时候就可以用位运算来替代模运算, 转化如下:a % b = a & (b-1)2的n次方的二进制如下:` 0001 2^0 1 0010
2018-01-30 21:15:11 4443
使用位运算替代模运算
昨天的分析HashMap原理的文章里面提到,使用位运算替代取模运算效率高,但位运算只能在特定场景下才能替代%运算。正常情况下:[code="java"]````a % b = a - (a / b)*b ````[/code]但如果b的值为2的n次方的时候(n为自然数),这时候就可以用位运算来替代模运算,转化如下:[code="java"]`...
2018-01-30 21:12:59 463
原创 JDK8中HashMap的工作原理剖析
在Java语言里,HashMap无疑是使用频率非常高的一个类,了解它的内部实现将有助于更好的使用它。在jdk8中的HashMap是由三种数据结构组成:数组 + ( 链表 or 红黑树 )图示如下:而在jdk8之前还只是数组+链表两种数据结构,在这里简单提下数组和链表的区别:数组优点:物理地址连续+按下标随机访问效率高O(1)缺点:插入,删除效
2018-01-29 21:59:44 1167
JDK8中HashMap的工作原理剖析
在Java语言里,HashMap无疑是使用频率非常高的一个类,了解它的内部实现将有助于更好的使用它。在jdk8中的HashMap是由三种数据结构组成:数组 + ( 链表 or 红黑树 )图示如下:[img]http://dl2.iteye.com/upload/attachment/0128/7314/a506a881-9a28-3957-a4b9-a3f60f...
2018-01-29 21:47:10 389
原创 理解Java中的hashCode 和 equals 方法
在Java里面所有的类都直接或者间接的继承了java.lang.Object类,Object类里面提供了11个方法,如下:1,clone()2,equals(Object obj)3,finalize()4,getClass()5,hashCode()6,notify()7,notifyAll()8,toString()9,wait()10,wait(long timeout
2018-01-26 19:16:16 719 1
理解Java中的hashCode和equals 方法
在Java里面所有的类都直接或者间接的继承了java.lang.Object类,Object类里面提供了11个方法,如下:[code="java"]````1,clone()2,equals(Object obj)3,finalize()4,getClass()5,hashCode()6,notify()7,notifyAll()8,toString...
2018-01-26 19:05:40 222
原创 Java程序排查问题利器之Btrace
(一)Btrace的介绍BTrace是Java的安全可靠的动态跟踪工具。 他的工作原理是通过 instrument + asm 来对正在运行的java程序中的class类进行动态增强,可以在不用重启的情况下监控系统运行情况,方便的获取程序运行时的数据信息,如方法参数、返回值、全局变量和堆栈信息等,并且做到最少的侵入,占用最少的系统资源。正如上面描述的一些特性,所以btrace一般是
2018-01-23 20:26:17 1154 1
Java程序排查问题利器之Btrace
(一)Btrace的介绍BTrace是Java的安全可靠的动态跟踪工具。 他的工作原理是通过 instrument + asm 来对正在运行的java程序中的class类进行动态增强,可以在不用重启的情况下监控系统运行情况,方便的获取程序运行时的数据信息,如方法参数、返回值、全局变量和堆栈信息等,并且做到最少的侵入,占用最少的系统资源。正如上面描述的一些特性,所以btr...
2018-01-23 20:13:25 155
原创 小知识之Linux系统中的最大进程数,最大文件描述,最大线程数
今天来了解一下linux里面的一些小知识:(一)Linux系统中最大可以起多少个进程?(1)32位系统中最多可以起32768个进程(2)64位系统中最多可以起2的22次方(4194304)约420万个如何查看linux系统默认的最大进程数,这里以centos7(x64)作为例子:[root@es1 ~]# cat /proc/sys/kernel/pid_max
2018-01-19 22:29:40 6056
小知识之Linux系统中的最大进程数,最大文件描述,最大线程数
今天来了解一下linux里面的一些小知识:(一)Linux系统中最大可以起多少个进程?(1)32位系统中最多可以起32768个进程(2)64位系统中最多可以起2的22次方(4194304)约420万个如何查看linux系统默认的最大进程数,这里以centos7(x64)作为例子:[code="java"]````[root@es1 ~...
2018-01-19 22:16:15 755
原创 理解Java里面的jvm,jre,jdk的区别和联系
有时候越是基础的问题,越是容易被我们忽视,比如标题上的问题,感觉挺简单,但真正让解释一下,未必能够说的很清楚,其实这个问题在Oracle官网的Java的文档里面解释的非常清晰,看官网下面的一张图:先解释下几个名词的意思:(一)JVM(Java Virtual Machine ):Java虚拟机主要负责将class文件也就是bytecode编码解释为机器能够识别的010101类似的编码,然后执行程序
2018-01-17 20:00:07 632
理解Java里面的jvm,jre,jdk的区别和联系
有时候越是基础的问题,越是容易被我们忽视,比如标题上的问题,感觉挺简单,但真正让解释一下,未必能够说的很清楚,其实这个问题在Oracle官网的Java的文档里面解释的非常清晰,看官网下面的一张图: [img]http://dl2.iteye.com/upload/attachment/0128/5786/1483e43a-3fec-390c-8ce3-c7ec0ed01054.jpg[...
2018-01-17 19:57:51 265
原创 Nginx配置的一些小功能
前面的文章,已经介绍了Nginx的作用以及Nginx的安装,本篇文章我们来看几个实际的小例子,来对Nginx进一步加深了解。(一)Nginx一些常用的配置介绍//nginx运行的用户,一般不要设置成rootuser nginx //工作进程,通常等于cpu的数量worker_processes 1;//全局错误日志定义类型,[ debug | info | notice
2018-01-12 21:30:05 351
Nginx配置的一些小功能
前面的文章,已经介绍了Nginx的作用以及Nginx的安装,本篇文章我们来看几个实际的小例子,来对Nginx进一步加深了解。(一)Nginx一些常用的配置介绍[code="java"]````//nginx运行的用户,一般不要设置成rootuser nginx //工作进程,通常等于cpu的数量worker_processes 1;//全局错...
2018-01-12 21:28:36 179
原创 Scala里面的排序函数的使用
排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是: sorted,sortBy ,sortWith分别介绍下他们的功能:(1)sorted对一个集合进行自然排序,通过传递隐式的Ordering(2)sortBy对一个属性或多个属性进行排序,通过它的类型。(3)sortWith基于函数的排序,通过一个comparator
2018-01-09 20:22:16 28898 3
Scala里面的排序函数的使用
排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是:sorted,sortBy ,sortWith 分别介绍下他们的功能:(1)sorted对一个集合进行自然排序,通过传递隐式的Ordering(2)sortBy对一个属性或多个属性进行排序,通过它的类型。(3)sortWith基于函数的排序,通过一个comp...
2018-01-09 20:20:10 1502
原创 在Scala里面如何使用元组
元组在Scala语言中是一种十分重要的数据结构,类似数据库里面的一行记录(row),它可以将不同类型的值组合成一个对象,在实际应用中十分广泛。先来看一个简单的tuple定义:val tuple=("张三",25)//定义一个tupleval (name,age)=("张三",25)//变量绑定模式上面的第二种例子中,可以直接通过name和age来访问单个tuple的元素
2018-01-08 22:07:33 3684
在Scala里面如何使用元组
元组在Scala语言中是一种十分重要的数据结构,类似数据库里面的一行记录(row),它可以将不同类型的值组合成一个对象,在实际应用中十分广泛。先来看一个简单的tuple定义:[code="java"]```` val tuple=("张三",25)//定义一个tupleval (name,age)=("张三",25)//变量绑定模式````[/code]...
2018-01-08 22:05:41 1071
原创 Spark如何读取一些大数据集到本地机器上
最近在使用spark处理分析一些公司的埋点数据,埋点数据是json格式,现在要解析json取特定字段的数据,做一些统计分析,所以有时候需要把数据从集群上拉到driver节点做处理,这里面经常出现的一个问题就是,拉取结果集过大,而驱动节点内存不足,经常导致OOM,也就是我们常见的异常:java.lang.OutOfMemoryError: Java heap space这种写法的代码一般
2018-01-04 21:19:54 4872
Spark如何读取一些大数据集到本地机器上
最近在使用spark处理分析一些公司的埋点数据,埋点数据是json格式,现在要解析json取特定字段的数据,做一些统计分析,所以有时候需要把数据从集群上拉到driver节点做处理,这里面经常出现的一个问题就是,拉取结果集过大,而驱动节点内存不足,经常导致OOM,也就是我们常见的异常:[code="java"]```` java.lang.OutOfMemoryError: Ja...
2018-01-04 21:07:09 984 1
protobuf-2.5.0.tar.gz
2015-06-24
luke4.5的jar包
2013-10-29
lucene的索引工具
2013-07-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人