Russ Xia Blog

身处寒夜,把握星光。

HTTP协议入门

HTTP协议的发展历史、各个版本的特性

HTTP协议入门 HTTP协议是基于TCP/IP协议之上的应用层协议,默认使用80端口(HTTPS默认使用443端口)。HTTP协议是属于Client-Server模型,是无状态。 为什么说HTTP协议是无状态的呢,我的理解是,在协议层面HTTP协议是无状态的,请求没有记录上下文,请求之间不存在事物关系,每个HTTP请求都是完全独立的。请求的状态是靠Cookie和Session保持的。这样...

Java中的NIO

Java中的常见IO模型、NUO的使用

Java中的NIO Java中的几种常见的IO模型 同步和异步 同步:调用者请求被调用者,当一个调用发出后,需要等待返回消息(用户线程不断去询问),才可以执行后续 异步:调用者请求被调用者,当一个调用发出后,调用者不需要等待返回消息,请求处理完成后会通过回调来通知调用者。 阻塞和非阻塞 阻塞:当前线程不断轮询结果,知道结果返回 非阻塞:会立即返回(虽然还没得到结果)...

Java中的死锁检查

死锁检查:jstack、arthas

死锁检查 死锁demo代码: import static java.lang.System.out; /** * 死锁demo * Created by RuzzZZ on 2017/2/8. */ public class Deadlock implements Runnable { private Deadlock other; public void set...

JVM常见的几种GC算法

常见的GC算法及其实现算法

JVM常见的几种GC算法 什么是垃圾回收(GC) GC::Garbage Collection(垃圾收集)。JVM会自动对内存进行管理和垃圾清扫,这种行为称之为垃圾回收。 常见的垃圾回收算法有哪些 常见的垃圾回收算法有三种,它们各有优缺点: 标记-复制:将内存划分为大小相等的两块,当一块用完后,将还存活的对象copy到另一块上 优点:实现简单,效率高,不产生内...

Java中的invokedynamic和lambda表达式

lambda表达式和invokedynamic字节码方法的关系

Java中的invokedynamic和lambda表达式 关于invokedynamic和其他四种字节码方法调用指令 在Java7中,JVM新增了invokedynamic指令。在此之前,JVM就已经提供了四种不同的字节码方法调用指令: invokevirtual——对实例方法的标准分派 invokestatic——用于分派静态方法 invokeinterface——用于...

时间轮定时器

时间轮定时器算法及其实现

时间轮定时器 时间轮算法的基本架构 时间轮是基于一个循环链表(实际上就是个数组,通过下标控制)的数据结构。所以也因此得名WheelTimer。时间轮算法的复杂程度跟分级层数有关,最简单的就是一层的,复杂一点的就是分层时间轮(Hierarchical Timing Wheels)。对于一层的时间轮,添加/删除/取消任务的复杂度是O(1),过期/执行任务时,最差情况是O(n)(类似HashMa...

Java中Thread相关的一些小知识

Java中Thread相关的一些小知识

Java中Thread相关的一些小知识 Java使用进程执行shell命令 public static void main(String[] args) throws IOException, InterruptedException { String[] cmdline = {"sh", "-c", "echo $MYSQL_HOME"}; Runtime runtime...

Scala入门学习笔记(二)

Scala入门学习笔记

Scala基础 Twitter提供的 Scala School 类 Scala中默认缺省的访问级别是public的。 如果没有任何显式的返回语句,Scala将返回方法中最后一个计算得到的值。 Scala中的方法参数,都是val的。如果想在方法内给参数重新赋值,会导致编译失败。 class ChecksumAccumulator { private var sum = 0 ...

Scala入门学习笔记(一)

Scala入门学习笔记

Scala基础 Twitter提供的 Scala School 变量 定义不可变量:val, val类似于Java中的final变量。与之对应的var类似于Java中的非final变量。Scala自带类型推断(type inference), scala> val a = 2 a: Int = 2 scala> var b = 3 b: Int = 3 scala>...

PySpark中遇到过的问题合集

PySpark中遇到过的问题合集

TypeError: ‘Builder’ object is not callable Spark structured streaming 参考PySpark时,quick-start中的一个demo运行失败,报错。 """SimpleApp.py""" from pyspark.sql import SparkSession logFile = "YOUR_SPARK_HOME/RE...