Java是解释型语言
源文件中每一个类都对应一个class文件
public类只能有一个,其他类的个数不限,如果一个源文件中有一个public类,则文件名必须与public类的类名相同
java应用程序的执行入口是main方法。它有固定的书写方法:
public static void main(String args[]) {.....}
java严格区分大小写
java的方法由语句构成,每条语句以分号结束
java的注释方有比c++多了1种 共有3种 第三种后面会讲
java标识符由字母、数字、下划线、$美元符组成。只能以字母、下划线和美元符开头
go和const虽然从未使用,但也作为java关键字保留
Java变量必须先声明,然后必须进行赋值,才能使用
程序的执行过程:
1. 从硬盘上将程序Load到内存
2. 操作系统会找到代码的main方法开始执行
执行过程中的内存管理:
分成4部分:code segment, data segment, stack, heap
Code segment中存放代码
Data segment 中存放静态变量,字符串常量
Stack中存放局部变量
Heap:堆 是动态分配内存用的,存放new出来的东西
Java变量的分类:
按被声明的位置划分:
1. 局部变量:方法或语句块内部定义的变量(包括方法的参数)
2. 成员变量:方法外部。类的内部定义的变量
注意:类的外面不能有变量的声明
按所属数据类型划分:
1. 基本数据类型变量
2. 引用数据类型变量
Java中定义了4类8种基本数据类型
逻辑型: boolean
文本型: char
整数型: byte, short, int, long
浮点数型:float, double
Boolean类型不可以0或非0的整数替代true和false,这点和C不同
Java字符采用Unicoke编码,每个字符占两个字节,因而可用十六进制编码形式表示
Java各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java的可移植性
Java的整型常量同样有三种表示形式:十进制、八进制(0开头)和十六进制(0X开头)
Java语言整型常量默认是int类型,声明long型常量可以后加‘L’或‘l’
例如: long L1 = 8888888888 编译会报错 后面必须加上L,因为系统会把88888888888当做int类型,而int类型无法放下这么大的数。
类型 占用字节数 表数范围
Byte 1 -128~127
Short 2 -2^15~2^15-1
Int 4 -2^31~2^31-1
Long 8 -2^63~2^63-1
Java所有的数都是带符号的
Java的浮点类型的表数范围和字段长度同样的固定的,不受平台影响
浮点类型默认的是double类型,如果需要声明float类型必须后面加上‘f’或‘F’
类型 精度 占用字节 表数范围
Float 小数点后7位 4 -3.403E38~3.403E38
Double 小数点后15位 8 -1.798E308~1.798E308
同样float F = 12.3必须在后面加上F
转义字符‘\u’表示后面跟着的是Unicode编码
基本数据类型转换:
Boolean 类型不能转换到其他类型
整型、字符型、浮点型数据在运算中相互转换,转换时遵循以下规则:
容量小的类型自动转换到容量大的数据类型;容量的大小(指的是表示的数的大小而不是内存中的字节数)排序为:
Byte, short, char→int, long→float→double
Byte, short, char三者之间不会相互转换,它们三者在计算时先转会int型
容量大的类型转换到容量小的类型要加强制转换符,但可能造成精度降低或者溢出
有多种数据类型一起运算时候,系统首先自动将所有数据转换成容量最大的那一种数据类型,然后再计算
实数常量默认为double型
整型常量默认为int型
可以直接将int类型的数赋值给byte和short类型,但不能超出它们的表数范围