Java学习日记5——数据类型、变量、常量、运算符、数组

Java学习日记5——数据类型、变量、常量、运算符、数组

数据类型
 数据类型决定了数据的存储方式和运算方式的不同,Java中的数据类型分为两大类,分别是基本数据类型和引用数据类型,具体详见下图:
数据类型

基本类型:变量存在栈里面(指向这里),在引用时直接引用到值

double x = 0.3;
double y = x;//y = 0.3

引用类型:变量存在堆里面(指向那里),引用时只是指向对象

person p = new person();
person p2 = p;//p2和p都是指向同一个对象

标识符
 名字就是标识符:任何一个变量、常量、方法、对象、类都需要名字。标识符需要满足一定的规定,包括:
 1.可以由字母、数字、下划线(半角符)、美元符号组合而成;
 2.必须以字母、下划线或者美元符号开头,不能用数字开头。
注意:Java是大小写敏感的语言按照惯例,通常类名首字母大写;其余包名、方法名、变量名都是小写,少用下划线。变量常量都建议是随写随用,不用像C一样全部放最前面,可读性差。

运算符

分类 符号 用法
算数运算符 +,-,*,/ 加减乘除法
算数运算符 % 取余数
算数运算符 ++ 自加1
算数运算符 - - 自减1
关系运算符 >,<,>=,<= 大于、小于、大于等于、小于等于
关系运算符 ==,!= 判断等于和不等于,返回布尔类型值
逻辑运算符 !,&,|,^,&&,‖ 逻辑非、与、或、异或、短路与、短路或
位运算符 &,|,^,~ 按位与、或、异或、求反
位运算符 >>,<<,>>> 左移、右移、无符号右移。例如:a<<b;将a左移b位,低位补零
赋值运算 =,+=,-=,*=,/= 赋值运算,a+=b表示a=a+b,其余类似
字符串连接运算符 + 如果连接的两端并非都是字符串,会自动转换为字符串
三目运算符 b = a>0?a:-a,表示的是如果a>0,就取a,否则取-a
代码注释符号 // 用于单行注释
代码注释符号 /*…/ 指定位置注释,第二个斜线前应该有*号
代码注释符号 /**…*/ 文档注释,在生成文档时特定的格式显示

1.++的使用问题:请问b等于多少呢?

int a = 2;
int b = a++ + ++a ;

 答:实际运行结果是6,但是不知其原理。
2.bool类型:请问布尔的true和false是什么样存储识别的呢?
 答:其实false是以整数0的形式识别的,true是整数。
3.关于位移运算符的强制转换:b是什么类型的数据?

short a = 2;
b = a<<2;

 答:b是int数据类型。位移运算符,会将低于int的数据类型首先转为int,才进行位移操作,数据类型的排序为:byte、short、char、int、long。
4.关于运算符的强制转换:b和d是什么类型?

short a = 2;
long c = 3;
long b = a+c;
int d = (int)c

 答:b为long运算符,在进行运算过程中,会将低级的数据类型转换为高级的数据类型再进行运算。其实d是固定的int类型,但是转换过程中需要注意的是,将long的c转换为int的d,需要加上(int)的这种写法进行强制类型转换,如果需要转换成其他类型,也适用,例如转为float,则为(float)。

数组
 1.数组的声明:
 整数数组:int []a或者a[]
 浮点数组:double []b 或者b[]
需要注意的是,如果方括号在前,后跟多个变量时,则表示多个数组;如果方括号在后,后面再跟变量,则只有一个数组,例如:

int []a,b,c;//表示abc三个数组
int a[],b,c;//表示a数组,bc整数

Java中的数组声明是引用类型的数据,所以他是在堆空间中的,所以这里的a只表示指向,所以不能像C语言一样直接写int a[5];而是用下面的方式进行空间分配。

扫描二维码关注公众号,回复: 11510440 查看本文章
int a[5];//非法
int []a = new int[5];//java用语

数组空间一经分配,那么数组中的每个元素也被按照成员变量同样的方式被隐式初始化,数值类型会被初始化为0,引用类型会被初始化为null。也就是说,上面的代码片中的a的五个数据都被初始化为0。
 2.数组的引用:
与C语言相似,都是利用 [下标] 的方式进行调用,下标是从0开始的,上面声明的数组a的下标就是0~4。另外在Java中为数组增加了length方法获取数组的长度。

int []a = new int[5];//java用语
int b = a.length();//或者数组长度

注意:这里的长度是指数组有多少元素,所以这里的b=5,而不是等于4。
 3.Java中遍历数组的方式:只读式

int []test = new int[5];//java用语
for(int x :test)
{
	system.out.println(x);//这里的x将遍历整个Test数组

 如果需要对数组进行读写,那么需要利用正常的for循环进行。因为与C语言一样,此处不做赘述,如需了解,可以私聊。
 4.数组的指定拷贝:
使用System.arraycopy()方法进行,这个方法共有五个参数,使用规范如下:

System.arraycopy(原数组, 原数组起始位置, 目的数组, 目的数组起始位置, 拷贝的数据长度);

如果你对Java感兴趣,可以参考前面几期日记,附上链接:

Java编程基础认知:Java学习日记1——基础认知
Java面向对象编程认识:Java学习日记2——面向对象编程认知
Java程序的基本结构认识:Java学习日记3——程序类型与构成认知
Java的输入输出方法总结:Java学习日记4——Java输入输出方法总结

猜你喜欢

转载自blog.csdn.net/weixin_44005494/article/details/107630122