基础篇——链表反转以及增删改查
理论介绍
本节介绍链表的操作,在本节中我们将学到下面的内容:
生成一个链表
链表添加节点
链表删除节点
链表插入节点
获取链表长度
查找链表节点
获取所有节点
链表反转
之前我们在go语言中,我们用interface来表示范性,今天我们说说interface在go语言当中的另一层含义——接口
在go语言中,接口类型是对其他类型行为的抽象和概括,接口不会跟特定的实现细节绑定在一起,接口可...
基础篇——Go语言队列实现
理论介绍
队列(queue), 是一种先进先出的线性表。通常用数据或者链表来实现队列。 队列只允许在后端插入,前端删除操作。
性质:
先进先出
代码实现
了解了队列的概念,实现一个队列也相当简单,下面看代码
package queue
type Item interface {
}
// Item the type of the queue
type ItemQueue...
基础篇——Go语言栈实现
理论介绍
栈(stack),是计算机科学中一种特殊的串列形式的抽象数据类型,其也通常使用链表或者数据来实现, 与队列不用,栈的性质是后进先出。也就是只能总栈的顶部插入元素与取出元素。
性质:
后进先出
代码实现
package stack
type Item interface {
}
// ItemStack the stack of items
type ItemStac...
Python实现比特币公链——技术架构介绍
如下为整个项目的架构图, 这里从下往上对下图依次做个说明:
一、 Crypto 此模块为BTC链中用到的密码学相关的内容,主要包括Base58、hash以及椭圆加密等算法。在区块链中一个非常核心的就是就是加密技术,所以Crypto在整个技术架构中是占据着一个相当重要的位置,是整个区块链技术的基石,承载着整个区块链项目的顺利运行。
二、 Net 是区块链中的对等网络部分,也就是P2P...
ubuntu14.04安装配置ROS indigo
安装ROS
配置Ubuntu仓库(Software&Updates)
选择清华源(tuna.tsinghua)
设置软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
设置密钥
ubuntu常用软件安装
1、安装chrom
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add-
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/
Linux/Ubuntu基础知识
查看gcc版本
gcc --version
查看linux版本
cat /etc/issue
查看内核版本
cat /proc/version
或uname -a
查看cmake版本
cmake --version
github下载
git clone https://XXXXXX.git
参考
http://blog.csd
版本控制Git的使用
对应的可视化界面软件:Sourcetree
常用命令:
(1)
初始化一个Git仓库,使用git init命令
添加文件到Git仓库,分两步:
使用命令git add <file>,注意,可反复多次使用,添加多个文件;
使用命令git commit -m <message>,完成。
(2)
要随时掌握工作区的状态,使用git status命令。
如果git ...
VS2013+PCL1.7.2
1、PCL下载
百度云盘链接: http://pan.baidu.com/s/1sk9T345 密码: t49d
Windows的PCL 1.6.0以后的新版本都不在官网上放出来了,转而是Github上
2、安装
选择 PCL-1.7.2-AllInOne-msvc2013-win64 进行安装(我的按默认路径)
3、修改环境变量Path
系统属性-》高级-》环境变量-》系统变量-》P...
windows常用软件
Visual Studio:编程、调试
Matlab:相机标定
VMware Workstation Pro:windows下通过虚拟机运行ubuntu
Sublime:看代码
Git:程序版本控制(命令行)
Sourcetree:程序版本控制(可视化界面)
Doxgen:代码注释
Notepad+:文本编辑器
opencv:跨平台的计算机视觉库
PCL:点云库
lantern...
Java多线程2--静态代理模式
继承Thread类方式的缺点:如果一个类已经从一个类继承(如小程序必须继承自Applet类),则无法再继承Thread类
所以接下来讲的就是静态代理模式
* 静态代理 设计模式
* 1.真实角色
* 2.代理角色:持有真实角色的引用
* 3.二者要实现相同的接口
举这样一个例子,买房的客户以及房屋中介
客户即真实角色,中介即代理角色,你把要求告诉房屋中介,然后中介帮你挑,最后...
Java多线程2--Runnable+静态代理实现线程
创建线程的另一种方法是声明实现 Runnable 接口的类。该类实现 run 方法。然后可以分配该类的实例,在创建 Thread 时作为一个参数来传递并启动
先创建一个Programmer类继承Runnable,重写Run方法
/*
* 使用Runnable创建线程
* 1.类实现Runnable接口+重写run() --->真实角色类
* 2.启动多线程 使用静态代理
* ...
Java多线程3--停止线程
关于线程的停止,主要有两种,一种是自然停止,即线程体正常执行完毕。还有一种则是外部干涉,我们主要讲的是外部干涉。其实也比较简单
外部干涉:
1)线程类中定义线程体使用的标识,如boolean型
2)线程体中使用该标识
3)提供对外的方法改变该标识
4)外部根据条件调用该标识
我们还是用例子来进行说明,首先创建一个Study类
public class Study implement...
Java多线程4--线程阻塞join、yield、sleep
1.join:合并线程
调用.join()时,其他线程要等该线程执行完毕后才执行
我们先新建个JoinDemo类
public class JoinDemo extends Thread{
public static void main(String[] args) throws InterruptedException {
JoinDemo jd= new JoinDemo(...
Java多线程5--线程的基本信息
线程的几个方法我们经常要用到
isAlive() 判断线程是否还活着,即线程是否还未终止
getPriority() 获得线程的优先级数值
setPriority() 设置线程的优先级数值
setName() 给线程命名
getName() 获取线程的名字
currentThread(...
百度ueditor编辑器将图片上传到非项目根路径(保存在磁盘上)或独立服务器解决方案
1、如果通过百度Ueditor直接将图片上传到服务器上,当你重新发布项目到服务器上,容易造成图片的丢失!为了防止该事件的发生,尽量将图片上传到磁盘上或者独立存图片的服务器上。
2、百度Ueditor默认情况下存放在相对web工程根路径如本地:D:\workspaces\smart-star2\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\
SpringMVC(3):DispatcherServlet详解
3.1、DispatcherServlet作用DispatcherServlet是前端控制器设计模式的实现,提供spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:1、文件上传解析,如果请求类型是multipart将通过...
SpringMVC(4.1):Controller接口控制器详解(1)
4.1、Controller简介Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分:1、收集、验证请求参数并绑定到命令对象;2、将命令对象交给业务对象,由业务对象处理并返回模型数据;3、返回ModelAndView(Model部分是业务对象返回的模型数据,视图部分为逻辑视图名)。还记得DispatcherServlet吗?主要负责整体的控制流程的调...
SpringMVC(4.2):Controller接口控制器详解(2)
4.5、ServletForwardingController将接收到的请求转发到一个命名的servlet,具体示例如下:java代码:12345678910package cn.javass.chapter4.web.servlet;public class ForwardingServlet extends HttpServlet { @Override protected...
今日推荐
周排行