Java和Scala学习日记8
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位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
上一篇: 3D场景轮播特效
下一篇: 又一次线上OOM排查经过