自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何判断数组为null还是为空?

1.数组为null和数组为空的区别数组为null:是创建了数组的引用,但在堆中并没有数组中的元素例:int[] array1 = null;array1是数组类型的空引用,栈中名为array1的内存空间没有存放任何地址。数组为空:数组是空其实就是数组的长度为0,数组是真正的对象,只是对象中没有元素,也就是说里面没有内容例:int[] array = {};此时创建了数组,数组的长度为0,是一个空数组,但是array不是null,它也是一个对象,只不过它的元素个数为0。2.判断数组是否

2021-01-14 11:34:46 8259

原创 Java | Arrays.copyOfRange()方法

Arrays.copyOfRange(T[ ] original,int from,int to)将一个原始的数组original,从小标from开始复制,复制到小标to,生成一个新的数组。注意复制后的数组包括下标from,但不包括上标to。PS:使用该方法需import java.util.Arrays;...

2021-01-14 11:00:55 576

原创 Linux关闭防火墙命令

一、下面是red hat/CentOs7关闭防火墙的命令!1:查看防火状态systemctl status firewalldservice iptablesstatus2:暂时关闭防火墙systemctl stop firewalldservice iptablesstop3:永久关闭防火墙systemctl disable firewalldchkconfig iptables off4:重启防火墙systemctl enable firewalld...

2021-01-13 14:10:43 610

原创 linux查看ip地址命令ipconfig命令不存在解决方法

linux查看ip地址命令ipconfig命令不存在在新版的Linux发行版中,ipconfig已经不行了,不能使用了。那么,Linux查看ip地址应该使用什么命令呢?如何在Linux命令行中查找系统的IP地址?对于许多Linux用户来说,这是一个常见的问题。ip address用hostname命令显示IP地址使用nmcli工具显示IP地址...

2021-01-13 12:10:31 4954

原创 区块链 | 扩容概览

2020-11-03 14:38:22 95

原创 JavaSE面试题 | (一 )面向对象

(1)面向对象和面向过程的区别?面向过程和面向对象都是一种思想。面向过程面向过程强调的是过程(动作),功能行为。常见的支持面向过程的编程语言有C语言。优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对象易维护、易复用、易扩展。面向对象面向对象强调的是对象(实体)。 常见的支持面向对象的编程语言有C++、 Java 、C#。面向对象这种思想是...

2020-11-03 14:14:37 144

原创 区块链|观点 有关区块链验证的哲学

区块链最强大的一个特质就是我们能独立验证其执行中的每一个部分。即使大部分区块链矿工(或者权益证明中的验证者)被攻击,如果该攻击者企图让无效区块上链,网络也会拒绝。哪怕是没有实时验证区块的用户,(在变故发生时)也能够收到正在验证区块的用户的警告(这个过程有可能实现自动化),进而自行验证发现攻击者的链无效,自动拒绝接收这条链,然后与其他节点协调一致接收另一条遵循规则的链。但在实践中,我们到底需要多少验证者?一百个独立验证的节点?一千个?我们是否需要让世界上每个普通人都运行软件来检查所有交易?回答这些问题是我

2020-11-01 16:30:39 651 1

原创 区块链 | 以太坊layer 2 数据可用性解决方案 ZK Rollup

Rollup 是继 Plasma 和状态通道之后最新的一代扩容方案的概念统称,从具体方案上又会分为 ZK Rollup 和 Optimistic Rollup 两类。ZK Rollup 是利用零知识证明这类密码学技术确保网络和数据的安全性,而 Optimistic Rollup 则是利用类似 Plasma 的「欺诈证明」,以博弈机制确保网络的安全性。什么是 Rollup?Rollup 是一种类似于 Plasma 的 Layer-2 扩展方案:用主链上的单个合约来保管所有的资金,并保存一条指向 .

2020-11-01 16:18:16 1175 1

原创 区块链 | 以太坊二层扩容方案信任模型

以太坊二层扩容方案信任模型Vitalik Buterin2020年9月5日 11:45区块链应用永远不可能实现完全免信任,但是不同应用在免信任程度上却差别显著。原文标题:《干货 | 信任的模式》撰文:Vitalik Buterin,以太坊创始人翻译 & 校对:闵敏 & 阿剑对于许多区块链应用来说,免信任性都是最重要的特征之一。所谓的免信任性,就是应用的正常工作不以特定参与者按特定方式行事为前提,即使他们将来会在利益的驱使下做出意料之外的举动(也不能使应用的工作状况脱离预期)。

