【Java开发指南 | 第四篇】Java常量、自动类型转换、修饰符

简介: 【Java开发指南 | 第四篇】Java常量、自动类型转换、修饰符

Java常量

常量在程序运行时是不能被修改的。


在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:


final double PI = 3.1415927;



自动类型转换

整型、实型(常量)、字符型数据可以混合运算。


实现运算的过程中,Java会将不同类型的数据先转化为同一类型,然后进行运算。


转换从低级到高级,由byte,short,char—> int —> long—> float —> double


自动类型转换必须满足如下规则:


不能对boolean类型进行类型转换。


不能把对象类型转换成不相关类的对象。


在把容量大的类型转换为容量小的类型时必须使用强制类型转换。因为容量大的数据类型(长整型)可能无法完全容纳容量小的数据类型(整型)的所有取值范围,比如长整型的10000000000L超过了int的范围,因此需要显式告诉编译器你知道可能会丢失精度,并且愿意进行这种转换。



转换过程中可能导致溢出或损失精度,必须注意数据类型的范围。例如:

int i =128;   
byte b = (byte)i;
//  因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。



浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

(int)23.7 == 23;        
(int)-45.89f == -45


进行自动类型转换时,必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。

public class ice {
    public static void main(String[] args){
        char c1='a';//定义一个char类型
        int i1 = c1;//char自动类型转换为int
        System.out.println("char自动类型转换为int后的值等于"+i1);
        char c2 = 'A';//定义一个char类型
        int i2 = c2+1;//char 类型和 int 类型计算
        System.out.println("char类型和int计算后的值等于"+i2);
    }
}


下面这个例子实现了 char 与 int 间的转换:


Java修饰符

Java可以使用修饰符来修饰类中方法和属性。


访问控制修饰符 : default, public , protected, private

非访问控制修饰符 : final, abstract, static, synchronized

修饰符 含义 用途

default 默认访问级别,仅在同一包内可见 当类、方法或字段未使用其他访问修饰符时,默认为 default 访问级别

public 最高访问级别,对所有类可见 用于声明类、方法或字段可被其他类访问

protected 对同一包内的类和所有子类可见 通常用于限制字段和方法的访问范围,但同时允许子类访问

private 对本类可见 用于限制字段和方法的访问范围,仅允许同一类中的其他方法访问

final 表示不可改变 用于修饰类、方法或字段,表示其值或行为不可修改或继承

abstract 抽象类或方法,不能被实例化 用于声明抽象类或方法,必须在子类中实现具体的行为

static 静态成员,属于类而不是实例 用于声明静态字段或方法,可以直接通过类名访问,而不需要实例化

synchronized 同步方法或代码块,确保线程安全 用于声明方法或代码块,确保在多线程环境下的安全访问,同一时间只允许一个线程访问 synchronized 块内的代码


目录
相关文章
|
2月前
|
前端开发 JavaScript Java
java常用数据判空、比较和类型转换
本文介绍了Java开发中常见的数据处理技巧,包括数据判空、数据比较和类型转换。详细讲解了字符串、Integer、对象、List、Map、Set及数组的判空方法,推荐使用工具类如StringUtils、Objects等。同时,讨论了基本数据类型与引用数据类型的比较方法,以及自动类型转换和强制类型转换的规则。最后,提供了数值类型与字符串互相转换的具体示例。
105 3
|
3月前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
72 24
|
3月前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
8月前
|
存储 小程序 Java
打破传统,Java 变量与常量让你重新认识编程的魅力!
【6月更文挑战第14天】Java编程中的变量与常量赋予程序灵活性和动态性。变量如魔法盒子,其值可变,提供程序的适应性;常量则如灯塔,值恒定,确保稳定性。两者结合构建复杂程序,变量用于处理数据,常量定义规则。在项目中,规范管理变量和常量能提升代码可读性和维护性。无论是小游戏还是复杂系统,它们都是不可或缺的工具,激发编程的无限可能。
33 1
|
4月前
|
安全 Java
java BigDecimal 的赋值一个常量
在 Java 中,`BigDecimal` 是一个用于精确计算的类,特别适合处理需要高精度和小数点运算的场景。如果你需要给 `BigDecimal` 赋值一个常量,可以使用其静态方法 `valueOf` 或者直接通过字符串构造函数。 以下是几种常见的方法来给 `BigDecimal` 赋值一个常量: ### 使用 `BigDecimal.valueOf` 这是推荐的方式,因为它可以避免潜在的精度问题。 ```java import java.math.BigDecimal; public class BigDecimalExample { public static void
130 4
|
5月前
|
Java 编译器 程序员
Java自动类型转换的妙用
Java中的自动类型转换(隐式类型转换)是指编译器在无需显式指定的情况下自动将一种数据类型转换为另一种类型。这一特性简化了代码,提高了可读性,并在多态中发挥了重要作用。例如,在数学运算时,较小类型会自动转换为较大类型以避免精度损失;在面向对象编程中,子类对象可以自动转换为父类引用,增强了代码的灵活性和兼容性。此外,它还使得数组和集合的使用更加方便,整体上让编程更加优雅和高效。
106 25
|
5月前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
103 5
|
6月前
|
算法 Java 测试技术
Java零基础教学(15):Java常量详解
【8月更文挑战第15天】Java零基础教学篇,手把手实践教学!
78 5
|
6月前
|
存储 Java 测试技术
Java零基础(16) - Java常量
【8月更文挑战第16天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
69 4
|
7月前
|
Java
java 文件上传 :MultipartFile 类型转换为file类型
java 文件上传 :MultipartFile 类型转换为file类型
215 9