1. Scala数据类型

(1)Byte:8位有符号补码整数。数值区间为-128到127。

(2)Short:16位有符号补码整数。数值区间为-32768到32767。

(3)Int:32位有符号补码整数。数值区间为-2147483648到2147483647。

(4)Long:64位有符号补码整数。数值区间为-9223372036854775808到9223372036854775807。

(5)Float:32位IEEE754单精度浮点数。

(6)Double:64位IEEE754单精度浮点数。

(7)Char:16位无符号Unicode字符,区间值为U+0000到U+FFFF。

(8)String:字符序列。

(9)Boolean:true或false。

(10)Unit:表示无值,和其它语言void等同。用作不返回任何结果方法的结果类型。Unit只有一个实例值,写成()。

(11)Null:null或空引用。

(12)Nothing:Nothing类型在Scala的类层级的最低端,它是任何其它类型的子类型。

(13)Any:Any是所有其它类的超类。

(14)AnyRef:AnyRef类是Scala里所有引用类(reference class)的基。

2. Scala访问修饰符

Scala访问修饰符包括:private,protected,public,如下所示:

(1)private

在Java中允许外部类访问内部类的私有成员,但是在Scala中是不允许外部类访问内部类的私有成员的。

(2)protected

在Java中允许类的子类,以及同一包中的类访问保护成员,但是在Scala中仅允许类的子类访问保护成员。

(3)public

如果没有指定任何的修饰符,那么Scala默认为public。

(4)作用域保护

private[x]表示"这个成员除了对[…]中的类或[…]中的包中的类及它们的伴生对像可见外,对其它所有类都是private。

需要说明的是x可以指代某个所属的包、类或单例对象。

说明:Scala运算符包括算术运算符,关系运算符,逻辑运算符,位运算符,赋值运算符等。

3. Java数据结构

解析:

(1)枚举(Enumeration):枚举(Enumeration)接口本身不属于数据结构,但它定义了一种从数据结构中取回连续元素的方式。

(2)位集合(BitSet):一个Bitset类创建一种特殊类型的数组来保存位值。BitSet中数组大小会随需要增加。

(3)向量(Vector):该类和ArrayList非常相似,但是该类是同步的,可以用在多线程的情况,该类允许设置默认的增长长度,默认扩容方式为原来的2倍。

(4)栈(Stack):栈是Vector的一个子类,它实现了一个标准的后进先出的栈。

(5)字典(Dictionary):Dictionary类是一个抽象类,用来存储键/值对,作用和Map类相似。

(6)哈希表(Hashtable):Hashtable是Dictionary(字典)类的子类,位于java.util包中。

(7)属性(Properties):Properties继承于Hashtable,表示一个持久的属性集,属性列表中每个键及其对应值都是一个字符串。

4. Java多线程

解析:

(1)采用实现Runnable、Callable接口的方式创见多线程时,线程类只是实现了Runnable接口或Callable接口,还可以继承其它类。

(2)使用继承Thread类的方式创建多线程时,编写简单,如果需要访问当前线程,则无需使用

Thread.currentThread()方法,直接使用this即可获得当前线程。

5. javadoc标签

解析:

(1)@author:标识一个类的作者:@author description

(2)@deprecated:指名一个过期的类或成员:@deprecated description

(3){@docRoot}:指明当前文档根目录的路径:Directory Path

(4)@exception:标志一个类抛出的异常:@exception exception-name explanation

(5){@inheritDoc}:从直接父类继承的注释:Inherits a comment from the immediate surperclass.

(6){@link}:插入一个到另一个主题的链接:{@link name text}

(7){@linkplain}:插入一个到另一个主题链接,但该链接显示纯文本字体:Inserts an in-line link to another topic.

(8)@param:说明一个方法的参数:@param parameter-name explanation

(9)@return:说明返回值类型:@return explanation

(10)@see:指定一个到另一个主题的链接:@see anchor

(11)@serial:说明一个序列化属性:@serial description

