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

基本数据类型与变量

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

Java的基本数据类型如下。

数据类型大小(字节数)
byte1
short2
int4
long8
char2
float4
double8
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编译器首先会选择和调用参数完全匹配的函数,如果没有,则编译器会进行隐式类型转换来确定最合适的重载函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值