2020-11-01 15:05:49 365 1

原创 区块链|区块链是自卫技术,可减少黑客攻击和DoS攻击

DDos全名Distributed Denial of Service,翻译成中文就是分布式拒绝服务。指的是处于不同位置的多个攻击者同时向一个或数个目标发动攻击,是一种分布的、协同的大规模攻击方式。单一的DoS攻击一般是采用一对一方式的,它利用网络协议和操作系统的一些缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。DoS攻击,或者说拒绝服务攻击,是一种用于破坏合法用户访问目标网络或网站资源的方法

2020-10-28 23:31:48 486 1

原创 区块链|数据可用性data availability

数据可用性问题的由来,是恶意矿工会试图发布一个存在区块头,却丢失部分或全部数据的区块至链上。这种攻击行为会造成:欺骗网络来接受一个无效的区块,而且也没有方法来证明此区块的无效性。阻止节点获得当前状态。阻止节点创建区块或转账,因为他们缺少相应的信息来构建证明。但是数据可用性并不只与隐藏区块数据有关。一般而言,只要某些数据被一些参与者隐藏起来禁止访问(也可称为审查机制),都可以叫做数据可用性问题。数据可用性简单来说就是拿不拿得到数据,但不代表拿到的数据的有效的/正确的。那在讨论资料可用性问题之前,

2020-10-28 23:26:31 2024 2

原创 Java | JDk自动拆箱自动装箱

在Java SE5中,为了减少开发人员的工作,Java提供了自动拆箱与自动装箱功能。自动装箱: 就是将基本数据类型自动转换成对应的包装类。自动拆箱:就是将包装类自动转换成对应的基本数据类型。Integeri= 6;//自动装箱 Integer i = new Integer(6)i = i + 6; // i = new Integer(i.intValue()+6) i.intValue()自动拆箱Integer i=10可以替代Integer i = ne...

2020-10-13 10:55:58 218

原创 Java | 单例设计模式

