半 岛 码 农 的 博 客

在内存的世界里,你又是那一个孤儿进程

自定义博客皮肤

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JavaCore 【 Java中的Class.forName()和ClassLoader.loadClass()的区别】

类装载顺序 类加载过程 Class.forName()和ClassLoader.loadClass 对比 Class.forName(className)方法,内部实际调用的方法是Class.forName(className,true,classloader); 第2个boolean参数表示...

2019-02-15 11:48:57

阅读数 73

评论数 1

Java并发编程 【生产者消费者模式的实现】

最简单的实现方式是利用阻塞队列,废话不多说,上代码: wait、notify、notifyAll是Object对象的属性,并不属于线程。我们先解释这三个的一个很重要的概念 wait:使持有该对象的线程把该对象的控制权交出去,然后处于等待状态,并释放锁 notify:通知某个正在等待这个对象的控制...

2019-02-14 11:01:43

阅读数 84

评论数 0

Java并发编程【线程中安全与锁】

什么是线程安全 当多个线程访问某个类时,不管运行时环境采用何种的调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或者协同,这个类都能表现出正确的行为,那么就称这个类就是线程安全的。 线程安全主要体现在一下三个方面: 原子性:提供了互斥访问,同一时刻只能有一个线程对它进行操...

2019-02-13 16:49:45

阅读数 69

评论数 0

Java并发编程 【线程的状态和线程的创建】

线程的状态 新建状态(New):新创建了一个线程对象。 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。 运...

2019-02-13 14:36:17

阅读数 53

评论数 0

Java并发编程【 volatile语义 】

volatile语义 在说明volatile是什么之前,先看看Java的内存模型 那么volatile有什么作用? volatile的第一个语义: 保证线程间的变量,简单地说就是当线程A对变量X进行了修改后,在线程A后面执行的其他线程能看到变量X的变动 线程对变量进行修改之后,要立刻回写到主内存...

2019-01-28 11:31:23

阅读数 1654

评论数 0

jvm虚拟机【内存模型(转)】

并发编程的模型分类 在并发编程需要处理的两个关键问题是:线程之间如何通信 和 线程之间如何同步。 通信 通信 是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存 和 消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态...

2019-01-28 11:00:37

阅读数 1664

评论数 0

技术杂记 【JSONArray 按指定字段排序,升序和倒序】

第一种 根据自定义的字段去排序,利用sort方法 Random random = new Random(); JSONArray result = new JSONArray(); for(int i = 0 ; i &amp...

2019-01-24 11:25:27

阅读数 2282

评论数 0

Java并发编程【线程中通信 CountDownLatch、CyclicBarrier、Semaphore 介绍和用法】

CountDownLatch 什么是CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受...

2019-01-22 13:51:21

阅读数 1666

评论数 0

Java 并发编程【ThreadLocal的使用和原理】

ThreadLocal是什么 ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。 下图为ThreadLocal的内部结构图 从...

2019-01-22 11:52:14

阅读数 1747

评论数 0

SpringBoot【Swagger2的集成和使用】

Swagger2介绍 Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架。一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,加上swagger-ui,可以有很好的呈现。 SpringBoot集成Swagger2 首先添加依赖 &am...

2019-01-21 12:22:45

阅读数 143

评论数 0

jvm虚拟机 【类加载】

类加载机制概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是类加载机制 Hotspot类加载器策略是采用懒加载策略 类加载的时机 类的声明周期 类的初始化例子: 遇到new,getstatic,puts...

2019-01-19 15:22:38

阅读数 1639

评论数 0

数字货币的发行

货币的分类: 1,法币 (法定货币) 2,电子货币 (将法定货币数字化) 3,数字货币 (法定货币的替代货币,也就是代币) 任何人任何组织都可以发行任何数量的货币。 智能合约的非侵入式接口 ERC20 Token 接口 :以太坊代币合约接口 什么是侵入式接口: 类必须实现接口才能使用这个接口 ...

2018-10-24 15:21:15

阅读数 1987

评论数 0

Merkle Tree(默克尔树)

  Merkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树。Merkle树的叶子是数据块(例如,文件或者文件的集合)的hash值。非叶节点是其对应子节点串联字符串的hash。  * 1. Hash*   Hash是一个把任意长度的数据映射成固定长度数据...

2018-09-11 12:07:18

阅读数 1690

评论数 0

以太坊源码分析

最近发现一个大牛分析以太坊源码,转发一下!! 希望能够分析以太坊的代码来学习区块链技术和GO语言的使用 分析go-ethereum的过程,我希望从依赖比较少的底层技术组件开始,慢慢深入到核心逻辑。 目录 go-ethereum代码阅读环境搭建 以太坊黄皮书 符号索引 rlp源码解析 ...

2018-09-10 08:04:53

阅读数 91

评论数 0

搭建智能合约开发环境

本地安装remix-ide在线编译器 首先选择一块风水宝地 mkdir tools/solidity-browser -p cd tools/solidity-browser 下载remix安装包 git clone https://github.com/ethereu...

2018-09-10 07:28:08

阅读数 1416

评论数 0

Mac终端辅助iTerm以及zsh环境变量失效问题

zsh环境变量失效问题, 因为zsh插件新建终端的时候默认只加载 ~/.zshrc。 所以解决方案只需要在~/.zshrc里面先加载当前的环境变量。 修改 ~/.zshrc export PATH=$HOME/bin:/usr/local/bin:$PATH source /etc/pr...

2018-08-08 10:07:52

阅读数 571

评论数 0

简单了解 一致性算法 - Raft

Raft的基本概念 角色 在Raft中,任何时候一个服务器可以扮演下面角色之一: Leader: 处理所有客户端交互,日志复制等,一般一次只有一个Leader. Follower: 类似选民,完全被动 Candidate候选人: 类似Proposer律师,可以被选为一个新的领导...

2018-08-03 19:19:31

阅读数 66

评论数 0

通过创世区块来初始化区块链

首先需要一个初始化区块链的json文件,如下。 { "config": { "chainId": 17, "homesteadBlock&...

2018-08-03 02:39:23

阅读数 919

评论数 0

浅谈共识机制(POW、POS、DPOS、PBFT及POP)

共识机制有什么用? 它就像一个国家的法律,维系着区块链世界的正常运转。 在区块链上,每个人都会有一份记录链上所有交易的账本,链上产生一笔新的交易时,每个人接收到这个信息的时间是不一样的,有些想要干坏事的人就有可能在这时发布一些错误的信息,这时就需要一个人把所有人接收到的信息进行验证,最后公...

2018-07-30 16:20:18

阅读数 3679

评论数 0

如何编写一个简单的智能合约(Smart Contract)

使用solidity语言编写智能合约 Ethereum 上的智能合约需要使用 solidity 语言编写。虽然还有其他能用来撰写智能合约的语言如 Serpent (类 Python )、lll (类 Fortran),但是目前看到所有公开的智能合约都是使用solidity撰写。 宣传上说,so...

2018-07-26 23:01:40

阅读数 1329

评论数 0

提示
确定要删除当前文章?
取消 删除