Java学习笔记02

Java学习——Java语法基础1(数据类型与运算符)


一、变量

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。
变量和常量是构成表达式的重要部分,变量所代表的内部是可以被修改的。

变量分类

按所属的数据类型划分:

  • 基本数据类型变量
  • 引用数据类型变量

按被声明的位置划分:

  • 局部变量:方法或语句块内部定义的变量
  • 成员变量:方法外部、类的内部定义的变量
数据类型

由于变量记录的数据内容大小不同, 导致所需的存储单元大小不同,在 Java 语言中使用数据类型的概念加以描述。

8种基本数据类型
在这里插入图片描述
8种基本数据类型详情
在这里插入图片描述

变量的声明格式为: 数据类型 变量名 [=初始值];

变量名要遵守用标识符命名规范,却在相关的作用域中不能有重复的变量名。变量作用域是变量的使用范围,在此范围内变量可以使用,超过作用域,变量内容则被释放,根据作用域不同分为:成员变量和局部变量
例:

public class HelloWorld {
// 声明int型成员变量
int y; 
public static void main(String[] args) {
// 声明int型局部变量
int x = 10; 
// 声明float型变量并赋值
float f = 4.5f; 
//声明long型变量并赋值
long a = 126494532991L;
// x = 10;
System.out.println("x = " + x);
System.out.println("f = " + f);
if (f < 10) {
// 声明型局部变量
int m = 5; 
}
System.out.println(x); 
}
}

二、常量

常量事实上是那些内容不能被修改的变量,常量与变量类似也需要初始化,即在声明常量的同时要赋予一个初始值。常量一旦初始化就不可以被修改。

它的声明格式为:final 数据类型 变量名 = 初始值;

例:

public class HelloWorld {
// 静态常量,替代保留字const
public static final double PI = 3.14; 
// 声明成员常量
final int y = 10; 
public static void main(String[] args) {
// 声明局部常量
final double x = 3.3; 
}
}

常量有三种类型:静态常量、成员常量和局部常量。第二排代码 “PI”处 的是声明静态常量,使用在final 之前使用public static修饰,用来替代保留字const。public static修饰的常量作用域是全局的,不需要创建对象就可以访问它,在类外部访问形式:HelloWorld. PI,这种常量在编程中使用很多。


三、数据转换

自动类型转换

自动类型转换就是需要类型之间转换是自动的,不需要采取其他手段,总的原则是小范围数据类型可以自动转换为大范围数据类型,列类型转换顺序如图所示,从左到右是自动。
在这里插入图片描述

自动类型转换不仅发生在赋值过程中,在进行数学计算时也会发生自动类型转换,在运算中往往是先将数据类型转换为同一类型,然后再进行计算。计算规则如表所示。
在这里插入图片描述
例:

// 声明整数变量
byte bNum = 16;
short sNum = 16;
int iNum = 16;
long lNum = 16L;
// byte类型转换为int类型intNum = byteNum;
// 声明char变量
char cNum = '陈';
// char类型转换为int类型
iNum = cNum;
// 声明浮点变量
// long类型转换为float类型
float fNum = lNum;
// float类型转换为double类型
double dNum = fNum;
//表达式计算后类型是double
double result = fNum * iNum + dNum / sNum; 

强制类型转换

容量大的类型转换成容量小的数据类型时,要加上强制转换符。
在数值类型转换过程中,除了需要自动类型转换外,有时还需要强制类型转换,强制类型转换是在变量或常量之前加上“(目标类型)”实现。
有可能造成精度降低或数据溢出,使用时要小心。
容量小的类型强制转换成容量大的数据类型,语法上是允许的,虽然看似没有必要,但有时为了提升精度需要转换。

例:

//int型变量
int i = 10;
float c1 = i / 3; 
System.out.println(c1); 
//把int变量i强制转换为float
float c2 = (float)i / 3; 
System.out.println("转化后为:"+c2); 

输出结果:

3.0
3.3333333

四、引用数据类型

在Java中除了8种基本数据类型外,其他数据类型全部都是引用(reference)数据类型,引用数据类型用了表示复杂数据类型,如图所示,包含:类、接口和数组声明的数据类型。

在这里插入图片描述
例:

String str1 = "Hello"; 
String str2 = str1; 
str2 = "World"; 

当程序执行完第一行时,字符串“Hello”对象被创建,保持到内存地址0x12345678中,str1是引用类型变量,它保存的是内存地址0x12345678,这个地址指向“Hello”对象。

当程序执行完第二行时,str1变量内容(0x12345678)被赋值给str2是引用类型变量,这样一来str1和str2保存了相同的内存地址,都指向“Hello”对象。如图所示,此时str1和str2本质上是引用一个对象,通过任何一个引用都可以修改对象本身。

在这里插入图片描述

当程序执行完第三行时,字符串“World”对象被创建,保持到内存地址0x23455678中,地址保存到str2变量中,此时,str1和str2不再指向相同内存地址,如图所示。

在这里插入图片描述

五、Java 运算符——算术运算符

Java语言中的运算符(也称操作符)在风格和功能上都与C 和C++极为相似。Java语言中一些主要的运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符和其他运算符。

算数运算符

Java中的算术运算符主要用来组织数值类型数据的算术运算,按照参加运算的操作数的不同可以分为一元运算符和二元运算符。

一元运算符:

-a是对a取反运算。而++ 或 – 放在变量位置不同效果不同,a++或a–是在表达式运算完后,再给a加一或减一。而++a或–a是先给a加一或减一,然后再进行表达式运算。
在这里插入图片描述
例:

int a = 12;
System.out.println(-a); 
int b = a++; 	//先取值再运算
System.out.println(b);
b = ++a; 	   	//先运算再取值
System.out.println(b);

输出结果如下:

-12
12
14

二元算术运算:
在这里插入图片描述


总结

我开始接触Java基础的变量和常量,其基本运算和几个基础数据类型的转换等。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值