《Java编程逻辑》第1章 编程基础

基本数据类型与变量

数据类型是用来声明变量的。变量实际上是一个标识符,其指向了内存中的一块区域。声明变量就相当于在内存中分配了一块区域,对变量赋值就相当于给这个变量区域放入相应的值。

Java的基本数据类型如下。

数据类型 大小(字节数)
byte 1
short 2
int 4
long 8
char 2
float 4
double 8
boolean

Java中的char占2个字节,而C/C++中的char只占1个字节。

对于整型常量,其默认类型为int。因此,如果整型常量的字面值超过了int的表示范围,需要在其后加上大写L或小写l。即使是将一个整型常量赋值给long也需要如此。

对于浮点型变量,其默认类型的double。因此将小数常量赋值给float时,需要在其后加上大写F或小写f。

数组类型

Java中的数据定义方式有3中类型。

int[] arr;
int[] arr = {1,2,3};
int[] arr = new int[3];

不同于C/C++,Java中的数组的长度可以动态确定,但在数组声明后其大小便不可以修改。

int[] arr = new int[length]; // length是一个在运行时确定的变量

但是,Java中的数组不可以在给定初始值的同时给定长度。

int[] arr = new int[3]{
    
    1,2,3}; 

上述情况不被允许。

数组类型变量和基本类型变量在内存分配上有较大的不同。基本类型变量在内存中只有一块对应的内存空间。但是,数据类型变量有两块对应的内存空间,一块是数据名指向的内存空间,用于存放数组保存的内容的起始地址;另一块则用于保存数据的内容。

在Java中,数组类型变量可以相互赋值。

int[] A = {
    
    1,2,3};
int[] B = {
    
    1,2};
A = B; // 在Java中被允许

如果从观点“变量名指向内存中保存的一块地址”来看上述语句,则在A=B;执行后,变量A指向的内存空间保存的内容不再是数组{1,2,3}的起始地址,而变成了变量B指向的内存空间的内容,即变量A,B同时指向了数组{1,2}的起始地址。而数组{1,2,3}的内存空间由于不再被引用而被进行垃圾回收。

基本运算

Java中的基本运算有以下类型,运算的意义和C/C++完全相同。

+ - * / % ++ -- 
> >= < <= == !=
& | ! ^
&& ||
? :

条件语句

Java中的条件语句有ifif-elseif-else if-elseswitch类型,语句的逻辑和C/C++基本相同。唯一不同的是,在Java中switch的变量除了整型变量外,还支持枚举类型和String类型。

循环语句

Java的循环有whiledo-whileforfor each4种类型。其中,for-each的语法如下。

for (type element : aSet) {
    ...
}

aSet是集合或数组类型变量,type是其中保存的元素类型。使用for-each语法可以不需要使用索引变量,每次循环element都会更新为aSet中的下一个element

循环的控制有两个关键字breakcontinue

函数的用法

在Java中,任何函数都需要放在一个中,一个类包含多个函数。此时,类中的函数被称为方法。方法的定义方式如下。

修饰符 返回值类型 函数名字(参数类型 参数名字, ...) {
    ...
   return ...;
}

每一个类都有且只有一个main函数,Java程序执行时会寻找这个main函数开始执行。

Java中的函数支持可变长度的参数。

public static int max(int min, int ... a) {
    ...
}

变量a是一个数组类型变量,其存放了可变的参数部分,即a的长度是不确定的,但会在函数调用时确定下来。

函数支持重载,但要求参数列表不一致。在调用重载函数时,Java编译器首先会选择和调用参数完全匹配的函数,如果没有,则编译器会进行隐式类型转换来确定最合适的重载函数。

猜你喜欢

转载自blog.csdn.net/NelsonCheung/article/details/109818129
今日推荐