面向对象------单例设计模式设计模式:* 对问题行之有效的解决方式,其实是一种思想。有24种,什么语言都适用1.单例设计模式* 解决的问题:就是可以保证一个类在内存中的对象唯一性Part 1packageexercise1;class Single{//1.私有化该类构造函数private Single() {}//2.通过new 在本类中创建一个本类对象static Single s = new Single();//3.定义一个共有的方法,将创...

2020-09-18 13:03:13 99

原创 区块链 | 原理 、设计与应用

区块链的精髓在于其作为能实现高效、有信用、低成本的合作,而非仅仅是表面的去中心化、去中介。Part 1 分布式记账原理:商业活动参与者首先要寻找一个多方均信任的第三方来记账, 确保交易的准确。可以很容易设计出一个简单粗暴的分布式记账结构,如下图。多方均允许对账本进行任意读写,一旦发生新的交易即追加到账本上。这种情况下,如果参与多方均诚实可靠,则该方案可以正常工作;但是一旦有参与方恶意篡改已发生过的记录,则无法确保账本记录的正确性。为防止恶意篡改, 可以引入验证机制. 使用数字摘.

2020-09-13 16:00:49 3341 2

原创 Java | 函数重载

如果一个类中有多个具有相同名称但参数不同,与返回值无关的方法,则称为方法重载。方法重载提高了程序的可读性。在java中重载方法有两种方式,它们分别是:通过改变参数的数量 通过更改数据类型Part1修改参数的数量创建两个方法,第一个add()方法执行两个数值的相加操作,第二个add()方法执行三个数值的相加操作。在这个例子中,我们创建静态方法,所以不需要创建实例来调用方法public static void main(String[] args) { System.out...

2020-09-11 10:38:32 785

原创 Java | 进制转换 查表法

Part 1获取一个整数的16进制表现形式例1: 0000-0000 0000-00000000-0000 0011-1100 --------60& 0000-0000 0000-00000000-0000 0000-1111 --------15----------------------------------------------------------------------------------- 0000-0000 0000-0...

2020-09-10 15:27:38 213

原创 区块链|CAP原理

分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。一、分布式系统的三个指标ConsistencyAvailabilityPartition tolerance它们的第一个字母分别是 C、A、P。Eric Brewer 说,这三个指标不可能同时做到。这个结论就叫做 CAP 定理。二、Partition tolerance先看 Parti

2020-09-09 22:08:05 1492

原创 Java | java中>>(右移)和>>>(无符号右移)的区别

1. >> 右移二进制码整体右移,如果最高位是0,左移空的位就填入0;如果最高位是1,右移空的位就填入1。正数有符号右移首先计算4>>2将4转为二进制0000 0100 右移两位,符号位为0,所以高位置0得 0000 0001转二进制得 1所以 4>>2 =1负数有符号右移...

2020-09-09 15:53:28 511

原创 选择排序 简单选择排序 直接选择排序的区别

选择排序图示过程如下:

2020-09-08 10:01:40 5600

原创 Linux | 关于putty出现access denied的问题解决方案

解决方法:修改PermitRootLogin在linux终端terminal执行下面命令sudo gedit /etc/ssh/sshd_config找到里面的一项PermitRootLogin 去掉前面的注释符#,然后改成PermitRootLogin yes重启服务service sshd restart...

2020-06-10 16:06:38 1263

原创 Linux| putty连接虚拟机linux——connection refused问题

使用putty连接linux虚拟机时报错:connection refused解决方法如下:按照提示输入:sudo apt install openssh-server 进行安装如果在安装过程中出现了Resource temporarily unavailable说明安装的资源被占用了,很大程度上是因为上次安装不成功导致的。输入以下指令,再重新安装自己的程序即可:sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg...

2020-06-10 15:57:34 691

原创 解决Windows下安装PostgreSQL :“unable to write inside temp environment variable path”的错误

Windows下安装PostgreSQL ,启动安装程序的时候报错:unable to write inside temp environment variable path解决方法:1.开始菜单,打开运行2.输入regedit,打开注册表3.定位到HKEY_CLASSES_ROOT\.vbs4. 将.vbs的默认值改为VBSfile问题得以解决...

2020-04-11 18:57:13 1479 2

原创 BTC-网络

新的交易要发布到比特币网络上,矿工将交易打包成的区块也要发布到比特币网络上。应用层:Bitcoin Blockchain 网络层:P2P Overlay Network比特币网络中的P2P网络是很简单的,所有结点之间都是对等的,没有超级结点。要加入这个网络,至少要有一个种子结点(seed node),和种子结点联系,它会告知它所知道的网络中的其它结点(有点像构造路由表的过程)。结点之间通过...

2020-04-11 14:36:49 1019

原创 BTC-实现

区块链是去中心化的账本,比特币采用的是基于交易的账本模式(transaction-based ledger),只记录了转账交易和铸币交易,并没有直接记录每个账户上有多少钱。如果想知道某个比特币账户上有多少钱,要通过交易记录来推算。UTXO比特币中的全结点要维护一个叫UTXO(Unspent Transaction Output)的数据结构,即未花费交易的输出。一个交易可能有多个输出,被花掉...

2020-04-11 14:35:11 1082

原创 BTC-共识协议

数字货币的交易,如果只用到密码学中的非对称加密体系,没有区块链的话,数字可以复制,会出现双花攻击。数字货币面临的主要挑战就是怎么防范双花攻击。

2020-04-11 14:34:25 1302

原创 BTC-数据结构

哈希指针 hash pointers普通的指针存储的是某个数据在内存中的首地址。哈希指针不仅要保存地址,还要保存数据的哈希值。通过哈希指针不仅能找到数据的位置,还能检测出数据有没有被篡改(因为保存了哈希值)。区块链比特币的基本数据结构即区块链。区块链就是一个个区块(block)组成的链表。和普通的链表相比有一些区别:用哈希指针代替普通指针系统中产生的第一个区块(在区块链的最末尾...

2020-04-11 00:25:00 780

原创 BTC-密码学原理

BTC基础比特币是一种P2P形式的数字货币。点对点的传输意味着一个去中心化的支付系统。与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。我们把抢到记账权从而获得比特币奖励的过程,称为挖矿。比特币的几个重要的特点:1、去...

2020-04-10 23:07:59 1798

原创 hashmap源码解读

hashmap使用链地址法解决哈希冲突(数组加链表),主干是一个entry数组(每个数组包含一个key-value键值对),主干数组的长度一定是2的次冥,entry是hashmap的一个静态内部类 static class Entry<K,V> implements Map.Entry<K,V> { final K key; V value; ...

2019-11-25 10:16:55 133

空空如也

空空如也

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

TA关注的人

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