java数据类型与变量

java数据类型-- 四类八种

一、整数类型

  • 整数型 : byte 1个字节八位,二进制中1111 1111 转换为十进制的取值范255 范围在 -128 —127 
  • 短整型 : short  2个字节  +-3万2之间
  • 整型 :int 4个字节 是java已经大部分编程语言中默认的整数类型   取值范围在+-21亿之间
  • 长整型 :long 8个字节数值范围超过int的取值范围时,避免出现内存数据泄漏则可以选择long类型 

那么肯定有小伙伴肯定疑问,为什么不全部选择long类型就好了?

当然可以,在初始化类型的时候,会开辟内存空间全部变量都选择long类型的话,导致程序会占用更多的内存空间,影响程序性能。

二、浮点类型

  1. 浮点型 float  4字节 -127~128
  2. 双精度浮点类型 double  8字节 -1023~1024

三、字符类型

  1. char 

四、布尔类型

  1. boolean  取值 true fales

类型转换

  1. 自动类型转换:  把一个表示数据范围小的数值或者变量赋值给一个表示数据范围大的变量格式: 表示数据范围大的数据类型 变量名 = 表示数据范围小的值;
    public class HelloWorld{
    public static void main(String[] args){
    // 把100赋值给变量numD
    double numD = 100;
    System.out.println(numD);// 100.0
    int num = 'a';
    System.out.println(num);// 97
    }
    }

  2. 强制类型转换: 概述: 把一个表示数据范围大的数值或者变量赋值给一个表示数据范围小的变量 格式: 表示数据范围小的数据类型 变量名 = (表示数据范围小的数据类型)表示数据范围大的值;
    public class HelloWorld{
    public static void main(String[] args){
    int num = (int)3.14;
    System.out.println(num);// 3
    }
    }
    

  3. 注意事项: 数据范围大小关系: byte < short < int < long < float < double 数据范围大小关系: char < int < long < float < double 强制类型转换会发送数据丢失,故慎用 boolean类型不能发生类型转换 char,byte,short发生数学运算,会自动提升为int类型

public class HelloWorld{ 
public static void main(String[] args){ 
// 因为3和4是常量,在java中具有常量优化机制,所以编译器在编译期间就可以确定 3+4的结果为7,在byte所能表示的范围,所以能赋值成功 
byte res1 = 3+4;// byte res1 = 7; 
System.out.println(res1);// 7 总结 
byte b1 = 3; 
byte b2 = 4; 
// 因为b1和b2是变量,而变量没有优化机制,所以编译器在编译期间无法确定b1+b2的 结果是否在byte所能表示的范围, // 所以b1和b2会自动提升为int类型,那么b1+b2的结果为int类型,int类型的值赋 值给byte类型的变量,需要发生强制类型转换 // byte res2 = b1 + b2;// 编译报错 
byte res2 = (byte)(b1 + b2); 
System.out.println(res2); 
byte res3 = 3 + b2;
// 编译报错,原因同上 
System.out.println(res3); 
} }

变量命名方式

  1. 数据类型 变量名 = 值;      int num1 = 100;
  2. 数据类型 变量名; 变量名=值;int num1; num1 = 100;
  3. 数据类型 变量名1 = 值,变量名2 = 值,...; int num1 = 100,num2 = 200,num3 = 300;
public class HelloWorld{
public static void main(String[] args){
// 需求:定义所有基本类型的变量,并把该变量中的值打印输出
byte num1 = 100;
System.out.println(num1);
short num2 = 300;
System.out.println(num2);
int num3 = 1012345678;
System.out.println(num3);
long num4 = 2212345678L;
System.out.println(num4);
float numF = 3.14F;
System.out.println(numF);
double numD = 3.14;
System.out.println(numD);
char numC = 'a';
System.out.println(numC);
boolean numB = true;
System.out.println(numB);
// 定义了String类型的变量,并存储字符串数据
String str = "hello";
System.out.println(str);
}
}


变量使用的注意事项
同一作用域(一对大括号),不能有同名的变量
没有初始化的变量,是不能直接使用的
给long类型的变量赋值,记得加L\l
给float类型的变量赋值,记得加F\f

public class HelloWorld{
public static void main(String[] args){
int num = 10;
int num = 20;// 报错
System.out.println(num);
}
}
public class HelloWorld{
public static void main(String[] args){
int num;
System.out.println(num);// 报错
}
}
public class HelloWorld{
public static void main(String[] args){
long num1 = 100;// 不报错
long num2 = 2212345678;// 报错
System.out.println(num1);
System.out.println(num2);
}
}
public class HelloWorld{
public static void main(String[] args){
float num1 = 100.13;// 报错
System.out.println(num1);
}
}

当然在java中也提供了初始化变量的语法糖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值