Java程序设计-2-类型、变量和表达式.ppt

上传人:本田雅阁 文档编号:2201823 上传时间:2019-03-03 格式:PPT 页数:92 大小:1.26MB
返回 下载 相关 举报
Java程序设计-2-类型、变量和表达式.ppt_第1页
第1页 / 共92页
Java程序设计-2-类型、变量和表达式.ppt_第2页
第2页 / 共92页
Java程序设计-2-类型、变量和表达式.ppt_第3页
第3页 / 共92页
亲,该文档总共92页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java程序设计-2-类型、变量和表达式.ppt》由会员分享,可在线阅读,更多相关《Java程序设计-2-类型、变量和表达式.ppt(92页珍藏版)》请在三一文库上搜索。

1、Java程序设计,第二章 类型、变量和表达式,2,2,学习目标,掌握八个原始类型 理解标识符、变量和常量 能够熟练的进行变量和常量的声明 理解显式和隐式的类型转换 辨认、描述并使用Java运算符 掌握表达式中运算符的执行顺序 使用赋值语句,掌握赋值兼容性,3,2.1 认识程序,什么是程序?,有一个著名的公式说:,3,程序=数据结构+算法”,什么是数据结构?,简单的数据结构就是众所周知的整型、实型这样的数据表示,复杂的数据结构可以是由简单的数据结构组合而成,如数组。,什么是算法?,算法就是用什么样的方法处理给定的数据从而得到所需的结果。,4,2.1 一个计算圆面积的程序,面积a= r2 中,计算

2、过程可以这样描述: 第一步:给出圆的半径; 第二步:将半径值带入圆面积计算公式,计算出圆面积,用a保存结果。,4,/ 程序2-1:一个计算圆面积的程序 public class ComputeArea public static void main(String args) int r = 10; double area=3.14*r*r; System.out.println(area); ,5,5,2.2变量,在程序中表示数据有两种方法, 一种是在表达式中直接用原始值来表示,如表示数值5、-6、7.86等,它们被称为“字面量(literal) 另外一种是用一个特定的名字来间接表示,被称为“

3、变量” 间接表示的最大优点在于可以重复使用一个名字来表达某种类型的数值。 注 在Java语言中,所有的变量必须要首先声明,然后才能使用,而且访问一个未经初始化的局部变量,将导致编译错误。,6,6,2.2.1标识符,在Java编程语言中,标识符是赋予变量、类或方法的名称。 标识符可从一个字母、下划线(_)或美元符号($)开始,随后可跟除了在Java中作为运算符之外的任何可见字符所构成的连续字符串,但不能被空格或制表符隔开。 标识符是大小写区别对待的并且未规定最大长度 标识符不能是关键字,7,7,8,8,练习题,下面哪些是合法的标识符: $persons TwoUsers *point this

4、endline,9,9,2.2.2 Java关键字,10,10,2.2.3基本Java类型,11,11,Java的基本数据类型,12,12,2.2.4 变量声明,Java属于强类型的程序设计语言。所有变量和表达式在编译时都有明确的类型 修饰符 类型 变量名 =初值,变量名=初值 例如: int x 0, y 1, z = 1; float a0f, b=0.1f; char c1, c2, c3=c; double d1=1.0d; boolean mycom=true; Date d1,d2; HelloWorld h1,h2;,13,13,为什么要进行变量声明 变量就是一个保存有值的内存位

5、置的名字表示 声明变量,就是分配内存 通过类型声明,可以明确的知道每个变量占据内存的大小; 通过声明,对非局部变量定义了一个初值; 重要的也在于可以重复使用一个名字来表达某种类型的数值。,14,14,逻辑类型 boolean truth = true; /声明一个布尔类型的变量truth,并初始化其值为true 字符类型 使用char类型可表示单个字符。一个char代表一个16-bit无符号的(不分正负的)Unicode字符。一个char文字必须包含在单引号内( )。 a t 一个制表符 u? 一个特殊的Unicode字符。?应严格按照四个16进制数字进行替换,15,15,文本类型char和S

6、tring,String 不是一个基本数据类型,它是一个类 具有用双引号(”)引用的多个文字字符 “The quick brown fox jumped over the lazy dog.” 可按如下情形使用: String greeting = “Good Morning! n”; String err_meg = “ Record not found !”; Char和String类型变量的声明和初始化如下所示: char ch = A; / declares and initializes a char variable char ch1,ch2 ; / declares two ch