(12)@serialData:说明通过writeObject()和writeExternal()方法写的数据:@serialData description

(13)@serialField:说明一个ObjectStreamField组件:@serialField name type description

(14)@since:标记当引入一个特定的变化时:@since release

(15)@throws:和@exception标签一样:The @throws tag has the same meaning as the @exception tag.

(16){@value}:显示常量值,该常量须static属性:Displays the value of a constant, which must be a static field.

(17)@version:指定类的版本:@version info

6. import java.util.{HashMap => _, _}

解析:引入了util包的所有成员,但是HashMap被隐藏了。

说明:默认情况下,Scala总会引入java.lang._ 、scala._和Predef._。

7. Scala Collection

解析:

(1)Scala List(列表):List的特征是其元素以线性方式存储,集合中可以存放重复对象。

(2)Scala Set(集合):Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。

(3)Scala Map(映射):Map是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。

(4)Scala 元组:元组是不同类型的值的集合。

(5)Scala Option:Option[T]表示有可能包含值的容器,也可能不包含值。

(6)Scala Iterator(迭代器):迭代器不是一个容器,更确切的说是逐一访问容器内元素的方法。

8. ScalaNLP,Breeze,Epic,Puck

解析:

(1)ScalaNLP:a suite of machine learning and numerical computing libraries.

(2)Breeze:a set of libraries for machine learning and numerical computing.

(3)Epic:a high-performance statistical parser and structured prediction library.

(4)Puck:an insanely fast GPU-powered parser, built on the same grammars produced by Berkeley Parser.

9. Breeze

解析:

(1)breeze-math: Numerics and Linear Algebra. Fast linear algebra backed by native libraries (via JBlas) where appropriate.

(2)breeze-process: Tools for tokenizing, processing, and massaging data, especially textual data. Includes stemmers, tokenizers, and stop word filtering, among other features.

(3)breeze-learn: Optimization and Machine Learning. Contains state-of-the-art routines for convex optimization, sampling distributions, several classifiers, and DSLs for Linear Programming and Belief Propagation.

(4)breeze-viz: (Very alpha) Basic support for plotting, using JFreeChart.

10. Fernflower

解析:一个对Java程序进行反编译分析的利器。

11. 面向对象行为特征

解析:

(1)继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法;

(2)封装指的是将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能;

(3)多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象在运行时可能表现出不同的行为特征。

12. UML图

解析:UML图大致可分为静态图和动态图两种,UML 2.0包括13种图,如下所示:

(1)静态图

用例图(use case diagram),类图(class diagram)、包图(package diagram)、组件图(component

diagram)、对象图(object diagram)、部署图(deployment diagram)、复合结构图(composite structure diagram)。

(2)动态图

活动图(activity diagram)、通信图(communication diagram)、、交互概观图(interactive overview diagram)、顺序图(sequence diagram)、状态机图(state machine diagram)、定时图(timing diagram)。

说明:常用的UML图包括用例图,类图,组件图,部署图,顺序图,活动图和状态机图。

13. 用例图 [2]

解析:用例图指由参与者(Actor)、用例(Use Case),边界以及它们之间关系构成的用于描述系统功能的视图。

14. 类图

解析:类图使用包含三个部分的矩形来描述,最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的方法。类之间有三种基本关系,即关联(聚合和组合),泛化(继承)和依赖。

说明:聚合使用带空心菱形框的实线表示,组合使用带实心菱形框的实线表示。泛化使用带空心箭头的实线表示。依赖使用带箭头的虚线表示。

15. 组件图

解析:组件图提供系统的物理视图,它的用途是显示系统中的软件对其它软件组件(比如,库函数)的依赖关系。组件图可以在一个非常高的层次上显示,从而仅显示粗粒度的组件,也可以在组件包层次上显示。

16. 部署图

解析:部署图是用来显示系统中软件和硬件的物理架构。从部署图中,可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。

17. 顺序图

解析:顺序图显示具体用例的详细流程,并且显示了流程中不同对象之间的调用关系,同时还很详细地显示对不同对象的不同调用。顺序图描述了对象之间的交互,重点在于描述消息及其时间顺序。

