Scala的implicit

1. 隐式转换函数 我们在scala repl里定义一个方法foo,接受一个string的参数,打印出message。 当我们传入字符串参数"2"的时候,输出2。 但是当传入的类型是int而不是string的时候,出现类型不匹配异常。 如果我们想支持隐式转换,将int转...

2017-04-30 22:15:21

阅读数:171

评论数:0

Scala包和引用

(1)与对象或类的定义不同,同一个包可以定义在多个文件当中。源文件目录和包之间并没有强制的关联关系。换个角度讲,你也可以在同一个文件当中为多个包贡献内容。 (2)Scala的包和其他作用域一样地支持嵌套,你可以访问上层作用域中的名称。 (3)包可以包含类、对象和特质,但不能包含函数或变量的定义...

2017-04-30 16:25:19

阅读数:171

评论数:0

Scala的模式匹配

scala中的match语句用来在一个列表中选择某一个分支来执行分支的语句块,类似于其他语言中的swtich……case语句。 下面是一个简单的例子: var myVar = "theValue";  myVar match {     case "someV...

2017-04-30 15:59:55

阅读数:135

评论数:0

Scala的函数式风格

Scala的魅力之一就是其函数式编程风格实现。 1 Scala函数之常规函数 eg. def add ( i:Int, j:Int ) :Int = i + j (1)def 是函数定义的关键字 (2)add是函数名 (3)小括号内的是参数列表,i:Int是此函数的第一个参数,该...

2017-04-30 15:08:14

阅读数:186

评论数:0

Scala的面向对象

1 类的定义 eg. class Point(val x:Int, val y:Int)  (1)首先是关键字 (2)其后是类名Point (3)类名之后的括号中是构造函数的参数列表,这里相当于定义了对象的两个常量(变量用var定义)。其名称分别为int,类型为Int。 2 Scala对象的...

2017-04-29 14:58:10

阅读数:116

评论数:0

Scala简介

如Scala官网宣称的:“Object-OrientedMeetsFunctional”,这一句当属对Scala最抽象的精准描述,它把近二十年间大行其道的面向对象编程与旧而有之的函数式编程有机结合起来,形成其独特的魔力。 不知你是否看过梁羽生的著作《绝塞传烽录》?里面白驼山主宇文博的绝学:左手“寒...

2017-04-29 14:29:45

阅读数:164

评论数:0

友元

采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友...

2017-04-28 16:05:11

阅读数:168

评论数:0

超线程/多核技术

预备知识 1、Intel自Pentium开始引入超标量、乱序运行、大量的寄存器及寄存器重命名、多指令解码器、预测运行等特性;这些特性的原理是让CPU拥有大量资源,并可以预先运行及平行运行指令,以增加指令运行效率,可是在现实中这些资源经常闲置;为了有效利用这些资源,就干脆再增加一些资源来运行第二个...

2017-04-27 16:24:05

阅读数:251

评论数:0

走进处理器核设计

处理器核设计技术及其量化分析基础 一、重要性能参数计算 Efficiency(性能):Performance(执行) Execution Time = IC*CPI*CCT IC = instruction count 影响因素:OS overhead、compiler choic...

2017-04-27 14:49:46

阅读数:199

评论数:0

Linux PATH

一、source命令 source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。 功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。 二、点命令和当前...

2017-04-27 01:12:24

阅读数:156

评论数:0

计算机系统结构概述

传统结构 CPU+北桥+南桥 CPU主要体系结构的改变 流水线 -》 指令级并行ILP -》 多核 冯诺依曼结构:程序指令存储器和数据存储器合并在一起的存储结构。 特点:CPU与内存分开,导致所谓的memory wall。 哈佛结构:将程序和数据独立存储在不同的存储空间中,各自独立编制...

2017-04-25 17:49:04

阅读数:433

评论数:0

IO端口和IO内存

从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接……于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器…… ...

2017-04-25 01:37:56

阅读数:157

评论数:0

Java 关键字final

根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。   final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final成员变...

2017-04-24 18:35:59

阅读数:120

评论数:0

Java静态类

Java中的类可以是static吗?答案是可以。在java中我们可以有静态实例变量、静态方法、静态块。类也可以是静态的。 Java允许我们在一个类里面定义静态类。比如内部类(nested class)。把nested class封闭起来的类叫外部类。 在java中,我们不能用static修饰顶...

2017-04-24 18:21:08

阅读数:285

评论数:0

人工智能三要素

人工智能包括三个要素:算法、计算和数据。 人工智能算法目前最主流的是深度学习。 计算所对应的硬件平台有:CPU、GPU、FPGA、ASIC。 由于移动互联网的到来,用户每天产生大量的数据被入口应用收集:搜索、通讯。我们的QQ、微信业务,用户每天产生的图片数量都是数亿级别,如果我们把这...

2017-04-21 23:21:56

阅读数:2026

评论数:0

基于RISC-V架构的开源处理器及SoC研究综述

RISC-V是加州大学伯克利分校(University of California at Berkeley,以下简称UCB)设计并发布的一种开源指令集架构,其目标是成为指令集架构领域的Linux,应用覆盖IoT(Internet of Things)设备、桌面计算机、高性能计算机等众多领域。其产生...

2017-04-21 19:00:39

阅读数:2430

评论数:0

RISC-V相关的开源项目

和RISC-V相关的有如下一些开源项目:  工具链 1、riscv-tools - 基本上所有RISC-V相关工具链、仿真器、测试的宏项目,包含以下的项目 riscv-gnu-toolchain - GNU工具链           riscv-gcc - GCC 编译器 ...

2017-04-21 17:37:04

阅读数:6204

评论数:0

RISC-V

1、简介 “V”包含两层意思,一是这是Berkeley从RISC I开始设计的第五代指令集架构,二是它代表了变化(variation)和向量(vectors)。 RISC-V包含一个非常小的基础指令集和一系列可选的扩展指令集。最基础的指令集只包含40条指令,通过扩展还支持64位和128...

2017-04-21 10:33:08

阅读数:1580

评论数:0

ASIC和FPGA对比

FPGA: FPGA是Field Programmable Gate Array的简称,中文全称为现场可编程门阵列,它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。 FPGA运用硬件描述语言(Verilog或VHDL)描...

2017-04-20 23:00:50

阅读数:1771

评论数:0

CPU的结构

CPU主要包括运算器(ALU,Arithmetic and Logic Unit)和控制器(CU,Control Unit)两大部件。此外,还包括若干个寄存器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。从上面的叙述我们可以看出,CPU主要包含运算逻辑器件、寄存器部件以及控制部件等。...

2017-04-20 22:48:34

阅读数:214

评论数:0

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