栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java变量与数据类型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java变量与数据类型

目录

1整型类型变量

1.1基础语法格式

1.2实例代码

1.3注意事项

 2 长整型变量

2.1基础语法格式

2.2 实例代码

2.3 注意事项

 3 双精度浮点型变量

3.1基础语法格式

3.2实例代码

 3.3 注意事项

4 单精度浮点型变量

4.1基础语法格式

4.2实例代码

 4.3注意事项

5 字符类型变量

5.1基础语法形式

5.2实例代码

5.3注意事项

6 字节类型变量

6.1基础语法格式

6.2 实例代码

 6.3 注意事项

7 短整型变量

7.1基础语法格式

7.2实例代码

7.3注意事项

8 布尔类型变量

8.1 基础语法格式

8.2 实例代码

8.3 注意事项

9 字符串类型变量

9.1基础语法格式

9.2 实例代码

 9.3 注意事项

10 变量的作用域

11 变量的命名规范

12 常量

12.1字面值常量

12.2final修饰的常量

13数据类型转换

13.1 int和double,long之间的装换

13.2int和boolean之间的转换

13.3int和byte之间的转换

13.4强制类型转换

13.5类型转换小结

14 数值提升

14.1 int和long混合运算

14.2byte和byte的运算

14.3类型提升小结


1 整型类型变量

1.1 基础语法格式

int +变量名=初始值;

1.2 实例代码
 public static void main(String[] args) {
        int a=10;
    }

1.3 注意事项

java中int类型的变量占4个字节大小,有操作系统无关。

int类型的变量只能赋值整型的数据,不能赋值浮点型的数据。

int类型的范围是-2^32~2^32-1。若赋值超过这个范围就会报错

int类型的范围代码演示

 public static void main(String[] args) {
        int a=10;
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
    }

 2 长整型变量

2.1 基础语法格式

long+变量名=初始值 

2.2 实例代码
 public static void main(String[] args) {
        long a=10000L;
        
    }

2.3 注意事项

初始时使用数字加上L(l)的方式,一般都使用L,因为l在视觉上容易于1混淆

初始时可以使用整型直接赋值的,但是数字较大的时候就会出现类型不匹配的错误。

Java 中 long 类型占 8 个字节. 表示的数据范围 -2^63 -> 2^63-1

long范围代码演示

 public static void main(String[] args) {
        long a=10000;
        System.out.println(Long.MAX_VALUE);//最大值
        System.out.println(Long.MIN_VALUE);//最小值

    }

 3 双精度浮点型变量

3.1 基础语法格式

double+变量名=初始值

3.2 实例代码
public static void main(String[] args) {
        double d=10.7;
    }

 3.3 注意事项

Java中double类型的数据存在一定的进度误差

例如

 public static void main(String[] args) {

        double d1=1.1;
        System.out.println(d1*d1);
    }

 这里的运行结果出现了精度的误差。

double 占有8个字节

4 单精度浮点型变量

4.1 基础语法格式

float+变量名=初始值;

4.2 实例代码
public static void main(String[] args) {
        float f1=10.3f;
        System.out.println(f1);
    }

 4.3 注意事项

初始化时要在数据的后面加上F或者f,不能直接使用小数进行赋值。

例如

 这样书写就是错误的,因为,float占4个字节。f2是float类型的变量,10.3是double类型的变量,

double类型的变量占8个字节,所以赋值时会出现类型不匹配的错误

5 字符类型变量

5.1 基础语法形式

char+变量名=初始值;

5.2 实例代码
 public static void main(String[] args) {
        char ch ='a';
        System.out.println(ch);
    }

5.3 注意事项

Java中用‘’+一个字符的形式表示字符

Java中使用 Unicode 表示字符,因此Java中char占有两个字节,表示的范围更大,包括中文。

6 字节类型变量

6.1 基础语法格式

byte+变量名=初始值;

