一图看懂Java泛型通配符

2018-02-24
阅读 2 分钟
3.7k
编译器只能确定任何返回该未知类型的方法,返回的变量都是 Object 的子类,所以返回的类型就确定为 Object,比如 getter 方法

使用Python和Java调用Shell脚本时的死锁陷阱

2018-01-21
阅读 3 分钟
4.6k
最近有一项需求,要定时判断任务执行条件是否满足并触发 Spark 任务,平时编写 Spark 任务时都是封装为一个 Jar 包,然后采用 Shell 脚本形式传入所需参数执行,考虑到本次判断条件逻辑复杂,只用 Shell 脚本完成不利于开发测试,所以调研使用了 Python 和 Java 分别调用 Spark 脚本的方法。

Java对象占用内存计算

2018-01-20
阅读 3 分钟
1.7k
计算前提 JDK 版本,不同版本的类可能会有变化 要区分是 32bit 还是 64bit 系统 是否开启压缩指针(默认开启,指针为 4Byte,否则为 8Byte) 是否数组,数组对象头多了一个长度值,占 4Byte 计算方法 对象所占内存 = 对象头 + 所有域 + 填充其中,若域为另一个对象,即非基本类型,则需递归计算 对象头 对象头分为3部分...

Spark 中的序列化陷阱

2017-12-09
阅读 4 分钟
7.6k
Spark 的代码分为 Driver 端执行的部分和 Executor 端执行的部分,Driver 端分发任务的同时,会通过序列化传送 Executor 需要的对象,由于 Java 序列化的一些特性,初学者在使用时容易碰到一些陷阱。

How to Override Equals in Java and Scala

2017-11-21
阅读 4 分钟
2.1k
相信读过 《Effective Java》 的读者都已经知道编写 equals 方法的作用与重要性,基本概念不多做解释,这里就总结一下如何编写正确的 equals 方法。

Split in Java

2017-11-18
阅读 3 分钟
2.4k
在 Java 中处理字符串时,split 是一个很常用的操作,但是这一简单的操作,却经常有意想不到的结果,就拿Guava库官方教程中的一个例子来说,",a,,b,".split(",") 的结果是?