一、Java基本数据类型
Java数据类型分为3类,包括数字类型、字符类型、逻辑类型。其中,数字类型有6种,包括4种整数性和2种浮点型。
1.byte:字节型,内存8位、2个字节,有符号的。默认值是0,取值范围是[-128,127],默认值为0。
2.short:短整型,内存16位、4个字节,有符号的。取值范围是[-32768,32767],默认值为0。
3.int:整型,内存32位、8个字节,有符号的。取值范围是[-2,147,483,648,2,147,483,647],默认值为0。
4.long:长整型,内存64位、16个字节,有符号的。取值范围是[-9,223,372,036,854,775,808,9,223,372,036,854,775,807],默认值为0L。
5.float:单精度浮点型,内存32位,有符号的。默认值是 0.0f。
6.double:双精度浮点型,内存64位,有符号的。默认值是 0.0d。
7.boolean:布尔型,取值为true/false。默认值为false。
8.char:字符型,' '表示,存储16 位 Unicode 字符。取值范围是[\u0000,\uffff]。默认值为\u0000。
9.String:字符串类型," "表示,默认值是null。
10.引用类型变量:引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型。变量一旦声明后,类型就不能被改变了。对象、数组都是引用类型数据。引用类型的默认值是null。
11.常量:即初始化后不可变的值,用final关键字修饰。
注:十进制数字无前缀、八进制数字前缀为0、十六进制数字前缀为0x。
二、数据类型转换
1.转换顺序由低到高为byte、char、short-->int-->long-->float-->double。由低到高转换不会出错,但由高到底可能会出现数据溢出。
2.自动类型转换:int i=10;char t=i; 自动将int型的数据转换为char型。
3.强制类型转换:int i=56;byte d=(byte)i。
注:
1.整数的默认类型是int;小数的默认类型是double。
2.不能对Boolean类型的数据进行转换。
3.大数转小数必须使用强制类型转换。
三、Java的变量类型
Java的变量类型按照使用范围可分为两个大类:成员变量(全局变量)、局部变量,其中成员变量分为静态变量和实例变量:
1.静态变量:独立于方法之外,用static 关键字修饰,可在定义其的类内使用,也可以通过“类名.静态变量名”的方式在其他类内使用。
注:静态变量初始化后不可改变;静态变量具有默认值。
2.实例变量:独立于方法之外,不用static关键字修饰。
注:当某对象被实例化后,该对象的实例变量就跟着确定了;实例变量在对象创建时创建,对象被销毁时销毁;访问修饰符可以修饰实例变量;实例变量具有默认值。
3.局部变量:在类的方法体中定义的变量,有效的使用范围在方法体中,不可在其他方法中使用,当局部变量与成员变量同名时,局部变量有效,成员变量在该方法中暂时失效。
注:访问修饰符不能修饰局部变量;局部变量是在栈上分配的;局部变量没有默认值,必须经过初始化才可以使用。
public class Var{
static int allClicks=0; // 类变量,有static关键字修饰
float num=123.24f; // 实例变量
public void method(){
int i =0; // 局部变量,离开{}后,该局部变量失效
}
}
四、Java的修饰符
修饰符用来定义类、方法或变量,一般放在语句的前端,分为访问修饰符与非访问修饰符。Java支持4种访问不同的访问权限(访问修饰符):
1.default:默认。不加任何修饰符,什么也不写。对同一包内的类可见。
2.private:私有。仅对当前类可见,除该类之外的任意类都不可见。注:类和接口不能被设置为private,被声明为private的变量可以通过类中公共的getter方法被外部类访问。
3.public:公有的。任何情况下均可访问。注:Java程序的main()方法必须被设置称public,否则Java解释器将不能运行该类。
4.protected:受保护的。子类与基类在同一包中,被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问;子类与基类不在同一包中,那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法。注:protected 可以修饰数据成员,构造方法,方法成员,不能修饰类(内部类除外);接口及接口的成员变量和成员方法不能声明为 protected。
方法继承的规则:
-
父类中声明为 public 的方法在子类中也必须为 public。
-
父类中声明为 protected 的方法在子类中要么声明为 protected/ public,不能声明为 private。
-
父类中声明为 private 的方法,不能被继承。
非访问修饰符:
1.static修饰符:(变量)static 用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 局部变量不能被声明为 static 变量。(方法)static 用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。
2.final修饰符:(变量)用于声明一个常量,赋值后值不可变,通常与static共同定义常量。(方法)父类中的final方法可以被子类继承,但不能被子类重写。声明final方法的目的是防止该方法被修改。final类不能被继承,没有类能够继承final类的任何内容。
3.abstract修饰符:(类)抽象类不能用来实例化对象,声明抽象类是为了便于对该类内容的拓展。一个类不能同时被static和final 两种修饰符修饰。(方法)抽象方法没有具体的实现内容,该方法的具体内容由其子类提供。抽象方法不能被声名为final和static。任何继承抽象类的子类必须实现该抽象类的所有抽象方法,除非该子类也是抽象类。一个类只要包含抽象方法,该类必须声名为抽象类,但抽象类可以不包含抽象方法。抽象方法的声明用; 结尾。
4.synchronized修饰符:用synchronized声明的方法表示该方法同一时间只能被同一个线程访问。它可以应用于4个访问修饰符。
5.volatile修饰符:volatile修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
本文围绕Java编程展开,介绍了Java基本数据类型,包括数字、字符、逻辑类型等,阐述了数据类型转换规则,如自动和强制转换。还讲解了Java变量类型,有成员变量(静态和实例)和局部变量,以及Java的修饰符,涵盖访问和非访问修饰符及其使用规则。
19万+

被折叠的 条评论
为什么被折叠?



