W-M'S blog

Thinking will not overcome fear but action will.

深入学习java并发编程之Volatile&Final

本文仅记录学习volatile与final关键字过程中觉得需要仔细理解的地方,用于备忘,具体关于volatile与final使用方法及介绍,可参考:深入理解Java内存模型(四)——volatile 等文章。 volatile相关 JSR-133为什么要增强volatile的内存语义 在JSR-133规范发布之前,volatile变量的访问和非volatile变量的访问之间可以自...

深入学习java并发编程之JMM简介&happens-before

JMM简介 happens-before简介 JMM相关问题

Redis基础知识及Jedis相关操作

之前做项目时在Spring中集成Redis实现了赞踩功能,现在做的新的项目又涉及到了赞踩功能,发现之前学的Redis相关知识已经忘的差不多了,因此将相关知识记录一下,以便以后温习。 本篇文章主要是网络中多篇文章的个人总结综合,主要涉及到了Redis的常见的使用方面的知识,有待以后继续深入。 Redis中支持的5种不同Value存储的数据结构 Redis最为常用的数据类型主要有五种...

Linux内核中增加系统调用获取指定进程相关数据

Linux下对线程的实现实际上是通过轻量级进程(LWP)来实现的,同一个进程下的多个LWP共享同一内存空间,每个LWP对应一个内核线程,内核线程是操作系统线程调度的基本单位。 如果用户线程与LWP之间的映射关系是1:1的话,每次线程调度都需要进入内核态。 为什么要为每个LWP映射一个内核线程呢?当需要访问内核空间的代码和数据执行一些内核态下才能进行的操作时(比如系统调用),LWP本身没有...

Java-NIO编程相关之二(SelectionKey&Selector)

本文主要记录了个人在学习NIO相关知识时一些思考过程,主要用于备忘,错误难免,敬请指出! 前言 Java NIO API中包含三个核心组件:Channels、 Buffers、 Selector,其余组件有些只不过是为了这三个组件能更好的结合使用而设计的一些工具类,本文主要记录对于Selector相关知识的学习。 Selector Select模型的意义并不在于消除阻塞,而...

网络编程相关知识杂记之二(TCP&UDP编程相关)

本文主要记录了个人在学习网络编程相关知识时遇到的问题及自己的思考,主要用于备忘,错误难免,敬请指出! UDP编程相关 UDP Server端与Client端Demo 普通UDP Client与UDP Server: public class DatagramServer { private static final int PORT = 8099; publi...

揭开枚举的面纱

由于枚举平时使用的不多,每次用到的时候都有一种陌生感,总是忘记其语法为什么是这样的,导致回头重新理解其实现原理,浪费时间。于是在这篇博客中记录一下,下次再忘记的时候好很快捡起来 揭开枚举语法糖 从一个枚举类Demo开始说起: enum Signal { GREEN { @Override public void sayColor() { ...

网络编程相关知识杂记(TCP&UDP&IP理论相关)

本文主要记录了个人在学习网络编程相关知识时遇到的问题及自己的思考,主要用于备忘,错误难免,敬请指出! TCP、UDP、IP理论相关 IP层相关 IP层采取的策略是尽力传递,不保证数据报能否到达目的端,也不能保证按照发送时的顺序到达目的端。 一个网络层的数据报可以通过下层网络中几个不同的网络封装成帧数据进行传输,如超级通道、以太网、ppp等。超级通道网络对于一帧数据最大字节数限制...