Java和Scala学习日记8

来源:互联网 发布:生产管理者常用数据 编辑:程序博客网 时间:2024/06/10 21:14

1. Scala默认引入的包

解析:java.lang._、scala._和Predef._。


2. 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里所有引用类(referenceclass)的基类。


3. Scala多维数组

解析:var myMatrix = ofDim[Int](3,3)


4. Scala Collection

解析:

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

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

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

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

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

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


5. Scala单例对象

解析:当单例对象与某个类共享同一个名称时,它被称作是这个类的伴生对象:companion object。必须在同一个源

文件里定义类和它的伴生对象。类被称为是这个单例对象的伴生类:companion class。类和它的伴生对象可以互相

访问其私有成员。


6. Scala文件I/O

解析:

(1)java中的I/O类(java.io.File)

(2)val line = Console.readLine

(3)Source.fromFile("test.txt")


7. Scala线程实现

解析:

(1)通过扩展Thread类。

(2)通过实现Runnable接口。


8. foreach和map区别

解析:foreach用于遍历集合,而map用于映射集合到另一个集合。


9. IDEA快捷键

解析:

(1)Search Everywhere:Double Shift

(2)Go to File:Ctrl + Shift + N

(3)Recent Files:Ctrl + E

(4)Run:Alt + Shift + F10

(5)Debug:Alt + Shift + F9

(6)Stop:Ctrl + F2

(7)Force Step Over:Alt + Shift + F8

(8)Force Step Into:Alt + Shift + F7

(9)Smart Step Into:Shift + F7

(10)Step Out:Shift + F8

(11)Run to Cursor:Alt + F9

(12)Force Run to Cursor:Ctrl + Alt + F9

(13)Resume Program:F9

(14)Evaluate Expression:Alt + F8

(15)Quick Evaluate Expression:Ctrl + Alt + F8

(16)View Breakpoints:Ctrl + Shift + F8

(17)Settings:Ctrl + Alt + S

(18)Project Structure:Ctrl + Alt + Shift + S


10. Description of Java Conceptual Diagram [2]

解析:


11. OpenJDK源码目录

解析:

(1)corba:不流行的多语言、分布式通讯接口。 

(2)hotspot:Java虚拟机。 

(3)jaxp:XML处理。 

(4)jaxws:一组XML web services的Java API。 

(5)jdk:Java开发工具包。 

(6)langtools:Java语言工具。 

(7)nashorn:JVM上的JavaScript运行时。


12. CentOS7编译OpenJDK7 [3][4]

解析:

(1)软件版本

apache-ant-1.8.2-bin.zip,jdk-7u60-linux-x64.tar.gz,openjdk-7u40-fcs-src-b43-26_aug_2013.zip

(2)安装依赖包

yum install alsa-lib-devel cups-devel libX* gcc gcc-c++ freetype-devel libstdc++-static

(3)设置环境变量

# 语言选项,必须设置export LANG=C# Bootstrap JDK的安装路径,必须设置 export ALT_BOOTDIR="/opt/jdk1.7.0_60"export ALT_JDK_IMPORT_PATH="/opt/jdk1.7.0_60"# Ant的安装路径export ANT_HOME="/opt/compile/ant-1.8.2"# 允许自动下载依赖export ALLOW_DOWNLOADS=true# 设置编译的线程数,一般是设置成与cpu个数一样export HOTSPOT_BUILD_JOBS=1# 编译结果存放路径export ALT_OUTPUTDIR="/opt/compile/build-jdk"# 64位JDKexport ARCH_DATA_MODEL=64# 取消两个环境变量设置unset JAVA_HOMEunset CLASSPATH

(4)检查和编译

make sanity && make

(5)Error: time is more than 10 years from present: 1136059200000

修改文件jdk/src/share/classes/java/util/CurrencyData.properties,即AZ=AZM;2009-12-31-20-00-00;AZN。

MZ=MZM;2009-06-30-22-00-00;MZN。RO=ROL;2009-06-30-21-00-00;RON。TR=TRL;2009-12-31-22-00-

00;TRY。VE=VEB;2009-01-01-04-00-00;VEF。


13. IDEA全文检索

解析:Edit -> Find -> Find in Path(Ctrl+Shift+F)


参考文献:

[1] Scala教程:http://www.yiibai.com/scala/

[2] Java Platform Standard Edition 8 Documentation:http://docs.oracle.com/javase/8/docs/index.html

[3] Centos7编译OpenJDK7:http://www.cnblogs.com/mr-long/p/5841604.html

[4] 自己编译JDK的时候遇到的问题记录:http://chenjingbo.iteye.com/blog/1117021       

原创粉丝点击