6.2 实例代码
 public static void main(String[] args) {
        byte b=10;
        System.out.println(b);
    }

 6.3 注意事项

字节类型表示的也是整数,只占有一个字节。

字节类型和字符类型互不相干。

7 短整型变量

7.1 基础语法格式

short+变量名=初始值;

7.2 实例代码
 public static void main(String[] args) {
        short s=10;
        System.out.println(s);
    }

7.3 注意事项 1. short 占用 2 个字节 , 表示的数据范围是 - 32768 - > +32767 2 这个数据类型表示的范围比较小,一般不推荐使用。、

8 布尔类型变量

8.1 基础语法格式

boolean+变量名=初始值;

8.2 实例代码
public static void main(String[] args) {
        boolean bl=true;
        System.out.println(bl);
    }

8.3 注意事项

boolean只有两种取值ture表示真和false表示假。

Java中boolean于int没有任何关系,不存在0表示假,非0表示真。

boolean所占字节的大小没有明确规定。

9 字符串类型变量

9.1 基础语法格式

String+变量名=初始值;

9.2 实例代码
  public static void main(String[] args) {
        String str="hello world";
        System.out.println(str);
    }

 9.3 注意事项 1. Java 使用 双引号 + 若干字符 的方式表示字符串字面值 . 2. 和上面的类型不同 , String 不是基本类型 , 而是 引用类型 ( 后面重点解释 ). 3. 字符串中的一些特定的不太方便直接表示的字符需要进行转义 . 转义字符示例
// 创建一个字符串 My name is "张三" 
String name = "My name is "张三"";

Java中的常见转义字符

 字符串的+拼接符

例如:

public static void main(String[] args) {
        String str1="Hello ";
        String str2="World";
        System.out.println(str1+str2);//拼接成新的字符串“Hello World”;
    }

 

 字符串也可以和整数进行拼接

 字符串和整数进行拼接时就是:当整数遇到字符串就会作为字符串拼接在一起。

例如:

public static void main(String[] args) {
        String str1="Hello ";
        String str2="World";
        int a=10;
        int b=20;
        System.out.println(str1+str2+a+b);//拼接成新的字符串“Hello World1020”;
    }

10 变量的作用域 也就是该变量能生效的范围 , 一般是变量定义所在的代码块 ( 大括号 ) 例如:
public static void main(String[] args) { 
 { 
 int x = 10; 
 System.out.println(x); // 编译通过; 
 } 
 System.out.println(x);//  编译失败,找不到x
}

11 变量的命名规范 硬性指标 : 1. 一个变量名只能包含数字 , 字母 , 下划线 2. 数字不能开头 . 3. 变量名是大小写敏感的 . 即 num 和 Num 是两个不同的变量 . 注意 : 虽然语法上也允许使用中文 / 美元符 ($) 命名变量 , 但是 强烈 不推荐这样做 . 软性指标 : 1. 变量命名要具有描述性 , 见名知意 . 2. 变量名不宜使用拼音 ( 但是不绝对 ). 3. 变量名的词性推荐使用名词 . 4. 变量命名推荐 小驼峰命名法 , 当一个变量名由多个单词构成的时候 , 除了第一个单词之外 , 其他单词首字母都大写。 小驼峰命名法示例
int maxValue = 100; 
String studentName ="张三";

12 常量

上面讨论的是不同类型的变量,同样每种类型都对应这它们的常量

常量是指在程序运行的过程中不能改变的值

常量有以下两种:

12.1 字面值常量
10 // int 字面值常量 ( 十进制 ) 010 // int 字面值常量 ( 八进制 ) 由数字 0 开头 . 010 也就是十进制的 8 0x10 // int 字面值常量 ( 十六进制 ) 由数字 0x 开头 . 0x10 也就是十进制的 16 10L // long 字面值常量 . 也可以写作 10l ( 小写的 L) 1.0 // double 字面值常量 . 也可以写作 1.0d 或者 1.0D 1.5e2 // double 字面值常量 . 科学计数法表示 . 相当于 1.5 * 10^2 1.0f // float 字面值常量 , 也可以写作 1.0F true // boolen 字面值常量 , 同样的还有 false 'a' // char 字面值常量 , 单引号中只能有一个字符 "abc" // String 字面值常量 , 双引号中可以有多个字符 .

