Java杂记
Java常量
常量在程序运行时是不能被修改的。在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:
final double PI = 3.1415927;
自动转换类型
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
满足规则
int i =128;
byte b = (byte)i;
(int)23.7 == 23;
(int)-45.89f == -45
public class 自动转换 {
public static void main(String[] args) {
char c1='a';
int i1 = c1;
System.out.println("char自动类型转换为int后的值等于"+i1);
char c2 = 'A';
int i2 = c2+1;
System.out.println("char类型和int计算后的值等于"+i2);
}
}
强制类型转换
-
条件是转换的数据类型必须是兼容的。
-
格式:(type)value type是要强制类型转换后的数据类型
隐含强制类型转换
-
整数的默认类型是 int。
-
小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。
类变量和实例变量的区别
成员变量:类内、方法体外定义的变量
成员变量分为实例变量和类变量(静态变量)两类
实例变量没有static修饰,这些成员变量是对象中的成员
有static修饰的,称为类变量(静态变量)
静态变量(类变量)特点:
1.随着类的加载而加载
2.优先于对象存在
3.被所有对象所共享
4.可以直接被类名调用
区别:
1.存放位置。
类变量随着类的加载而存在于方法区中。
实例变量随着对象的建立而存在于堆内存中。
2.生命周期:
类变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。
变量类型
声明格式:
type identifier [ = value][, identifier [= value] ...] ;
支持的变量类型有:
1.类变量:独立于方法之外的变量,用 static 修饰。
1.类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
2.类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
3.无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
4.静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/private,final 和 static 类型的变量。静态变量初始化后不可改变。
5.静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量。
6.静态变量在第一次被访问时创建,在程序结束时销毁。
7.与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为 public 类型。
8.默认值和实例变量相似。数值型变量默认值是 0,布尔型默认值是 false,引用类型默认值是 null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
9.静态变量可以通过:ClassName.VariableName的方式访问。
10.类变量被声明为 public static final 类型时,类变量名称一般建议使用大写字母。如果静态变量不是 public 和 final 类型,其命名方式与实例变量以及局部变量的命名方式一致。
2.实例变量:独立于方法之外的变量,不过没有 static 修饰。
1.实例变量声明在一个类中,但在方法、构造方法和语句块之外;
2.当一个对象被实例化之后,每个实例变量的值就跟着确定;
3.实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
4.实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
5.实例变量可以声明在使用前或者使用后;
6.访问修饰符可以修饰实例变量;
7.实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
局部变量:类的方法中的变量。访问修饰符不能用于局部变量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!