- 博客(142)
- 资源 (14)
- 收藏
- 关注

原创 【精华】非科班通往计算机之路的书籍天梯推荐
一、绪论1.背景 计算机行业持续火热,移动互联网、大数据云计算、人工智能、物联网、区块链、量子计算等新技术掀起了一波接一波高潮,正在改变着世界的面貌,再度引领第四次工业革命,对全行业都有着巨大的冲击,各行各业都被智能时代的浪潮所席卷,传统企业不得不面临产业转型。在这样的时代背景下,计算机行业就业形势一片大好,而传统行业却不容乐观,便呈现出“三百六十行,行行转IT”的局面。 最近有不少朋友...
2019-10-05 18:08:15
2102
原创 【笔记】工厂方法模式
讲一下工厂方法模式 工厂模式(Factory Pattern) 是 Java 中最常用的设计模式之一,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 主要解决:主要解决接口选择的问题。 何时使用:我们明确地计划不同条件下创建不同实例时。 如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。
2020-11-23 23:35:51
468
原创 【笔记】单例模式
文章目录单例模式简介单例模式的结构与实现单例模式的实现方式1. 饿汉式2. 线程不安全的懒汉式3. 线程安全的懒汉式4. 双重校验锁(DCL)5. 静态内部类6. 枚举单例模式实现方式的选择单例模式的特点和优缺点单例模式的应用场景单例的同步问题单例模式简介 单例模式(Singleton Pattern) 是 Java 中最简单的设计模式之一,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一对象的方式,可以直接访
2020-11-22 23:57:45
489
原创 【精华】安卓开发学习路线规划
近一段时间经常被朋友问到如何从零开始学习安卓,成为一名安卓开发工程师。不得不感叹,现在各行各业都有不少人在涌向IT/互联网行业,希望从事程序开发工作,竞争越来越激烈了。借此机会,我梳理了一下自己所学所知的安卓知识,制定了这份安卓开发学习路线规划,希望能帮助到有志于安卓开发的伙伴能尽快找到学习的方向,进入安卓开发的大门!一、安卓开发学习路线 安卓开发可以从深度和广度两个维度进行学习。大方向上看,Android在向诸如Flutter这样的跨平台技术演进,混合式开发、大前端等正成为移动端的发展方向和热门
2020-11-19 00:47:07
22296
4
原创 【笔记】消息队列简介
一、系统间通信技术介绍 如果是一个业务被拆分成多个子业务部署在不同的服务器上,那就是分布式应用;如果是同一个业务部署在多台服务器上,那就是集群。分布式应用的子系统之间并不是完全独立的,它们需要互相通信来完成某个功能,这就涉及系统间通信了。 业界通常有两种方式来实现系统间通信,其中一种是基于远程过程调用的方式;另一种是基于消息队列的方式。前一种就是常说的RPC调用,客户端不需要知道调用的具体...
2020-05-02 20:23:01
469
原创 【干货】Session、Cookie、JWT总结
一、概述 HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。二、Session1.简介 客户端请求服务端,服务端会为这次请求开辟一块内存空间,这个对象便是 Session 对象,存储结构为 ConcurrentHashMap。Ses...
2020-04-05 17:41:55
279
原创 【干货】Spring Boot注解大全
一、SpingBoot注解@SpringBootApplication:申明让spring boot自动给程序进行必要的配置,这个配置等同于:@ComponentScan、@Configuration和@EnableAutoConfiguration注解。@ComponentScan:让spring Boot扫描到Configuration类并把它加入到程序上下文。@Configuratio...
2020-04-05 16:43:42
274
原创 【笔记】拜占庭将军问题与共识算法
一、拜占庭将军问题1.概念、实质与条件 拜占庭将军问题的核心:军中可能有叛徒,军队保证进攻一致性的同时,又要避免军中叛徒的破坏。 在拜占庭将军问题中,将军们必须有一个预定的方法,使所有忠诚的将军能够达成一致,即使有几个叛徒传递了错误消息,也不会使忠诚的将军做出错误的计划。 拜占庭将军问题的实质是:要寻找一个方法,使将军们能在一个有叛徒的非信任环境中建立对战斗计划的共识。 拜占庭将军问...
2020-03-21 17:26:42
1566
原创 【练习】基于Cipher实现DES加密和解密
Java中Cipher类主要提供加密和解密的功能,该类位于javax.crypto包下,声明为public class Cipher extends Object,它构成了Java Cryptographic Extension(JCE)框架的核心。使用Cipher类时,需构建Cipher对象,再调用Cipher的getInstance方法来实现。package org.example;...
2020-03-08 15:46:05
1498
原创 【笔记】分布式系统的一致性问题
文章目录一、分布式系统一致性概述1.分布式系统一致性的概念与模型一、分布式系统一致性概述1.分布式系统一致性的概念与模型 所谓一致性,是指数据要完整、要同步。在一个中心化的系统中,数据的结果或者状态总是一致而同步的,即便这些系统的服务器不止一台,但哦度属于同一中心集群,在内部是可以高效一致而同步的。而对于分布式系统,首要问题就是如何解决一致性的问题,即如何在多个独立的节点之间达成共识,如区...
2020-03-05 22:40:14
1119
原创 【干货】以太坊发布和调用智能合约实操
文章目录一、安装Web3.js二、连接geth节点三、编写和编译智能合约四、发布智能合约五、调用智能合约六、自动编译智能合约一、安装Web3.js Web3.js是一套用Javascript实现的API,用于与以太坊节点进行通信,并通过以太坊节点操作以太坊网络。Web.js内部使用JSON-RPC协议与以太坊节点(geth和其他类型的节点)进行通信。 JSON-RPC是一个无状态且轻量级...
2020-03-04 20:05:02
2147
1
原创 【干货】以太坊solidity编程常见错误
以太坊问答网站:https://ethereum.stackexchange.com/1、Expected token Semicolon got ‘eth_compileSolidity’ funtion setFunder(uint _u,uint _amount){解决:funtion关键字错了,需要用function;2、Variable is declared as a stor...
2020-03-04 11:49:44
3176
原创 【笔记】区块链的分类与应用
文章目录一、区块链的分类标准二、公有链、私有链、联盟链1.公有链2.私有链3.联盟链三、主链与测试链四、单链、侧链与互联链一、区块链的分类标准 区块链按照不同标准,主要有3种分类: (1)根据区块链的网络范围,可分为公有链、私有链、联盟链; (2)根据区块链对接类型,分为单链、侧链与互联链; (3)根据区块链部署的显示环境,可分为主链和测试链。二、公有链、私有链、联盟链1.公...
2020-02-29 17:31:30
2640
原创 【笔记】分布式网络与分布式账本
一、分布式网络P2P的概念1.类型与概念 现实网络模式中,主要存在三种模式,分别是中心化、分布式与去中心化。 分布式网络,作为区块链的底层公有链,是种分布式对等网络(P2P),每个网络节点都是平等的,没有哪个节点处于中心地位或者对其他节点具有控制、管理权限,所以每个结点之间的关系都是对等的,故又称为“对等网络”。 在此网络中的参与者既是资源、服务和内容的提供者,又是资源、服务和内容的获取...
2020-02-24 00:39:02
5090
3
原创 【笔记】区块链的系统架构、数据结构及运行机制
文章目录一、区块链的系统框架1.区块链的系统架构与运行2.数据层、网络层与共识层3.激励层、合约层与应用层二、区块的概念和识别1.区块与区块头2.区块的识别三、创世区块与区块的连接1.创世区块2.区块的连接四、区块链的数据结构1.区块链的结构基础2.哈希值、梅克尔根等数据及作用3.难度确认、运行及其作用4.时间戳、随机数及其作用五、区块链的工作流程与机制1.步骤与防止分叉2.安全、透明与不可篡改的...
2020-02-22 17:29:40
17344
1
原创 【精华】图解Kafka入门
要做一个消息队列可能要考虑到以下的问题:使用消息队列不可能是单机的(必然是分布式or集群)?数据写到消息队列,可能会存在数据丢失问题,数据在消息队列需要持久化(磁盘?数据库?Redis?分布式文件系统?)想要保证消息(数据)是有序的,怎么做?为什么在消息队列中重复消费了数据? Kafka是一个消息队列,把消息放到队列里边的叫生产者,从队列里边消费的叫消费者。 一个消息中...
2020-02-21 01:15:10
564
原创 【笔记】密码学与安全技术概要总结(二)
【笔记】密码学与安全技术概要总结(一)文章目录三、消息认证码与数字签名1.消息认证码2.数字签名2.1 盲签名2.2多重签名2.3群签名2.4环签名3.安全性四、数字证书1. X.509证书规范2.证书格式3.证书信任链五、PKI体系1.PKI基本组件2.证书的签发3.证书的撤销六、Merkle树结构1.快速比较大量数据2.快速定位修改3.零知识证明七、布隆过滤器1.基于Hash的快速查找2.更...
2020-02-20 13:14:11
1071
1
原创 【干货】Mac上搭建以太坊私有网络
文章目录一、环境搭建1.安装go语言2.安装Geth3.使用geth的help命令可查看使用指南(可跳过)4.Geth简介二、搭建私有网络1.创建创世区块配置文件2.网络初始化3.搭建节点运行的环境4.设置账户5.启动挖矿6.停止挖矿7.打开以太坊钱包8.进行交易三、常见报错总结一、环境搭建1.安装go语言brew install go2.安装Geth方法一:官网下载最新版本http...
2020-02-17 16:47:53
2310
1
原创 【干货】TypeError: Data location must be “memory” for parameter in function, but none was given.
在Remix使用solidity语言编写智能合约:pragma solidity ^0.6.1;contract HelloWorld{ string Myame = "fzj"; function getName() public view returns(string){ return Myame; } ...
2020-02-17 01:31:17
2174
原创 【笔记】分布式系统核心问题概述(二)
【笔记】分布式系统核心问题概述(一)文章目录六、Paxos算法与Raft算法1.Paxos算法2.Raft算法七、拜占庭问题与算法八、可靠性指标1.几个9的指标2.两个核心时间3.提高可靠性六、Paxos算法与Raft算法 Paxos问题:指分布式的系统中存在故障(crash fault),但不存在恶意(corrupt)节点的场景(即可能消息丢失或重复,但无错误消息)下的共识达成问题。 ...
2020-02-16 20:13:57
829
原创 【笔记】分布式系统核心问题概述(一)
文章目录一、一致性问题1.定义2.一致性要求3.带约束的一致性二、共识算法1.问题与挑战2.常见算法三、FLP不可能原理1.定义2.定理的理解四、CAP原理1.定义2.应用场景五、ACID原则区块链系统,首先是一个分布式系统。一、一致性问题 一致性问题是分布式领域最为基础也是最重要的问题。如果分布式系统能实现“一致”,对外就可以呈现为一个完美的、可扩展的“虚拟节点”,相对物理节点具备更优越...
2020-02-16 20:11:09
804
原创 【笔记】密码学与安全技术概要总结(一)
工程领域从来没有黑科技;密码学不仅是工程。 密码学和安全领域所涉及的知识体系十分繁杂,本文简述密码学领域中跟区块链相关的一些基础知识,包括Hash算法与数字摘要、加密算法、数字签名、数字证书、PKI体系、Merkle树、布隆过滤器、同态加密等。文章目录一、Hash算法与数字摘要1.Hash定义2.常见算法3.性能4.数字摘要5.Hash攻击与防护二、加解密算法1.加解密系统基本组成2.对...
2020-02-16 18:31:02
1367
原创 【精华】Docker知识总结
一、概述1.基本概念 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。2.优势...
2020-02-15 22:36:15
248
原创 【笔记】区块链的基本认识
文章目录一、区块链的内涵1.区块链的诞生拜占庭将军问题从比特币底层技术看区块链的诞生2.区块链概念的多角度理解从总账副本的角度从账本记账的动态角度从数据库的构造角度从三大核心问题的角度从多种技术组合的角度从互联网新应用协议的角度二、区块链的特征1.区块链的一般性特点2.区块链的其他特点三、其他一、区块链的内涵1.区块链的诞生拜占庭将军问题从比特币底层技术看区块链的诞生 区块链技术最初...
2020-02-15 20:27:08
1347
原创 【干货】Redis面试题集锦
1.你在实际项目中使用缓存有遇到什么问题或者会遇到什么问题你知道吗? 缓存和数据库数据一致性问题:分布式环境下非常容易出现缓存和数据库间数据一致性问题,针对这一点,如果项目对缓存的要求是强一致性的,那么就不要使用缓存。我们只能采取合适的策略来降低缓存和数据库间数据不一致的概率,而无法保证两者间的强一致性。合适的策略包括合适的缓存更新策略,更新数据库后及时更新缓存、缓存失败时增加重试机制。2....
2020-02-15 13:10:29
2895
原创 【精华】Redis知识总结
文章目录一、思维导图总结二、Redis 简介三、Redis 优势三、Redis 数据类型1.string2.hash3.list4.set5.Zset6.数据类型应用场景总结四、发布订阅1.简介2.常用命令五、事务2. 常用命令六、持久化1.RDB 持久化2.AOF 持久化七、复制1.连接过程2.主从链八、哨兵九、分片面试问题集锦一、思维导图总结二、Redis 简介 Redis是C语言开...
2020-02-15 01:41:41
452
转载 【干货】软件安装报“不能注册DLL/OCX:RegSvr32失败;退出代码Ox3”
安装软件遇到报错:“不能注册DLL/OCX:RegSvr32失败;退出代码Ox3”。可参考下面文章进行操作http://wiki.boowayun.com/bwwiki/detail/3403.html
2020-02-14 20:31:08
21290
1
原创 【干货】Docker 资源汇总
一、Docker 资源Docker 官方主页: https://www.docker.comDocker 官方博客: https://blog.docker.com/Docker 官方文档: https://docs.docker.com/Docker Store: https://store.docker.comDocker Cloud: https://cloud.docker.co...
2020-02-07 23:07:03
317
原创 【精华】JAVA基础知识——并发与多线程
一、基本概念1.线程和进程 进程: 是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程...
2019-12-07 11:44:41
285
原创 【精华】Android面试精华总结——Android控件架构与自定义控件
一、Android控件架构 在Android中,控件大致被分为两类,即ViewGroup控件与View控件。ViewGroup控件作为父控件可以包含多个View控件,并管理其包含的View控件。通过ViewGroup,整个界面上的控件形成了一个树形结构,即控件树,上层负责下层子控件的测量与绘制,并传递交互事件。通常在Activity中使用的findViewById()方法,就是在控件树中以树的...
2019-11-26 00:07:51
527
原创 【精华】Java基础知识——集合框架
一、Java Collection框架 Collection框架包含大量集合接口以及这些接口的实现类和操作它们的算法,主要提供了List、Queue、Set、Stack、Map等数据结构。其中List、Queue、Set、Stack都集成自Collection接口。 Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储...
2019-11-20 22:32:03
260
原创 【精华】Android面试精华总结——应用架构模式
一、MVC模式1.基本概念 MVC(Model—View—Controller 模型—视图—控制器)模式,用一种业务逻辑、数据、界面显示分离的方式组织代码,在改进和个性化定制界面及用户交互的同时,无需重新编写业务逻辑。所有通信都是单向的。 MVC角色定义: 模型层: 针对业务模型建立的数据结构和相关的类,即为Model。Model是与View无关,而与业务相关的。 视图层: 一...
2019-10-07 23:40:00
319
原创 【精华】Android面试精华总结——数据存储与IO
一、File文件存储1.文件的操作模式2.相关操作方法3.读取SD卡上的文件4.读取raw和assets文件夹下的文件 如果我们不想自己的文件被编译成二进制文件的话, 我们可以把文件放到这两个目录下,而两者的区别如下:res/raw:文件会被映射到R.java文件中,访问的时候直接通过资源ID即可访问,而且 他不能有目录结构,就是不能再创建文件夹assets:不会映射到R....
2019-10-07 18:33:36
456
原创 【精华】Android面试精华总结——Socket网络通信
一、Android网络通信基础1.网络通信简介 Android完全支持JDK本身的TCP、UDP网络通信API,也可使用ServerSocket、Socket来建立基于TCP/IP协议的网络通信,还可使用DatagramSocket、Datagrampacket、MulticastSocket来建立基于UDP协议的网络通信。Android也支持JDK提供的URL、URLConnection等...
2019-05-13 22:29:29
7388
原创 【精华】Android面试精华总结——Intent组件
一、Intent简介 Intent是四大组件间的枢纽,Android通信的桥梁。Activity、Service、BroadcastReceiver三种组件之间的通信都以Intent作为载体,只是不同组件使用Intent的机制略有区别而已。Intent封装了程序想要启动或触发目标组件的信息,其还可用于被启动组件交换信息。 二、Intent类型1.显式Intent 通过组件名明...
2019-05-12 19:08:42
516
原创 【精华】Android面试精华总结——AsyncTask组件
一、AsyncTask简介 为了避免UI线程失去响应的问题,Android建议将耗时操作放在新线程中完成,但新线程也可能需要动态更新UI组件,但新线程不允许直接更新UI组件。在Android的多线程编程当中,我们有两条非常重要的原则必须要遵守:绝对不能在UI Thread当中进行耗时的操作,不能阻塞我们的UI Thread。不能在UI Thread之外的线程当中操纵我们的UI元素。 ...
2019-05-12 14:00:31
394
原创 【精华】Android面试精华总结——Handler消息传递机制
一、消息传递机制 Android应用程序被创建的时候都会创建一个UI主线程,但有时会有一些比较耗时的操作,为了防止阻塞UI主线程,我们会将耗时的操作放到子线程中进行处理,处理完之后操作UI,但是Android不允许子线程操作UI,违背了Android单线程模型的原则(即 Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行)。 消息传递机制主要是为了解决Android应...
2019-05-12 11:51:43
762
原创 【精华】Android面试精华总结——Fragment组件
一、Fragment简介 Fragment(片段)表示Activity中的行为或用户界面部分。可以将多个片段组合在一个Activity中来构建多窗格UI,以及在多个Activity中重复使用某个片段。可以将片段视为Activity的模块化组成部分,它具有自己的生命周期,能接受自己的输入事件,并且可以在Activity运行时添加或删除片段。Fragment必须被嵌入一个Activity中,它们的...
2019-05-10 00:34:26
458
原创 【干货】使用GridView组件显示文件列表时应如何优化显示过程
问题: 如果使用GridView组件显示文件里边,有的文件需要显示缩略图(如图像文件、视频文件、apk程序文件),应该如何优化显示过程? 分析: 如果在显示文件缩略图时选择直接装载图像,当图像比较大时,在BaseAdapter.getView方法中直接装载图像会使GridView组件列表上下滑动时出现停顿现象。 最好的方法是使用任务队列技术:在getView方法中要显示某个图像文件的缩...
2019-05-04 10:35:27
262
原创 【精华】Android面试精华总结——ContentProvider组件
一、ContentProvider简介 ContentProvider用于不同的应用程序之间实现数据共享的功能,还能保证数据安全性。ContentProvider是使用表的形式来组织数据的,无论数据来源是什么,ContentProvider都认为是一种表。每个ContentProvider都有一个公共的URI,用于表示这个ContentProvider所提供的数据。 常用的方法有quer...
2019-05-02 15:44:31
342
【论文】 基于遗传算法优化SVM的手写字体识别
2018-01-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人