Java程序设计
第二章数值计算与数组
学习目标
掌握八个原始类型(Primitive Type)
掌握八个原始类型(Primitive Type)
理解标识符(Identifier)、变量(Variable)和常
量(Constant Variable)
掌握声明变量和常量
辨认、描述并使用Java运算符;
确认boolean表达式和它们在控制构造中的要求;
辨认赋值兼容性和在基本类型中的必要计算;
掌握数组的声明及基本操作
21数据和变量声明
2.1 数据和变量声明
在程序中表示数据有两种方法,
一种是在表达式中直接用原始值来表示,如表示数值5、-6、7.86等
另外一种是用一个特定的名字来间接表示
间接表示的最大优点在于可以重复使用一个名字来表达某种类型的数值。也就是说,为了使
用名字来进行计算,必须事先为这个名字规定
它可以表达的数值类型,例如整数、单精度实
数、字符等.
在Java语言中,所有的变量必须要首先声明,然后才能使用,而且访问一个未经初始化的局
部变量,将导致编译错误。
211标识符
2.1.1标识符
在Java编程语言中,标识符是赋予变量、类或方
法的名称。
标识符可从一个字母、下划线(_)或美元符号($)
开始,随后可跟除了在Java中作为运算符之外的任何可见字符所构成的连续字符串,但不能被空格或制表符隔开。
标识符是大小写区别对待的并且未规定最大长度
标识符不能是关键字
21
表2-1 有效与无效标识符
有效标识符无效标识符Identifier1User
userName User name 220
user name
_
_sys_varl $change user&name star*
g
michal-jordan
c/java
Hello+world
练习题
下面哪些是合法的标识符:
$persons TwoUsers *point this endline $persons TwoUsers*point this endline
2.1.2 Java关键字
212Java关键字
22 Java编程语言中的关键字
表2-2Java
abstract continue for new switch
assert***default goto*package synchronized t d f lt t k h i d
boolean do if private this
break double implements protected throw
byte else import public throws
case enum****instanceof return transient
catch extends int short try
t h t d i t h t t
char final interface static void
class finally long strictfp**volatile
*
const float native super while
注:* 未用;** 1.2以后;*** 1.4以后;**** 1.5以后
Java的基本数据类型
表2-3 Java的基本数据类型
23J
数据类型关键字占用字节缺省数值取值范围
逻辑型boolean1false true , false
字符型char2‘\u0000’'\u0000' ~'\uFFFF'’
字节型byte10–128 ~127
短整型short20–32768 ~32767
整型int40–2147483648 ~2147483647长整型long80–9223372036854775808 ~
9223372036854775807
单精度float40.0F-3.4E38~3.4E38
-1.7E308~
双精度double80.0D 1.7E308 1.7E308
214变量声明
2.1.4 变量声明
Java属于强类型(Strong Type)的程序设计语言。所有Java属于强类型(Strong Type)的程序设计语言。所有
变量和表达式在编译时都有明确的类型
[修饰符] 类型变量名[=初值][,变量名[=初值] …]
例如:
int x =0, y =1, z = 1;
float a=0f, b=0.1f;
float a=0f,b=0.1f;
char c1, c2, c3=’c’;
double d1=1.0d;
boolean mycom=true;
boolean mycom=true;
Date d1,d2;
HelloWorld h1,h2;
HelloWorld h1,h2;
逻辑类型
boolean truth = true; //声明一个布尔类型的变量,并初始化其值为truth
字符类型
使用char类型可表示单个字符。一个char代表一个16-bit无符号的(不分正负的)Unicode字符。一个char文字必须包含在单引号内(‘’)。
'a'
'a'
'\t ' 一个制表符
‘\u????'一个特殊的Unicode字符。????应严格 ‘\u????' 一个特殊的Unicode字符。????应严格按照四个16进制数字进行替换
小测验
指出下面的错误声明,说明原因
char ch = 'AB'; //单引号内只能包含一
char ch='AB';//单引号内只能包含一
个字符
char ch1= “A”; //双引号表示界定的是
char ch1=;//双引号表示界定的是
一个字符串常量
整数类byte,short,int,long
整数类──byte, short, int, long
2 十进制值是2
077 首位的0表示这是一个八进制的数值
0x BAAC 首位的0x表示这是一个16进制的数值BAAC
默认整数类文字属int类型,除非在其后直接跟着一个字母“L”或者“l”,L表示一个long值。
byte smallOne=7;
byte smallOne=7;
short count=10000;
int score=100;
long bigone=999999999L,largeOne;
long bigone=999999999L,largeOne;
下面的哪些答案可以用以表示八进制值8。
010 0x10 08 0x8
0100x10080x8
int color=10;
int color=10;
System.out.printf("10的8进制表示是%o\n",color);
System.out.printf("10的10进制表示是%d\n",color);
System.out.printf("10的16进制表示是%x\n",color);
System.out.printf("10的2进制表示是
%s\n",Integer.toBinaryString(color));
System.out.printf("10的16进制表示是
%s\n",Integer.toOctalString(color));
System.out.printf("10的16进制表示是
%s\n",Integer.toHexString(color));
浮点──float和double 浮点float和double
如果一个数字文字包括小数点或指数部分,或者在数
字后带有字母F或f(float)、D或d(double),则该数字文字为浮点。
3.14 一个简单的浮点值(a double 3.14一个简单的浮点值(a double )
4.02E23 一个大浮点值
2.718F 一个简单的float值
2.718F 一个简单的float值
123.4E+306D 一个大的带冗余D的double值
以下是一个有关整数类型变量的声明和初始化:
float pi=3.1415926,score;float pi=3.1415926 , score;
double weight=123.4E+36D;
215变量初始化
2.1.5 变量初始化
八种基本数据类型变量的默认值如下:
boolean false
byte0
char\u0000,空,Unicode码的0000
‘’
short0
int0
long0L
float0.0f
double0.0
从JDK1.2(即Java 2)起,变量只有在赋初始值以后
才能使用。
进行下列变量说明
初始值为0的int变量a
初始值为1000的long变量b
初始值为3.4的float变量c
初始值为4的char变量ch
初始值为true的boolean变量e
程序,分析现象。
float f=10.0f;
float f=10.0f;
double d=100.0d;
f=d;
System.out.println("f="+f);
int a=10;
int a=10;
char c='a';
char c='a';
a=c+a;
System.out.printf("c=%c",a);