7、ar variables / declare two String variables and initialize them String greeting = “Good Morning ! n“ ; String err_msg = “Record Not Found !“ ; String str1,str2 ; / declare two String variables,16,16,小测验,指出下面的错误声明,说明原因 char ch = AB; 解释:单引号内只能包含一个字符 char ch1= “A”; 解释:双引号表示界定的是一个字符串常量 char ch2=100,17,1

8、7,整数类byte, short, int, long 2 十进制值是2 077 首位的0表示这是一个八进制的数值 0xBAAC 首位的0x表示这是一个16进制的数值 默认整数类文字属int类型,除非在其后直接跟着一个字母“L”或者“l”,L表示一个long值。 byte smallOne=7; short count=10000; int score=100; long bigone=999999999L,largeOne;,18,18,课堂练习,下面的哪些答案可以用以表示八进制值8。 010 0x10 08 0x8,19,19,课堂练习,写出下面的输出结果,int color=10; Sy

9、stem.out.printf(“10的8进制表示是%on“,color); System.out.printf(“10的10进制表示是%dn“,color); System.out.printf(“10的16进制表示是%xn“,color); System.out.printf(“10的2进制表示是%sn“, Integer.toBinaryString(color); System.out.printf(“10的8进制表示是%sn“, Integer.toOctalString(color); System.out.printf(“10的16进制表示是%sn“, Integer.toHex

10、String(color);,20,JAVA中Printf支持的格式,%c 单个字符 %d 十进制整数 %f 十进制浮点数 %o 八进制数 %s 字符串 %u 无符号十进制数 %x 十六进制数 % 输出百分号% printf的格式控制的完整格式: % - 0 m.n l或h 格式字符,21,java中二进制、八进制、十六制相互转换,十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.

11、valueOf(“FFFF“,16).toString() 八进制转成十进制 Integer.valueOf(“876“,8).toString() 二进制转十进制 Integer.valueOf(“0101“,2).toString(),22,22,浮点float和double,如果一个数字文字包括小数点或指数部分,或者在数字后带有字母F或f(float)、D或d(double),则该数字文字为浮点。 3.14 一个简单的浮点值(a double) 4.02E23 一个大浮点值 2.718F 一个简单的float值 123.4E+306D 一个大的带冗余D的double值 以下是有关浮点数类

12、型变量的声明和初始化: float pi=3.1415926 , score; double weight=123.4E+36D;,23,23,2.2.5 变量初始化,八种基本数据类型变量的默认值如下: boolean false byte 0 char u0000,空,Unicode码的0000 short 0 int 0 long 0L float 0.0f double 0.0 初始化 成员变量自动初始化 局部变量必须在使用之前显示初始化,24,24,课堂练习,进行下列变量说明 初始值为0的int变量a 初始值为1000的long变量b 初始值为3.4的float变量c 初始值为4的ch

13、ar变量ch 初始值为true的boolean变量e,25,25,课堂练习,下面程序的运行结果是什么?,public class Demo public static void main(String args) int i; System.out.println(i); ,可能尚未初始化的变量i,26,26,课堂练习,替换下面的代码段到上述程序,分析现象。 float f=10.0f; double d=100.0d; f=d; System.out.println(“f=“+f);,可能损失精度,27,27,课堂练习,int a=10; char c=a; a=c+a; System.ou

14、t.printf(“c=%c“,a);,28,28,2.2.6 转义字符,29,29,/ 程序2-2:转义字符的应用 public class EscapeDemo public static void main(String args) System.out.println(“这是u03c0”); System.out.println(“下面的数据输出是按照制表位控制的,每2个一行。”); System.out.print(10+“t”+20+“n”+30+“t”+40+“n”); ,30,30,课堂练习,System.out.printf(“hellonworldn“);,31,31,2.

15、2.7 常量,字面常量和标识符常量。 常量用法通常用在开发中用标识符来表示一个固定值,便于在程序中通过名称来引用。 声明同时初始化 final int MAX_SPEED=200; 先声明,随后初始化 final int MAX_SPEED; . . . MAX_SPEED=200; 作为一种良好的编码习惯,常量名的定义一般均用大写来表示。,32,32,2.2.8 引用类型,除去基本类型之外的所有类型都是引用类型;引用对象的变量就是引用变量。/下面的例子创建了一个新的类型,如Card,public class Card char suit; String rank; ,声明一个变量 Card

16、c = new Card(); 访问成员 c.rank = “K”;,33,33,2.3 运算符和表达式,表达式就是由变量、对象、运算符和方法调用构成的式子,表达式应该按照Java语法来构造,才可以被编译系统理解、执行,每个表达式都有一个某种类型的结果。 如: int a=0,b=0,max=0; max=ab?a:b; a+(ab?a:b);,34,34,2.3.1 运算符,35,35,一元运算符即支持前缀形式,也支持后缀形式。如: operator op /前缀形式 op operator /后缀形式 所有的二元运算符都采用中缀表示,运算符在两个操作数中间。 op1 operator op

17、2 /中缀表示 Java语言中只有一个三元运算符,也采用中缀表示。 op1 ? op2 : op3 /中缀表示 instanceof是Java编程语言特有的运算符,36,36,2.3.2 算术表达式,37,37,自增、自减运算符 应用于算数表达式,自增(自减)运算只能应用于整数类型或char类型数据在。但在Java5.0及以上版本中,它们可以用于基本类型对应的Byte、Short、Integer、Long、Float、Double、Character,对于浮点数(此时的增减量为1.0“) 前置与后置的区别: 假设i = 6则: 表达式(+i)的值为7,运算完毕后i = 7 表达式(i+)的值为

18、6,运算完毕后i = 7,38,38,程序23:ArithmeticDemo.java Java对“+”运算进行了扩展,字符串连接、数字与字符串连接。 String s; s = “s=“ + 4*5; 根据Java语言规范,在进行算术运算中需要注意以下几个问题: (1)整数除。两个操作数为整数,结果得到一个整数,结果截取商的整数部分。如果需要保留,应该对算术表达式进行强制类型转换。1/2的结果是0 (float)1/2)的结果是0.5 (float)(1/2)的结果则是0。 (2)浮点除。两个操作数有一个为浮点数或两个都为浮点数,结果得到一个浮点数。,39,(3)求余(取模运算)。浮点数也可

19、以求余,但取余无法得出准确的结果。如10.1%3.3的结果可能为0.20000052。若%的两侧有负数,则运算结果的正负取决于第一个数; 15%-4 -15%4,40,40,强制类型转换,一种类型就是一些可能的值的集合 某些类型比另外一些类型“大”-(值更多) 每一个int都是一个long,long就是较大的类型 包含子集,long,int,int,long,41,41,强制类型转换(cont.),向宽的方向是自动的 int i=32;/没有 long x=32;/int to long long x=i; /int to long 向窄的方向必须强制说明 int i=32L;/error i

20、nt i=(int)32L;/long to int byte j=(byte)i; 类型转换可能丢失信息,int,long,byte,short,float,double,char,Widening 自动转换,强制转换narrowing,42,42,强制类型转换 在赋值的信息可能丢失的地方,编译器需要程序员用类型转换(typecast)的方法确认赋值。例如,它可以“挤压”一个long值到一个int变量中。显式转型做法如下: long bigValue =99L; int squashed =(int) (bigValue); 在上述程序中,期待的目标类型被放置在圆括号中,并被当作表达式的前缀

21、,该表达式必须被更改。一般来讲,建议用圆括号将需要转型的全部表达式封闭。否则,转型操作的优先级可能引起问题。,43,43,算术表达式的结果类型,44,44,练习题,long bigval = 6; int smallval = 99L; double z = 12.414F float z1 = 12.414; 下面的代码段执行后 int i = 10; int n = i+%5; i和n的值分别是多少?,/6 是一个int类型,允许,/99L是long类型, 不合法,/12.414F是float类型,允许,/12.414是double类型,不合法,i=11,n=0,45,45,设 int a

22、=1和double d=1.0,写出下列表达式的结果 a=46/9 a=46%9+4*4-2 a=45+43%5*(23*3%2) a=45+1+45*50%(-a) d=1.5*3+(+d) d=1.5*3+d+; a%=3/a+3,5,15,48,异常,6.5,5.5,1,46,46,下列类型转换合法吗? char c=A; i= (int)c; boolean b=true; i=(int)b; float f=1000.34f; int i=(int)f;,double d=1000.34; i= (int)d; int i=1000; char c=(char)i; int i=10

23、00; boolean b=(boolean)i,47,47,2.3.3关系和条件(逻辑)表达式,48,48,程序:RelationalDemo.java 注意: 不存在连续比较,如2 2 & i 5 不要在浮点类型变量之间进行相等比较,可以采用如下形式来判断相等:f1 f2 1e-4;,49,49,条件(逻辑)运算符,50,50,x=1,则下列表达式执行后,x的值 (x 1)&(x+ 1) (x 1)&(x+ 1),51,51,2.3.4 移位和位操作运算,整数在计算机内存中的二进制表示 整数30的二进制表示就是 0000 0000 0000 0000 0000 0000 0001 1110

24、,52,52,移位和位操作运算(c.),Java编程语言支持整数数据类型的位运算,它们的运算符 求反Not And & XOR OR 10110000 = 01001111 00001101 = 00101101 & 01001111 01100010 = 00101101 01001111 01101111 = 00101101 | 01001111,53,53,移位和位操作运算(c.),位运算符 10110000 = 01001111 00001101 = 00101101 & 01001111 01100010 = 00101101 01001111 01101111 = 0010110

25、1 | 01001111,54,54,移位和位操作运算(c.),整数30的二进制表示就是00000000000000000000000000011110,55,55,移位和位操作运算(c.),运算符进行算术或符号右移位。移位的结果是第一个操作数被2的幂来除,而指数的值是由第二个数给出的。例如: 128 1 等价于 128/21 = 64 256 4 等价于 256/24 = 16 -256 4 等价于 -256/24 = -16,56,56,移位和位操作运算(c.),逻辑或非符号右移位运算符主要作用于位图,而不是一个值的算术意义;它总是将零置于最重要的位上。例如: 1010 . 2 结果是 1

26、11010 . 在移位的过程中, 运算符使符号位被拷贝。 1010 . 2结果是001010 .,57,57,在某些系统中,经常使用,58,58,2.3.5 赋值运算符,+= -= *= /= %= &= |= = = = 快捷赋值运算 op = 等价于 = op 例如: a += 2 等价于 a = a + 2 要注意的是,快捷运算符的右端操作数是作为一个整体参与运算的。 例如: a *= b + 3 等价于 a = a * ( b + 3 ),59,59,2.3.6 其它运算符,60,60,2.3.6 其它运算符条件运算符,使用方法:boolean-exp ? exp1 : exp2 如果

27、表达式boolean-exp结果为真(true),则返回exp1的值,否则返回exp2的值 唯一的一个三元运算符 注意:如果boolean-exp为真(true),则不计算exp2,例如: int i = 7; int j = i 6 ? i-1 : i+; System.out.println(i+”, ”+j); 输出7,6,61,61,public static void main(String args) int c=8; switch (c10?1:c25?2:c35?3:4) case 1: System.out.println(“ “+c+“ 有点冷。要多穿衣服。“);break

28、; case 2: System.out.println(“ “+c+“ 正合适。出去玩吧。“);break; case 3: System.out.println(“ “+c+“ 有点热。“);break; default: System.out.println(“ “+c+“ 太热了!开空调。“); ,62,62,2.3.6 其它运算符”+”,作用 算术运算符 例:29 + 78 字符串连接符 例:”Hello”+ “World” 在同一表达式中的作用 System.out.println(6+7+A); /78 System.out.println(6+7+”A”); /13A Syst

29、em.out.println(6+”A”+7); /6A7,63,63,2.3.7 数学函数,三角函数 sin cos tan asin acos atan atan2 数值函数 abs max min ceil floor round rint sqrt pow exp log random toRadians,64,Abs(double x):传回 x 的绝对值。X也可int long float acos(double x):传回x值的反余弦函数值。 asin(double x):传回x值的反正弦函数值。 atan(double x):传回x值的反正切函数值。 atan2(double

30、x, double y):传回极坐标(polar)的值 ceil(double x):传回不小于x的最小整数值 cos(double x):传回x径度的余弦函数值,65,exp(double x):传回相当于ex值 floor(double x):传回不大于x的最大整数值 log(double x):传回x的自然对数函数值 max(double x,double y):传回x、y较大数 min(double x,double y):传回x、y较小数 pow(double x,double y):传回xy值 random():传回随机数值,66,rint(double x):传回最接近x的整数值

31、 round(double x):传回x的四舍五入值 sin(double x): 传回x径度的正弦函数值 sqrt(double x): 传回x开平方值 tan(double x): 传回x径度的正切函数值 toDegrees(double angrad):传回将angrad径度转换成角度 toRadians(double angdeg): 传回将angdeg角度转换成径度,67,67,public class MathDemo public static void main(String args) System.out.println(“sin(30)=“+ Math.sin(Math.

32、toRadians(30.0); ,68,68,2.3.8 字符运算,因为字符是一个2个字节的整数表示,因此可以对char类型的变量实行算术运算。如: char ch = a; . System.out.println(“ a= “ + (+ch); /输出结果是a=b System.out.println(“ a= “ + (int)(+ch); /输出结果是a=99,69,69,课堂练习,有四个整数分别用a、b、c、d表示,请使用条件运算符找出其中最大值。 下面表达式是否正确? x y 0,e= ab? a:b; e= ec? e:c; e= ed? e:d;,70,70,课堂练习,下面表

33、达式的含义是什么? i30 & i%10!=0 通常使用()改变优先级并增加可读性 (i30) & (i%10)!=0) 有半径r1.5,写出求圆周长、圆面积的表达式 有半径r1.5,圆柱高h3,写出求圆柱体积表达式,71,2.3字符串,字符串是引用类型。 字符串并不是一个基本类型,而是作为一个String类型的对象出现的 String类是JDK提供的一个标准类,位于java.lang包下,专门用于字符串处理。 字符串常量 字符串常量是一个用双引号(“)括起来的字符序列。如:“This is a string literal“ 另外,字符串常量中可以包含一些不能从键盘上输入的字符,这涉及到字符

34、转义。例如:“This is a u03c0“ 实际上就是 “This is a “,72,字符串对象 字符串常量和字符串对象是两个不同的概念 字符串常量在内存中由编译器分配到特定的区域,保存有字符序列。 字符串对象只是一个引用,不能通过字符串对象对常量进行修改,String str=“This is a string literal“; str=“This is other string literal“;,声明字符串对象,String str; /声明了一个未初始化的变量 String str=null; /初始化为空值 String str=“hello“; /声明时同时进行初始化 St

35、ring str=new String(“hello“);,73,2.3.3字符串运算,字符串连接,“hello “+ name “hello“ + “张华“ “string is ”+5+5 等价于 5+5+“ is a string“ 等价于,“string is 55”,“10 is a string“,74,字符串的串值比较 字符串之间的比较主要有两种情况,值比较和对象比较。 值比较主要比较两个字符串的字符序列。,/ 程序2-5:字符串的比较 public class StringDemo public static void main(String args) String s1=“

36、Morning!“; String s2=“morning!“; boolean eq=s1.equals(s2); System.out.println(“Morning“.equals(“morning“)结果是“+eq); int res=pareTo(s2); System.out.println(“Morning“.compareTo(“morning“)结果是“+res); ,75,2.4基于文本的输入/输出,1. 利用Scanner类实现键盘输入。 首先,创建Scanner的一个对象,扫描数据来自键盘输入。 Scanner sc=new Scanner(System.in); 其

37、次,通过调用扫描对象的方法实现输入。 int num=sc.nextInt(); 最后,调用对象的close()方法关闭输入。 sc.close();,/ 程序2-6:利用Scanner类实现键盘输入 import java.util.Scanner; public class ScannerDemo public static void main(String args) Scanner sc=new Scanner(System.in); System.out.println(“请输入一个整数,敲回车结束“); int num=sc.nextInt(); System.out.printl

38、n(“你输入了一个:“+num); System.out.println(“请输入一个字符串,敲回车结束“); String s=sc.next(); System.out.println(“你输入了字符串:“+s); sc.close(); ,76,2.利用Console类实现键盘输入 利用Console对象可访问与当前 Java 虚拟机关联的基于字符的控制台设备,主要提供了基于控制台的格式化读取及密码读取功能,/程序2-7:利用Console类实现键盘输入 import java.io.Console; public class ConsoleDemo public static void

39、 main(String args) Console cons =System.console(); String account=cons.readLine(“请输入账号“); char pwd=cons.readPassword(“请输入密码“); ,77,2.4.2字符界面的输出,利用System.out对象提供的输出方法 print print是PrintStream类提供的一种输出方法,支持boolean、char、char、double、float、int、long、short、String、Object的直接输出 println println方法不同于print的主要之处在于将

40、输出信息打印完之后,还要写出行分割字符串,默认情况下,这个行分割字符串是“n“,即输出一个换行回车。 printf printf则是一种格式化输出,类似于c语言的printf(),实现了对布局对齐和排列的支持,以及对数值、字符串和日期/时间数据的常规格式和特定于语言环境的输出的支持,78,1. print()方法 print是PrintStream类提供的一种输出方法,支持boolean、char、char、double、float、int、long、short、String、Object的直接输出,例如: int i = 100; boolean status = true; String

41、str = “Welcome“; . System.out.print(i); System.out.print(status); System.out.print(str); 利用print()方法输出需要注意的是,每次输出均紧接在上一次输出的位置,中间没有分隔符。,79,2. println()方法 println方法不同于print的主要之处在于将输出信息打印完之后,还要输出行终止符,默认情况下,这个行行终止符是“n“,即输出一个换行。类似的, int i = 100; boolean status = true; String str = “Welcome“; . System.out

42、.println(i); System.out.println(status); System.out.println(str); print()和println()方法对接受的参数均转换成字符串输出,因此,类似于下面的输出: System.out.println(“i=“+i); 表示字符串“i=”再连接上变量i的值传换成的字符串输出。,80,printf方法,public class TestPrintf public static void main(String args) int i = 100; boolean status = true; String str = “Welcom

43、e“; System.out.printf(“%d %b %s“,i,status,str); ,81,格式字符串,产生格式化输出的每个方法都需要格式字符串 和参数列表。格式字符串是一个 String,它可以包含固定文本以及一个或多个嵌入的格式说明符。请考虑以下示例: Calendar c = .; String s = String.format(“Dukes Birthday: %1$tm %1$te,%1$tY“, c); 这里包含三个格式说明符 “%1$tm”、“%1$te” 和 “%1$tY”,它们指出应该如何处理参数以及在文本的什么地方插入它们。 格式字符串的其余部分是包括 “Du

44、kes Birthday: “ 和其他任何空格或标点符号的固定文本。,82,83,常规类型、字符类型和数值类型的格式说明符的语法如下: %argument_index$flagswidth.precisionconversion 可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 “1$“ 引用,第二个参数由 “2$“ 引用,依此类推。 可选 flags 是修改输出格式的字符集。有效标志集取决于转换类型。 可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。 可选 precision 是一个非负十进制整数,通常用来限制字符数

45、。特定行为取决于转换类型。 所需 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集取决于参数的数据类型。 用来表示日期和时间类型的格式说明符的语法如下: %argument_index$flagswidthconversion 与参数不对应的格式说明符的语法如下: %flagswidthconversion,84,long n = 461012; System.out.printf(“%d%n“, n); System.out.printf(“%08d%n“, n); System.out.printf(“%+8d%n“, n); System.out.print

46、f(“%,8d%n“, n); System.out.printf(“%+,8d%n%n“, n);,85,double pi = Math.PI; System.out.printf(“%f%n“, pi); System.out.printf(“%.3f%n“, pi); System.out.printf(“%10.3f%n“, pi); System.out.printf(“%-10.3f%n“, pi);,86,复习要点,熟记Java的语法规范、熟练使用各种数据类型、运算符和表达式 标识符 以字母、下划线和$开头,后跟字母、数字、下划线和$的连续序列 长度没有限制 区分大小写 不能使

47、用关键字 关键字 goto保留,没有sizeof,87,数据类型 基本数据类型 整数型:byte、short、int、long 浮点型:float、double 字符型:char 布尔型:boolean 引用数据类型 数组 类 接口 需要掌握 每种类型的默认初始值、宽度和范围 char类型占两个字节 没有无符号数 Unicode字符、转义字符 八进制和十六进制数的表达 单精度和双进度的区别 不同整数的表达,88,基本数据类型之间的转换 byte,short,char-int-long-float-double 从左到右的转换被称为“扩展转换(widening)” 从右到左的转换被称为“窄化转换

48、(narrowing)” 扩展转换不必进行显示类型转换 强制转换类型的方法 如:常见的一种转换错误short a,b,c;c=a+b;a+b要首先转换成int,所以左右类型不匹配 常量和变量 两者的区别 字面常量和符号常量,89,变量 变量的作用,如何声明变量(类型和名称) 变量名必须符合标识符的规范 变量的推荐命名规范 运算符 操作数:一元、二元、三元运算符 功能:算术、赋值、关系、逻辑、位、其他 熟记每种运算符 算术运算符 注意自增、自减 / 运算符在操作数是整数的情况下的结果 %,90,关系运算符 比较两个值之间的大小,结果返回逻辑值 逻辑运算符 操作数只能是逻辑值 !,&,|, 位运算符 操作数只能是整型 对整数中的位进行测试、置位、移位 注意移位运算对以2为底的乘除简化,91,赋值运算符 不能把任何

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1