欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java中的一些变量、数据类型和运算符_java基础语法

程序员文章站 2022-06-28 18:16:37
这是我这个小白学习java的一些个人记录,不定期更新,希望能解决一些和我一样学习java的同学们,今天就是第一条啦!这里介绍了变量的数据类型,命名规则和一些常用的运算符......

这是我这个小白学习java的一些个人记录,不定期更新,希望能解决一些和我一样学习java的同学们,今天就是第一条啦!

java中变量与变量命名的规则

与其他大部分编程语言一样,在java中变量需要先定义再使用。创建变量就是在内存上申请了一定的空间来存放数据。

那么怎么定义变量呢?

比如说int a = 5; 这个变量有以下几部分内容

  1. 变量允许存储的数据类型(int型)
  2. 表示变量的符号(a)
  3. 变量中存储的值(5)(也可以不用进行初始化)
    对于使用变量,我们来看一个例子:
int a = 7;
System.out.println(a);//这里使用了变量a,打印结果为7;

关于变量的定义和使用比较简单,这里就不再赘述。

变量的命名规则

关于变量的规则有硬性指标和软性指标,顾名思义,硬性指标就是java语法严格规范的,必须要遵守的。
硬性指标:

  1. 一个变量名只能包含数字, 字母, 下划线
  2. 数字不能开头.
  3. 变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量.
    注意: 虽然语法上也允许使用中文/美元符($)命名变量, 但是 强烈 不推荐这样做.

软性指标:

  1. 变量命名要具有描述性, 见名知意.
  2. 变量名不宜使用拼音(但是不绝对).
  3. 变量名的词性推荐使用名词.
  4. 变量命名推荐 小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了 第一个单词之外, 其他单词首字母都大写.
int maxValue = 50;
String studentName = "王小帅"

java的基本数据类型

java中的基本数据类型有“四类八种”
四类:整数型、浮点数型、字符型和布尔型。
八种:byte 、short、 int、 long属于整数型;
double 、float 属于浮点数型;
char 属于字符型;
boolean 属于布尔型;

1.byte:字节类型变量
表示的是整数,只占一个字节,表示范围(-128~+127).

byte value = 0;
System.out.println(value);

2.short:短整型变量
表示是整数,占两个字节,表示范围(-32768~32767).

short value = 0;
System.out.println(value);

3.int:整型变量
表示的是整数,占四个字节,表示范围(-2^31~2^31-1).
4.long:长整型变量
表示整数,占8个字节,表示范围(-2^63~2^63-1).
5.double:双精度浮点型变量
表示浮点数,占8个字节,但不能单纯地用2^n来表示数据范围。
需要注意的是,double类型是存在一定的精度误差的。我们来看一个例子:

		double a = 1.1;
        double b = 1.1;
        if ( a * b == 1.21){
            System.out.println("相等");
        }else{
            System.out.println("不相等");
        }

运行结果:

不相等

这里呢,就出现了精度误差,在java中,不能用==来判断两个浮点数是否相等,解决办法就是我们可以设置一个精度范围,比如-0.0001~0.0001,只要在这个精度范围内,我们就认为两个数是相等的的。

		double a = 1.1;
        double b = 1.1;
        System.out.println(a * b);
        if (a * b - 1.21 < 0.0001 && a * b - 1.21 > -0.0001 ){
            System.out.println("相等");
        }else{
            System.out.println("不相等");
        }

运行结果:

1.2100000000000002
相等

6.float:单精度浮点型变量
占4个字节,表示的精度比double小,一般不用float。
7.char:字符型变量
占两个字节,一个字符占两个字节,也可以表示中文。

char ch = '啊';

8.boolean:布尔类型变量
boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定.

boolean bo = true;
  1. boolean 类型的变量只有两种取值, true 表示真, false 表示假.
  2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.

总结:

byte short int long分别占 1 2 4 8 个字节,double float 分别占 8 4 个字节,char 占 2个字节 , boolean 没有规定.

9.String:字符串类型变量

String name = "王小帅";//注意是双引号

数值提升

数值提升就是当两个不同类型的变量在一起混合运算时,其中有一个变量类型会发生改变,同时得到的结果的类型也会变化。比如:

int a = 10;
long b = 20;
int c = a + b;// 编译出错
long d = a + b;//编译通过

即当int 和 long 混合运算的时候,int 会提升为 long,得到的结果也是 long 。反之,则编译错误。

byte a = 10;
byte b = 20;
byte c  = a + b;//编译报错

虽然a和 b都是byte型的,但计算时会将byte提升为int,这时结果也就是int,所以用byte来接受的话会报错。short,byte都有这样的情况。正确应该使用强制类型转换:

byte  c =  (byte) a + b;

关于运算符

1.算术运算符

+ - * / %是常用的算数运算符,用法不再赘述了。
要注意的是 0 不能作为除数。
%不仅能对int取模,也可以对double取模。
+= -= *= /= %= 是增量赋值运算符,用法也很简单,看一个例子就够了:

int a = 10;
a += 1;//等价于a = a+1;
//此时,a = 11;

其他四个跟这个一样。
++ --是自增/自减运算符,这里着重对++进行讲解:

int a = 10;
int b = a++;
//想一下,此时b和a分别是多少?,此时, b = 10 ,a = 11;
int c = 10;
int d = ++c;
//此时,c和d又等于多少呢?,此时c = 11,d  =11

注意a++ 和 ++a 是不一样的,前置++和后置++主要区别在取返回值,如果不取返回值就没有区别。++a表示自增之后的值,a++表示自增之前的值。也就是说,上面的例子中,对应的a和c本身都完成了+1的操作,用b 来接收a++,接受的是自增之前的值,用d来接收++c,接收的是自增之后的值。

关系运算符

== != < > <= >=

 int a = 10;
        int b = 20;
        System.out.println(a == b);//false
        System.out.println(a != b);//true
        System.out.println(a < b);//true
        System.out.println(a > b);//false
        System.out.println(a <= b);//true
        System.out.println(a >= b);//false

关系运算符的表达式返回值都是 boolean 类型.

逻辑运算符

&& || ! 分别表示逻辑上的与、或、非
逻辑运算符针对的是布尔类型。
短路求值
&& 和 || 遵守短路求值的规则.

System.out.println(10 > 20 && 10 / 0 == 0);             // 打印 false
System.out.println(10 < 20 || 10 / 0 == 0);             // 打印 true

计算 10 / 0 会导致程序抛出异常. 但是上面的代码却能正常运行, 说明 10 / 0 并没有真正被求值.
结论:对于&&,先假则假,对于||先真则真。

位运算符

位运算符主要有四个:
& | ~ ^ 位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列)。
**按位与&:**如果两个二进制为都是1,结果为1 ,反之为0;

		int a = 10;
        int b = 20;
        System.out.println(a & b);//结果为0

按位或|:如果两个二进制为都是0,结果为0 ,反之为1;
按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0;

按位异或^:如果两个数字的二进制位相同,则结果为0,相异结果为1;

本文地址:https://blog.csdn.net/ren__wei_/article/details/110842759

相关标签: java 数据结构