欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java和Scala学习日记8

程序员文章站 2022-04-27 08:53:00
...

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]

解析:

Java和Scala学习日记8


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位JDK
export ARCH_DATA_MODEL=64

# 取消两个环境变量设置
unset JAVA_HOME
unset 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       

相关标签: object openjdk