自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

转载 Idea控制台日志乱码解决(实测有效)

记得配置好后,一定要重启idea操作引用如下:https://www.cnblogs.com/liaoyanglong/p/6639039.html

2019-01-30 11:24:25 8849

转载 以太坊源码学习(六)geth源码debug以及遇到的问题记录

1.debug使用的idea是golang 参考https://blog.csdn.net/KeenCryp/article/details/811035662.win7环境执行debug时遇到的问题cc1.exe: sorry, unimplemented: 64-bit mode not compiled in参考https://blog.csdn.net/mecho/ar...

2019-01-24 09:59:52 553

原创 以太坊源码学习(五)提交交易之交易池

/internet/ethapi/api.go// submitTransaction is a helper function that submits tx to txPool and logs a message.func submitTransaction(ctx context.Context, b Backend, tx *types.Transaction) (common....

2019-01-20 16:10:44 538

原创 以太坊源码学习(三)交易

internal/ethapi/api.go// SendTransaction will create a transaction from the given arguments and// tries to sign it with the key associated with args.To. If the given passwd isn't// able to decryp...

2019-01-20 09:44:25 362

原创 以太坊源码学习(二)geth启动

geth命令cmd/main/main.gofunc main() { if err := app.Run(os.Args); err != nil { // app是三方包,用于接收客户端命令 fmt.Fprintln(os.Stderr, err) os.Exit(1) }}func init() { // init方法先于main方法执行...

2019-01-19 15:51:22 524

原创 以太坊源码学习(一)区块结构

区块结构type Block struct { header *Header //区块头 uncles []*Header //防止攻击的 transactions Transactions //交易列表 // caches hash atomic.Value size atomic.Value // Td is us...

2019-01-13 21:40:52 414

原创 solidity学习笔记(十八)动态、固定字节数组以及string之间的转化

1.固定大小的数组之间的转化pragma solidity ^0.4.6;contract TestCharge{    bytes2 public b = 0x6c11;    // bytes 大小使用bytes32的32决定    function bLength() returns(uint){        return b.length;    }    funct...

2019-01-05 10:22:32 784

原创 solidity学习笔记(十七)可变数组push

pragma solidity ^0.4.6;contract TestPush{    bytes public name = new bytes(2);    // 会增加长度    function pushName(byte b) public{        name.push(b);    }}

2019-01-04 07:38:19 2857

原创 solidity学习笔记(十六)可变长度字节数据

长度和内容都可以修改pragma solidity ^0.4.6;contract TestCreateBytes{    bytes public b = new bytes(1);        function getLength() constant returns(uint){        return b.length;    }        function ...

2019-01-04 07:36:21 432

原创 solidity学习笔记(十五)特殊字符或者汉字字节大小

pragma solidity ^0.4.6;contract TestTeShu{    string public name="@!$F";    string public name2 = "小吴";//0x40212446    function getBytes() returns(bytes){        return bytes(name);    }      ...

2019-01-04 07:36:08 854

原创 solidity学习笔记(十四)string转化bytes

pragma solidity ^0.4.6;contract TestString2Bytes{    string public _name="xiaowu";        function getLength() returns(uint){        return bytes(_name).length;    }        function setFirstBy...

2019-01-04 07:35:55 1987

原创 solidity学习笔记(十三)动态大小字节数组

不知道大小时使用string或者bytes在知道大小时使用bytes1-bytes32,降低存储成本 

2019-01-04 07:35:45 224

原创 solidity学习笔记(十二)固定长度字节数组

一个字节八位pragma solidity ^0.4.6;contract TestFixBytes{    // 一个字节 八位 固定大小数组内容和长度都不可修改     bytes9 a = 0x6c111122ab9;//    bytes1 b = 0x69;//105    function test1() constant returns(bool){         r...

2018-12-31 16:41:44 332

原创 solidity学习笔记(十一)string

string使用“”或者‘’表示,是可变长度的字节数组一个汉字对应三个字节数据或者字符对应一个字节不能通过length获取长度或者修改,需要先转化为数组再做修改pragma solidity ^0.4.6;contract TestString{    string _name;    function TestString() {        _name = "xiao...

2018-12-31 15:25:26 337

原创 solidity学习笔记(十)sender转账

transfer转账余额不足,会异常sender转账余额不足返回false使用send要检查转账结果,深度限制1024所以使用tansfer更安全pragma solidity ^0.4.6;contract TestSender{    function deposit() payable returns(bool) {        // 消息发送人的地址       ...

2018-12-31 15:15:24 609

原创 solidity学习笔记(九)transfer转账

转账方法需要申明payabletransfer转账pragma solidity ^0.4.6;contract TestTransaction{    function deposit() payable {        address acc = 0x15Ee9687310EF47b59F2e6060d3b7AD90e6a09E5;        acc.transfer(...

2018-12-31 11:37:57 6252

原创 solidity学习笔记(八)钱包地址余额查看

address.balancepragma solidity ^0.4.6;contract TestBalance{    function getBalance(address addr) constant returns(uint){        return addr.balance;    }        function getCurrentBalance() co...

2018-12-31 11:12:49 3507

原创 solidity学习笔记(七)地址支持的运算符

支持<= ,<,==,>=,>pragma solidity ^0.4.6;contract TestYunSun{    address address1=0x692a70d2e424a56d2c6c27aa97d1a86395877b3a;    address address2=0x692a70d2e424a56d2c6c27aa97d1a86395877b...

2018-12-31 11:03:46 202

原创 solidity学习笔记(六)this和指针

this指的是当前的合约对象

2018-12-31 10:55:25 2008

原创 solidity学习笔记(五)sender

msg.sender 消息的发送者,对应当前交易里面的from pragma solidity ^0.4.6;contract TestMsg{ address public _owner; uint public _number; function TestMsg(){ _owner = msg.sender; _nu...

2018-12-31 10:41:16 240

原创 solidity学习笔记(四)地址

地址20字节,每个字节8位地址是40个十六进制字符,以0x开头地址二进制为160位,可以用uint160存储二进制,比如F=15=1111二进制pragma solidity ^0.4.6;contract Test{ address _owner; uint160 _ownerUnit160; function Test(){ //_o...

2018-12-31 10:28:17 188

原创 solidity学习笔记(三)参数传递

值类型:布尔boolean、  整型Integer、 地址address、  定长字节数组byte、枚举 Enums 、函数 指针类型:不定长字节数组 bytes 、字符串string 、数组array 、结构体Struts参数类型:stroage和memory 方法形参默认是memory(值传递),可使用stroage(指针传递),在使用stroage修饰形参时方法必须是intern...

2018-12-31 09:42:51 1945

原创 solidity学习笔记(二)布尔型

 boool型很好理解,会简单运算即可pragma solidity ^0.4.4;contract Bool {    bool _f;       constructor() public{       _f = false;   }       function testB() constant public returns(bool){       if(!_f){...

2018-12-28 07:32:04 119

转载 以太坊原理分析(二)以太坊区块结构和账户体系

1、引言       区块链的本质是一个分布式的数据库。因此不同时刻的用户数据的写入对应着不同的状态。比特币使用UTXO来表示状态的转移,而以太坊使用账来表示状态的转移。2、账户       以太坊中存在两种账户,分别是外部账户和合约账户。外部账户EOA:一般自然人分配的账户,被私钥控制且没有任何代码与之关联。合约账户CA:给智能合约分配的账户,被合约代码控制且有代码与之关联。...

2018-12-27 11:01:24 1996

转载 以太坊原理分析(一)以太坊工作(交易)原理

简介不管你们知不知道以太坊(Ethereum blockchain)是什么,但是你们大概都听说过以太坊。最近在新闻里出现过很多次,包括一些专业杂志的封面,但是如果你们对以太坊到底是什么没有一个基本的了解的话,看这些文章就会感觉跟看天书一样。 所以,什么是以太坊?本质上,就是一个保存数字交易永久记录的公共数据库。重要的是,这个数据库不需要任何中央权威机构来维持和保护它。相反的它以一个“无信任”的...

2018-12-25 15:25:50 6095 1

原创 solidity学习笔记(一)类

 solidity语言类java,面向对象,相同的特性和方法抽象出来,放在一起,简单的类如下:// constaract 合约,相当于class ConstaractDemo extend Constractcontract ContractDemo { uint public _age; string _name; address _owner; ...

2018-12-25 14:42:46 225 1

转载 fabric学习纪要(一) 1.0.0环境搭建(各种环境问题,弄了两周才跑起来)

fabric 环境问题很多,弄了好久,按步骤来这篇文章可行,记录下还有一点心得:如果你遇到问题,实在解决不了,环境初始化重来,fabric要求比较干净的环境一、装GO语言下载最新版的go打开Terminal,输入命令(以下命令都是以root管理员的角色进行的)su输入密码:*****wget https://storage.googleapis.com/golang/go1...

2018-12-03 10:28:13 297

原创 Fork/Join框架

核心算法是双端队列和工作密取public class CountTask extends RecursiveTask<Integer>{ /** * */ private static final long serialVersionUID = -6510809705660346699L; private static final...

2018-08-23 15:15:39 102

原创 单例模式与线程安全

package com.thinkgem.jeesite.test;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; */public class SingletonTest ...

2018-08-16 15:13:24 120

原创 怎么设计一个好的接口(一)

1.要找到相同的点,不同的点,不变的点,变化的点,相同的不变的抽象出来,变化的单独处理

2018-08-15 17:56:42 296

原创 this关键字理解

代码:public class Test implements Runnable { private int b = 100; public static void main(String[] args) throws InterruptedException { Test task = new Test(); Thread thread =...

2018-08-15 17:48:07 170

转载 对static关键字的理解

static关键字修饰的方法和变量是全局唯一的,不会因为new而新创建一个,jvm类加载的时,为静态的提前初始化:Class文件中的“类”从加载到JVM内存中,到卸载出内存过程有七个生命周期阶段。类加载机制包括了前五个阶段。如下图所示:其中,加载、验证、准备、初始化、卸载的开始顺序是确定的,注意,只是按顺序开始,进行与结束的顺序并不一定。解析阶段可能在初始化之后开始。 另外...

2018-08-15 17:08:47 1411

原创 关于面向对象的理解(二)

面向对象是将相同的特征的东西抽象出作为有个对象,这样做是为了使用者更好的跟方便的使用,便于使用者理解维护,面向对象是一种指导思想。之所以称为高级语言,就是对使用者友好。java是面向对象设计的,你写出来的代码一定面向对象了吗?js不是面向对象设计的,你写出的代码一定不是面向对象的吗?不是,语言只是工具,只要你熟悉了js语法,使用面向对象思想,你可写出很漂亮的代码总结:学习一门语言,...

2018-08-09 11:13:43 108

原创 业务功能设计时关于扩展性和最小功能原则的思考

最近遇到一个迷惑,产品的需求是已配货,已发货,已签收的订单可以售后退款,在实现接口的时候,我做了check,只能是已配货,已发货,已签收的才能退款,后来又在思考,这样写死,shib是不是没有扩展性,虽然符合了最小功能设计了,但是有一天产品说,配货中的也能退货,是不是就是需求修改代码,扩展性就不好了?是不是把这个可以退货的状态放在字典里面。找我们架构师说了这事,架构给出的是:这个变化的概率有多大...

2018-08-08 15:35:18 475

原创 关于面向对象的理解

今天看同事代码,发现在做一个订单状态记录查询的功能时,将功能的做到支付流水的业务模块中去了,问理由是:就一个查询,单独建一个类,还不如放一起,看似有理,其实:1.违背了面向对象的思想,对具有相同特征的事物抽象出一个是模型,并定义在这个模型上的操作,也就要求属于一个对象的东西要在一起2.违背接口设计原则,单一职责 ...

2018-08-08 15:22:18 124

原创 ReentrantLock的lockInterruptibly和lock响应中断区别以及常见的锁汇总

java.util.concurrent.locks.ReentrantLock1.lock.lockInterruptibly();立即响应中断:public class TestLockInterruptibly {    static ReentrantLock lock = new ReentrantLock();    public static void main(St...

2018-08-07 16:44:49 5678

原创 DAO设计模式和MVC设计模式

为了解耦,提高系统的扩展性和灵活性,使用DAO设计模式将数据访问和业务逻辑分开,相对来说,数据库访问比较稳定1.数据层:对数据的原子访问操作2.业务层:通过使用数据层的原子操作,完成相应的项目的业务每一层职责单一,层次清晰MVC模式v:view展示层,比如jsp页面,最近在做项目时,状态字段的翻译,在页面处理的,当新增了状态类型时,页面和后台都要修改,个人觉得不符合MVC模...

2018-08-07 12:47:44 1750

原创 怎么设计一个好的接口(一)

之前有面试官问我:怎么设计一个好的接口结合工作实际做记录:1.昨天遇到一个接口,入参给了一个售后单id,查询售后单详细,接口内部还需要根据这个id去调调用方查询这个售后单id是哪供应商的,解读这个接口是:给了一个不知道是哪个供应商的售后单id来查询售后单详细,很奇怪不?参数不明确定义的参数要明确,能让人看懂,你这个接口是干嘛的,这个接口可以加上一个参数,供应商code,就可以解读为:查...

2018-08-07 11:27:20 1448

原创 jeesite数据库主键id改为bigint

     最近在要jeesite开发时,发现数据库id是uuid,这么长,可读性很差,怎么用?去网上度了下,竟然没有找到一个完美解决的,难道大家没感到难用???,还是不屑解决它,算了,自己动手,丰衣足食:思路是:之前的实体类id字段保持不便String,在mybatis层参数解析,生成sql时,将string类型的id转化为数据类型的bigint,这样可利用数据库的自增特性,数据的可读性,也可...

2018-08-07 09:23:08 2252 1

原创 jeesite的treeselect使用总结

场景1在选择了一个选项后,要根据这个选项值去后台加载更多的内容到页面解决思路1.onchange监听输入框值变化,js出发方法ajax去取数据2.treeselect这个js里面设置回调函数,选择后回调本人采用回调方法实现:treeselect.tag里面代码如下:<%@ tag language="java" pageEncoding="UTF-8"%&g...

2018-08-05 15:42:53 12666 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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