JavaSE之数据类型变量与运算符

目录

1.变量和类型

1.1整型变量

1.2长整型变量

1.3双精度浮点型变量

1.4单精度浮点型变量

1.5字符类型变量

1.6 字节类型变量

1.7 短整型变量

1.8 布尔类型变量

1.9 字符串类型变量

2.变量

2.1变量的作用域

2.2变量的命名规则

2.3常量

2.4类型转换

2.5运算过程中的数值转换

3.运算符

3.1关系运算符


1.变量和类型

变量指的是程序运行时可变的量,相当于开辟一块内存空间来保存一些数据。
类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性

其中数据类型分为基本数据类型和引用类型.

基本数据类型包括:整数:byte(1字节=8bit表示范围是-128~127)

short(2字节表示范围是 -32768 -> +32767) 

int(4字节表示范围是-2^31 -> 2^31-1)

long(8字节表示范围是-2^63->2^63-1)

浮点数:float( double

字符:char

布尔:boolean 

1.1整型变量

int 变量名 = 初始值;

public class testDaTa{
       public static void main(String[] args){
       int a=10;
       System.out.println(a);
       //查看int的最大值和最小值
       System.out.println(Integer.MAX_VALUE);  // int 的最大值 
       System.out.println(Integer.MIN_VALUE);  // int 的最小值
     }
}

1.2长整型变量

long 变量名 = 初始值;

public class testDaTa{
       public static void main(String[] args){
       long num = 10L; // 定义一个长整型变量, 初始值写作 10l 也可以(小写的 L, 不是数字1). 
       System.out.println(num) ;
       //查看java中long类型数据范围   
       System.out.println(Long.MAX_VALUE);//最大值
       System.out.println(Long.MIN_VALUE)//最小值
    }
}

1.3双精度浮点型变量

public class testDaTa{
       public static void main(String[] args){
       double a = 1.0;
       double b = 2.0;
       System.out.println(a / b);
       // 执行结果0.5
   }
}

1.4单精度浮点型变量

float 变量名 = 初始值;

public class testDaTa{
       public static void main(String[] args){
       float num = 1.0f;    // 写作 1.0F 也可以
       System.out.println(num);
    }
}

1.5字符类型变量

char 变量名 = 初始值;

char ch = 'A';

1.6 字节类型变量

byte 变量名 = 初始值;

public class testDaTa{
       public static void main(String[] args){
       byte value = 0; 
       System.out.println(value);
    }
}

1.7 短整型变量

short 变量名 = 初始值;

public class testDaTa{
       public static void main(String[] args){
       short value = 0; 
       System.out.println(value); 
  }
}

1.8 布尔类型变量

boolean 变量名 = 初始值;

public class testDaTa{
       public static void main(String[] args){
       boolean value = true; 
       System.out.println(value);
   }
}

注意:

1. boolean 类型的变量只有两种取值, true 表示真, false 表示假.

2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.

3. boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定.

1.9 字符串类型变量

String 变量名 = "初始值";

public class testDaTa{
       public static void main(String[] args){
       String name = "zhanghang"; 
       System.out.println(name);
   }
} 

除此之外,java里面字符串还有拼接功能:

public class TestDemo {
    public static void main(String[] args) {
        String a="hello";
        String b="bite";
        String c=a+b;
        System.out.println(c);
        String m="result = "+ 10 + 20;//字符串和数字的拼接还是字符串
        System.out.println(m);
        String n=10 + 20 +" is a result";//因为数字在字符串之前,所以先计算数据,再拼接字符串
        System.out.println(n);
        int x = 10;
        int y = 20;
        System.out.println("x = " + x + ",y = " + y);
    }
}
         //运行结果
         hellobite
         result = 1020
         30 is a result
         x = 10,y = 20
 

除此之外,还有其他的转义字符:

 转义字符解释
\n换行
\t水平制表符
\'单引号
\''双引号
\\反斜杠

2.变量

2.1变量的作用域

也就是该变量能生效的范围, 一般是变量定义所在的代码块(大括号内部)

class Test {  
public static void main(String[] args) {  
{  
     int x = 10;  
     System.out.println(x); // 编译通过; 
  }  
     System.out.println(x); // 编译失败, 找不到变量 x. 
  } 
} 

2.2变量的命名规则

硬性指标:

1. 一个变量名只能包含数字, 字母, 下划线

2. 数字不能开头.

3. 变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量.注意: 虽然语法上也允许使用中文/美元符($)命名变量, 但是 强烈 不推荐这样做.

软性指标:

1. 变量命名要具有描述性, 见名知意.

2. 变量名不宜使用拼音(但是不绝对).

3. 变量名的词性推荐使用名词.

4. 变量命名推荐 小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大写.

小驼峰命名示例:     int maxValue = 100;

                               String studentName = "张三";

2.3常量

常量指的是运行时类型不能发生改变

还有就是java中可以用final来定义常量

final int a = 10; 
a = 20; // 编译出错. 提示 无法为最终变量a分配值

常量不能在程序运行过程中发生修改.

2.4类型转换

Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验

int a = 10; 
long b = 20; 
a = b; // 编译出错, 提示可能会损失精度.
 b = a; // 编译通过.  
int a = 10; 
double b = 1.0; 
a = b; // 编译出错, 提示可能会损失精度.
b = a; // 编译通过.

long 表示的范围更大, 可以将 int 赋值给 long, 但是不能将 long 赋值给 int.

double 表示的范围更大, 可以将 int 赋值给 double, 但是不能将 double 赋值给 int.

结论: 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行.

int和boolean相互赋值

int a = 10;
boolean b = true; 
b = a; // 编译出错, 提示不兼容的类型 
a = b; // 编译出错, 提示不兼容的类型 

Int和boolean没有关系,不能互相赋值

强制类型转换

int a = 0;
double b = 10.5; 
a = (int)b;  
int a = 10; 
boolean b = false; 
b = (boolean)a; // 编译出错, 提示不兼容的类型

结论: 使用 (类型) 的方式可以将 double 类型强制转成 int.

但是

1. 强制类型转换可能会导致精度丢失. 如刚才的例子中, 赋值之后, 10.5 就变成 10 了, 小数点后面的部分被忽略.

2. 强制类型转换不是一定能成功, 互不相干的类型之间无法强转.

类型转换小结

1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型.

2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失.

3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查

2.5运算过程中的数值转换

int a=10;
long b=30;
int c=a+b;//编译报错,long转化为int会丢失精度
long d=a+b;//编译通过

结论:当有int和long混合运算的时候,Int会提升成long,得到的结果仍然是long类型,需要用long来接收,如果需要int来接收,就必须进行强制类型转换。

byte a=10;
byte b=20;
byte c=a+b;
System.out.println(c);
//出现编译错误,虽然三个都是byte类型,但是计算a+b时,会提升成int类型,所以此时计算的结果也是int类型,再赋值给byte,就会报错
//正确写法
byte a=10;
byte b=20;
byte c=(byte)a+b;
System.out.println(c);

2.6 int 和 String 之间的相互转换

int转化为String

int num = 10; 
// 方法1 
String str1 = num + ""; 
// 方法2
 String str2 = String.valueOf(num); 

String转化为int

String str = "100";  
int num = Integer.parseInt(str);

3.运算符

3.1关系运算符

==    !=   <   >   <=   >=

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

其结果如下:

false
true
true
false
true
false

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值