JAVA核心技术(卷1)读书笔记
Java特点
- 简单性
- 面向对象
- 分布式
- 健壮性
- 安全性
- 体系结构中立
- 可移植性
- 解释型
- 高性能
- 多线程
- 动态性
JAVA语言的三个平台
- .JAVA EE 企业版
- JAVA SE 标准版
- JAVA ME 淘汰
JAVA跨平台
- Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
- JVM不跨平台
JDK&JRE
-
JDK是JAVA开发工具包,JRE是JAVA运行环境,使用JDK开发完成的JAVA程序,交给JRE去运行。
-
JRE:JVM+类库。
-
JDK:JRE+JAVA的开发工具。
OOP
面向对象程序设计,不关心具体实现,只关心结果。
Java中基本的编程单元是对象
JAVA开发过程
.class文件是平台无关的
main函数
-
一个.class文件中只能有一个main函数
-
没有public修饰符不会报错,但是也不能运行
-
没有static会在运行时报错
-
没有void不通过编写,会报错
-
args[]接收的是命令行。
Java赋值的优先级
默认赋值—显示赋值—构造赋值
Java是按值调用的,得到的是所有参数的一个拷贝
表示方法接收的是调用者提供的值
基本数据类型
三类八种
-
数值型
- 整型:
- byte:1字节
- short:2字节
- int:4字节
- long:8字节,后缀为L。
- 浮点型:
- float:4字节,后缀为F或f。
- double:8字节,后缀为D或d。
- 整型:
-
布尔型:boolean:1字节,不能与数值型转换。
-
字符型:char(Unicode编码),2字节,描述了UTF-16中的一个代码单元。
取值范围从小到大:byte—short—char—int—long—float—double
转换图
- 虚线表示可能会有精度损失,实线没有精度损失。
if(两个操作数,一个为double,另一个操作数被转换成double)
else(若第一个为float,另一个被转换成float,有精度损失;若第二个操作数为float,结果会转成float,但是不会有精度损失。)
这里有个前提,就是不能出现数值范围比它大的情况
else(一个为long,另一个被转成long)
else(都被转换成int)
注意点:
- byte+short的结果是int类型的。
- byte+char的结果是一个int类型的整数,把char类型的值,ASCII转成Unicode。
- short+char的结果是把short转成int,把char类型的值,ASCII转成Unicode。
- String+数值类型的结果有:
- 如果字符串在前,数值在后面,会把字符串和数值拼接起来。
- 如果数值在前,字符串在后,会对数值进行算术操作后跟字符串拼接起来。
注意点
- 浮点数除以零,输出结果是无穷大;