18. 活动图

解析:描述用例内部的活动或方法的流程,如果出去活动图中的并行活动描述后,它就变成流程图。

19. 状态机图

解析:描述某一对象生命周期中需要关注的不同状态,并会详细描述刺激对象状态改变的事件,以及对象状态改变时所采取的动作。

20. Java位运算符

解析:

(1)&:按位与。

(2)|:按位或。

(3)^:按位非。

(4)<<:左位移运算符。

(5)>>:右位移运算符。

(6)>>>:无符号右移运算符。

21. Java逻辑运算符

解析:
(1)&&:与,必须前后两个操作数都是true才返回true,否则返回false。

(2)&:不短路与,作用与&&相同,但不会短路。

(3)||:或,只要两个操作数中有一个true,就可以返回true,否则返回false。

(4)|:不短路或,作用与||相同,但不会短路。

(5)!:非,只需要一个操作数,如果操作数为true,返回false,否则反之。

(6)^:异或,当两个操作数不同时才返回true,如果两个操作数相同则返回false。

22. Java形参长度可变的方法

解析:在JDK 1.5后,Java允许定义形参长度可变的参数,从而允许为方法指定数量不确定的形参。如果在定义方法时,在最后一个形参的类型后增加三点(...),则表明该形参可以接受多个参数值,多个参数值被当成数组传入。

23. Java访问控制符

解析:

(1)private访问控制权限:如果类里的一个成员(包括属性和方法)使用private访问控制符来修饰,则这个成员只能在该类的内部被访问。这个访问控制符用于修饰属性最合适,使用它来修饰属性就可以把属性隐藏在类的内部。

(2)default访问控制权限(包访问权限):如果类里的一个成员(包括属性和方法)或者一个顶级类不使用任何访问控制符修饰,那么就称它是默认访问控制,default访问控制的成员或顶级类可以被相同包下其它类访问。

(3)protected访问控制权限(子类访问权限):如果一个成员(包括属性和方法)使用protected访问控制符修饰,那么这个成员既可以被同一个包中其它类访问,也可以被不同包中的子类访问。如果使用protected来修饰一个方法,通常是希望其子类来重写这个方法。

(4)public访问控制权限(公共访问权限):如果一个成员(包括属性和方法)或者一个顶级类使用了public修饰,这个成员或顶级类就可以被所有类访问,不管访问类或被访问类是否处于同一包中,是否具有父子继承关系。

24. Java父类实例的super引用

解析:如果需要在子类方法中调用父类被覆盖的实例方法,可使用super作为调用者来调用父类被覆盖的实例方法。

25. final关键字

解析:Java提供了final关键字来修饰变量、方法和类,系统不允许为final变量重新赋值,子类不允许覆盖父类的final方法,final类不能派生子类。通过使用final关键字,允许Java实现不可变类,不可变类会让系统更加安全。

参考文献:

[1] Scala教程:http://www.runoob.com/scala/scala-tutorial.html

[2] UML系列图--用例图:http://www.cnblogs.com/Yogurshine/archive/2013/01/14/2859248.html

