Java语言的数据类型.ppt
JavaJava1.修饰符2.访问控制符3.数据类型4.String,StringBuffer4.变量,静态变量,常量5.操作符6.变量的类型转换7.运算符=与对象的equals()方法修饰符Java语言中提供了一些修饰符,这些修饰符可以修饰类,变量和方法。语言中提供了一些修饰符,这些修饰符可以修饰类,变量和方法。以下是常用的一些常用的修饰符:修饰符类成员方法构造方法成员变量局部变量abstract(抽象的)static(静态的)public(公有的)private(私有的)protected(受保护的)synchronized(同步的)final(不可变的)类的修饰符包括:abstract,public,final,而static、protected和private不能修饰顶层类。成员方法和成员变量:可以有多个修饰符。局部变量的修饰符:final访问控制符面向对象的基本思想之一是封装实现细节并且公开接口。面向对象的基本思想之一是封装实现细节并且公开接口。Java采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而只向使用者采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而只向使用者暴露接口,但隐藏实现细节。暴露接口,但隐藏实现细节。访问控制的访问控制的4种级别:种级别:公开级别:public修饰,对外公开受保护级别:protected修饰,向子类以及同一包中的类公开。默认级别:没有访问修饰,向同一个包中的类公开。私有级别:private修饰,只有类本身可以访问,不对外公开。访问级别访问控制修饰符同 类同 包子 类不同包公开public 受保护protected默认无私有private数据类型Java把数据类型分为基本数据类型和引用数据类型。把数据类型分为基本数据类型和引用数据类型。基本数据类型引用数据类型数值类型boolean浮点型floatbyte字符型整型double引用数组类型类类型接口类型shortlongcharint基本数据类型8种基本数据类型的取值范围、占用内存大小以及默认值种基本数据类型的取值范围、占用内存大小以及默认值数据类型关键字在内存中占用字节数取值范围默认值布尔值boolean1个字节(8位)true,falsefalse字节型byte1-1281270短整型short2-215215-10整型int4-231231-10长整型long8-263263-10字符型char20216-1u0000单精度型float41.4013E-453.4028E+380.0F双精度型double84.9E-3241.7977E+3080.0D内存中只能存放二进制形式的数据。一个二进制数据流有8位,每一位是一个比特(bit),每8位是1个字节(byte)。引用数据类型User user;/类引用类型UserDAO userDAO;/接口引用类型User users;/数组引用类型基本类型与引用类型的区别:基本类型与引用类型的区别:1.基本类型代表简单的数据类型。引用类型所引用的实例代表一种复杂的数据结构。2.基本数据类型仅表示数据类型,而引用数据类型所引用的实例除了表示复杂数据类型之外,还能包括操纵这种数据类型的行为。3.对于基本数据类型,JVM会为其分配数据类型实际占的内存空间,而对于引用数据类型变量,它仅仅是一个指向堆区中某个实例的指针。栈区:局部变量。方法区:静态成员变量。堆区:实例变量。变量程序的变量用于表示现实系统中的某种数据。程序运行过程中,空间内的值是变化的,程序的变量用于表示现实系统中的某种数据。程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。这个内存空间就称为变量。内存空间的名字称为变量名,内存空间内的值称为变量值。内存空间的名字称为变量名,内存空间内的值称为变量值。变量类型变量类型 变量名变量名=初始值初始值;String name;char sex=男男;User u=new User();变量分为全局变量(成员变量)和局部变量:全局变量:在类的整个范围之内。局部变量:在类的某个方法或某个子类内的有效变量。静态变量被被static关键字修饰的类的变量,叫做静态变量。关键字修饰的类的变量,叫做静态变量。静态变量在内存中只有一个,不依赖特定的实例对象。静态变量在内存中只有一个,不依赖特定的实例对象。静态变量可以通过静态变量可以通过 类名类名.变量名变量名 来直接访问。来直接访问。public class Test public static int count=1;直接Test.count即可拿到count的值常量常量就是从程序开始到结束都不变的量。常量就是从程序开始到结束都不变的量。声明常量要用声明常量要用final关键字关键字,常量名都大写常量名都大写final int MALE=1;所谓不变的量,指的是内存地址不能变化,并不能代表值就一定不变。比如:final StringBuffer str=new StringBuffer(123);str.append(456);从示例我们可以明显的看出来,即使被final修饰,str的值仍然发生了变化。操作符操作符能与相应类型的数据组成表达式,来完成相应的运算。操作符能与相应类型的数据组成表达式,来完成相应的运算。优先级类别运算符一元运算符-+-!数学运算符,移位运算符*/%+-比较运算符=ab,右移位运算符,正数补0,负数补1,相当于a/2b%32逻辑右移运算符,不带符号,开头全部补0ab,左移运算符,低位补0,相当于a*2b位运算不能用在浮点型上。变量的类型转换基本数据类型,当数据类型不一致时,从低位类型会基本数据类型,当数据类型不一致时,从低位类型会隐式隐式转换为高位类型,而从高位转换为高位类型,而从高位类型要转为低类,需要类型要转为低类,需要显示强制显示强制转换。转换。/隐式转换int a=1;double c=a+1.2;/显示转换double d1=1.2d;int c=1+(int)d1;或或 int c=(int)(1+1.2);强制类型转换:在需要转型的数据前加上强制类型转换:在需要转型的数据前加上(需要转换的数据类型需要转换的数据类型)有时可能会导致精度下降。变量的类型转换String类型与类型与int型的转换型的转换String型转换int型:String s=123;int i=Integer.valueOf(s);int型转换String型:int a=123;String s=a+;或者String s=String.valueOf(a);String型在转换为int型是,必须保证该字符串是一个可转换为整型的字符串,否则会抛出异常。运算符=与对象的equals()方法“=”用来比较两个操作元是否引用同一个对象,即内存地址是否相同。用来比较两个操作元是否引用同一个对象,即内存地址是否相同。equals()方法用来比较两个操作元的内容是否相等。方法用来比较两个操作元的内容是否相等。在比较字符串时,比较内容才比较有意义,所以使用equals。String s=123;String s2=123;System.out.println(s=s2);/trueString s=new String(123);String s2=new String(123);System.out.println(s=s2);/falseString s=new String(123);String s2=new String(123);System.out.println(s.equals(s2);/true