在学习基本数据类型前,先了解下java关键字和标识符。
1.java中关键字
| | | | | |
---|
abstract | boolean | break | byte | case | catch |
char | class | continue | default | do | double |
else | extends | flase | final | finally | float |
for | if | implements | import | instanceof | int |
interface | long | native | new | null | package |
private | protected | pulic | return | short | static |
super | switch | synchronized | this | throw | throws |
transient | true | try | void | volatile | while |
2.标识符
标识符就是用于给java程序中变量、类、方法等名称符号
使用标识符时,需要遵守几条规则:
- 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头
- 标识符不能是 Java 关键字和保留字
- 标识符是严格区分大小写的
- 标识符的命名最好能反映出其作用,做到见名知意
3.数据类型
基本数据类型
序号 | 数据类型 | 大小/位 | 封装类 | 默认值(零值) | 可表示数值范围 | 对应的封装类 |
---|
1 | byte(字节)8 | Byte | (btye)0 | -128~127 | java.lang.Byte | |
2 | short(短整数) | 16 | Short | (short)0 | -32768~32767 | java.lang.Short |
3 | int(整型) | 32 | Integer | 0 | -2147483648~2147483648 | java.lang.Integer |
4 | long(长整数) | 64 | Long | 0L | -922337203684775808~922337203684775808 | java.lang.Long |
5 | float(单精度) | 32 | Float | 0.0F | 1.4E-45~3.402823E38 | java.lang.Float |
6 | double(双精度) | 64 | Double | 0.0D | 4.9E-324~1.7976931348623157E308 | java.lang.Double |
7 | char(字符) | 16 | CHaracter | 空(‘\u0000’) | 0~65535 | java.lang.Boolean |
8 | boolean | 8 | Boolean | flase | true或false | java.lang.Character |
引用数据类型
在java中,引用类型的变量非常类似于C/C++的指针。引用类型
指向一个对象,指向对象的变量是引用变量。
对象
、数组
都是引用数据类型、所有的引用类型默认值都是null
class People{
String name;
}
public class HelloWorld{
public static void main(String[] args){
int n = 123;
People p = new People();
p.name = "张三";
System.out.println(n); //123
System.out.println(p); //People@15db972
System.out.println(n); //张三
}
}
4.java存储
程序运行时,对象是怎么进行放置安排的呢?特别是内存是怎样分配的呢?在java中,有5个不同的地方可以存储数据
- 1.
寄存器
:这是最快的存储区,它不同于其它存储区-处理器内部。寄存器的数量及其有限,所以寄存器根据需求进行分配,你不能直接控制。 - 2.
堆栈
:位于通用RAM(随机访问存储器)中,通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存,若向上移动,则释放内存。这是一种快速有效的分配存储方法,仅次于寄存器。创建程序时,java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。虽然java数据存储于 堆栈中-特别是对象引用,但是java对象并不存储于其中 - 3.
堆
:一种通用的内存池(也位于RAM区),用于存放所有的java对象,堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活了多长时间。因此,在堆里分配存储有很大的灵活性。当需要一个对象时,只需用new写一行简单的代码,当执行这行代码时,会自动在堆里进行存储分配。当然为这种灵活性必须付出相应的代价:用堆进行储分配和清理可能比用堆栈存储分配需要更多的时间 - 4.
常量存储
: 常量值通常直接存放在程序代码内部 - 5.
非RAM存储
:如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。其中两个基本的例子是流对象和持久化对象。在流对象中, 对象转化成字节流,通常被发送给另一台机器。在持久化对象中,对象被存放于磁盘上。
5.java操作符
当表达式复杂时,建议使用括号()
优先级 | 运算符 | 结合性 | |
---|
1 | ()、[]、{} | 从左向右 | |
2 | !、+、-、~、++、– | 从右向左 | |
3 | *、/、% | 从左向右 | |
4 | +、- | 从左向右 | |
5 | «、»、»> | 从左向右 | |
6 | <、<=、>、>=、instanceof | 从左向右 | |
7 | ==、!= | 从左向右 | |
8 | & | 从左向右 | |
9 | ^ | 从左向右 | |
10 | | | 从左向右 | |
11 | && | 从左向右 | |
12 | || | 从左向右 | |
13 | ?: | 从右向左 | |
14 | =、+=、-=、*=、/=、&=、 | =、^=、~=、«=、»=、»>= | 从右向左 |