Java和Scala学习日记1相关推荐

  1. Java并发编程学习-日记1、常见的IO模型、NIO、OIO

    常见的IO模型: 1.同步阻塞IO(Blocking IO): 在Java中,默认创建的socket都是阻塞.同步IO,是一种用户空间与内核空间的IO发起方式.同步IO是指用户空间的线程是主动发起IO ...

  2. Java学习日记-Day01

    Java学习日记-Day01 Java语言概述 比特(byte)与字节 内存 Java基础知识图解 人机交互方式 常用的DOS命令 常用快捷键 计算机编程语言介绍 第一代语言 第二代语言 第三代语言 ...

  3. java的圆周率_java学习日记,圆周率的打印

    前段时间看到听说学习java每天写技术贴会对自己提升很大,我现在学习java也就2个周,算不上技术贴,就写写学习日记吧. 昨天师傅给我出了一道题,说是试试用java打印圆周率. 刚开始我的思路是,如果 ...

  4. Java学习日记1——基础认知

    Java学习日记1--基础认知 学习Java阶段,如果发现不正确的描述,还请指正! 首先附上Java相关下载链接和配置教程链接 Java相关软件工具下载地址:官方下载 Java环境配置(win10配置 ...

  5. 尚学堂Java学习日记Day1

    尚学堂学习日记Day1 #今天开始写学习博客记录自己学习java的点滴成长历程,希望能成为学弟学妹们的前车之鉴. 先大概的自我介绍下,我原本从事的是网络工程师,学习的是Cisco(思科)并拥有CCNP ...

  6. 尚学堂Java学习日记Day3

    尚学堂Java学习日记Day3 第三天老师先回顾了昨天的内容我从回顾中掌握了新的知识 如下图所示 int与double计算,输出类型为double的不同结果 会把int转成double类型的,这是隐式 ...

  7. Java学习日记8:文件上传工具类的实现和服务器给客户端发送图片

    文件上传的工具类: 每次文件上传要写很多东西,把这些封装成一个工具类,以后用起来就会方便很多. 先创建一个类存储上传文件的信息: package com.upload; /*** 每上传成功一个文件的 ...

  8. Java学习日记:UI篇(6)--谢尔宾斯基地毯图

    Java学习日记:UI篇(6)–谢尔宾斯基地毯图 引言:谢尔宾斯基地毯是数学家谢尔宾斯基提出的一个分形图形,谢尔宾斯基地毯和谢尔宾斯基三角形基本类似,不同之处在于谢尔宾斯基地毯采用的是正方形进行分形构 ...

  9. Java后端学习日记(二):POJO的基本概念,编写,转化和简化

    专栏目录 Java后端学习日记(一):第一个Springboot应用--Hello World! Java后端学习日记(二):POJO的基本概念,编写,转化和简化 Java后端学习日记(三):Spri ...

最新文章

  1. 代码和XIB结合开发
  2. php mysql读写分离主从复制_mysql主从复制 读写分离原理及实现
  3. Windows XP任务管理器内进程名详解
  4. AI、ML论文网站、如何阅读论文?
  5. Windows 蠕虫首次现身 Mac 电脑:伪装成 Adobe Flash 软件
  6. 1 搭建MyBatis环境
  7. 用计算机画关于科技的画,用计算机鉴识画作
  8. java uuid_Java UUID
  9. java Paths
  10. php面向对象编程调用结果,【PHP面向对象(OOP)编程入门教程】18.__call()处理调用错误...
  11. html基础之input属性
  12. 互联网协议入门(三)
  13. 一文了解Android游戏SDK开发
  14. HTTP的报文(详解)
  15. (八)IT_开发常用单词大全
  16. PDD订单详情接口解密,需要有anti_content(crawlerInfo)
  17. 电动自行车UL认证安全标准UL2849
  18. 边境的悍匪—机器学习实战:第十五章 使用CNN和RNN处理序列
  19. routeDone with a webviewId 12 that is not the current page(env: Windows,mp,1.06.2301040; lib: 2.30.0
  20. 2021湖南省地区高考成绩排名查询,湖南高考排名查询方法 2020年湖南高考成绩位次全省排名查询...

热门文章

  1. Adobe Acrobat Reader离线exe程序下载
  2. 计算机基础教程 周学君 pdf,《计算机基础教程》自动化技术、计算机技术.pdf
  3. qq软件/可ck提取_从事软件开发工作(即不要成为d1ck!)
  4. 从Paxos到Zookeeper:分布式一致性原理与实践
  5. thymeleaf th:表达式总结
  6. 目标跟踪的研究现状和最新资源
  7. SQL Server 2012 下载、安装详细教程
  8. centos 7部署并汉化Gitlab及基础操作
  9. 培训平台python2021高级研修班来啦
  10. 如何在Windows自带的邮件中关联自己的163网易邮箱