12.2 final修饰的常量
final int a = 10; 
a = 20; //编译出错,a此时是常量,程序运行过程中不能被修改

13 数据类型转换

java是强类型的语言,对不同类型的装换检查比较严格。

13.1 int和double,long之间的装换
public class TestDom {
    public static void main(String[] args) {
        int a=10;
        double b=10.0;
        long c=20;
        a=b;//编译失败,浮点型赋值给整型会导致精度丢失。
        b=a;//编译通过
        a=c;//编译失败,长整型赋值给整型会导致精度丢失。
        c=a;//编译通过
        
    }

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

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

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

13.2 int和boolean之间的转换
  public static void main(String[] args) {
        int a = 10;
        boolean b = true;
        b = a; // 编译出错, 提示不兼容的类型
        a = b; // 编译出错, 提示不兼容的类型
    }
结论 : int 和 boolean 是毫不相干的两种类型 , 不能相互赋值 .

13.3 int和byte之间的转换
 public static void main(String[] args) {
        byte a=100;//编译通过
        byte b=256;//编译失败,从int转换为byte可能会导致数据丢失
    }

byte 表示的数据范围是 -128 -> +127, 256 已经超过范围, 而 100 还在范围之内

结论: 使用字面值常量赋值的时候, Java 会自动进行一些检查校验, 判定赋值是否合理

13.4 强制类型转换
 public static void main(String[] args) {
        int a = 0;
        double b = 10.5;
        a = (int)b;//编译通过
    }
结论 : 使用 ( 类型 ) 的方式可以将 double 类型强制转成 int. 但是 1. 强制类型转换可能会导致精度丢失 . 如刚才的例子中 , 赋值之后 , 10.5 就变成 10 了 , 小数点后面的部分被忽略 . 2. 强制类型转换不是一定能成功 , 互不相干的类型之间无法强转,例如:int和boolean

13.5 类型转换小结 1. 不同数字类型的变量之间赋值 , 表示范围更小的类型能隐式转换成范围较大的类型 . 2. 如果需要把范围大的类型赋值给范围小的 , 需要强制类型转换 , 但是 可能精度丢失 . 3. 将一个字面值常量进行赋值的时候 , Java 会自动针对数字范围进行检查 .

14 数值提升

14.1 int和long混合运算
   public static void main(String[] args) {
        int a=10;
        long b=20;
        a=a+b;//编译报错,long到int可能导致数据丢失
        b=a+b;//编译通过
    }
结论 : 当 int 和 long 混合运算的时候 , int 会提升成 long , 得到的结果仍然是 long 类型 , 需要使用 long 类型的变量来 接收结果 . 如果非要用 int 来接收结果 , 就需要使用强制类型转换

14.2 byte和byte的运算
 public static void main(String[] args) {
        byte a=10;
        byte b=20;
        byte c=a+b;//编译出错,从int到byte可能导致数据丢失
    }
结论 : byte 和 byte 都是相同类型 , 但是出现编译报错 . 原因是 , 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a 和 b 都 提升成 int, 再进行计算 , 得到的结果也是 int, 这是赋给 c, 就会出现上述错误 . 由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据 . 为了硬件上实现方便 , 诸如 byte 和 short 这种低于 4 个字节的类型 , 会先提升成 int, 再参与计算 .

14.3 类型提升小结 1. 不同类型的数据混合运算 , 范围小的会提升成范围大的 . 2. 对于 short, byte 这种比 4 个字节小的类型 , 会先提升成 4 个字节的 int , 再运算

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322045.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号