Java 语言概述 (4)
辽宁经济职业技术学院信息系
硕士、副教授 陈英
计算机数学
十进制数,321的含意是 3?10?10 + 2?10 +1
二进制数,1101的含意是 (等于十进制的 13)
1 ?2? 2?2+ 1 ?2?2 + 0?2 +1
二进制数 十进制数 二进制数 十进制数
0000 0000 0 0000 0111 7
0000 0001 1 0000 1000 8
0000 0010 2 0000 1001 9
0000 0011 3 0000 1010 10
0000 0100 4 0000 1011 11
0000 0101 5 0000 1100 12
0000 0110 6 0000 1101 13
计算机数学
二进制表达式中最左边的位是符号位,标为
,s”。当符号位为 0时表示正数;为 1时表示负
数。
二进制的负数表示成 2的补码形式。
从一个正值如何得到其相应负数的二进制补码
形式?
以 4减 12为例。二进制的 +8表示为 0000 1000。现
在对它反转每一位,即如果是 1就变为 0,如果是 0就变
为 1。这样得到 1111 0111,这个数称为 1的补码,如果
在这个数上加 1,可以得到 2的补码。 1111 0111
在这个数上加 1 0000 0001
得到的结果是,1111 1000
计算机数学
+4的二进制恰为 0000 0100。
进位一直到最左边的 1,又把它设置成为 0,
最后有个 1,但这不需担心。这可能就是在
我们进行减法以得到 -8的时候借来的。实
际上,我们是在假定符号为 1或 0始终在左
边重复。
+12表示为 0000 1100
-8表示为 1111 1000
+12加 -8的结果 0000 0100
整型数据的存储范围
Byte
(8位 )
最大值 可供用于存储每种类型变量的位数决定了各类型可以
存储的最大值和最小值 0 1 1 1 1 1 1 1
最小值
1 0 0 0 0 0 0 0
Short
(16位 )
最大值
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
最小值
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Int
(32位 )
最大值
0 1 1 。。。 。。。 1 1 1 1
最小值
1 0 0 。。。 。。。 0 0 0 0
long
(64位 )
最大值
0 1 1 。。。 。。。 1 1 1 1
最小值
1 0 0 。。。 。。。 0 0 0 0
s
ss
s
s
s
s
s
整型数据的存储范围
如果使用 7位二进制数,可以表示的十进制
数范围为 0~127,总共有 128个数。若使用 8
位二进制数就可以表示 256个数字。
二进制数 十进制数 二进制数 十进制数
0001 0001 17 1001 0001 145
… … … … … … … …
0111 1111 127 1111 1111 255
72
变量的赋值与初始化
声明一个变量后,必须通过赋值语句对
它进行明确的初始化。
永远不能使用未初始化变量的值。
要给一个已声明过的变量赋值,应把此
变量名写在左边,随后是 =号,右边是某
个具有恰当值的 java表达式。
例,int vacationDays; //声明一个变量
vacationDay=12; //给变量赋值
数据类型之间的逻辑转换 char
byte long
float double
short int
? 实线箭头表示了无信息损失的转换。
? 虚线箭头表示转换可能会丢失信息。
? 自动转换可能按照从左到右的顺序进行如果希 望进行反方向的
转换,就必须使用造型。
数据类型之间的逻辑转换
当使用二元运算符把两个值结合到一起时,,
在进行运算前两个操作数会自动转换成相同的
类型。
只要两个操作数中有一个是 double类型的,则
另一个将会转换成 double类型。
否则,只要两个操作数中有一个是 float类型的,
则另一个将会转换成 float类型。
否则,只要两个操作数中有一个是 long类型的,
则另一个将会转换成 long类型。
否则,两个操作数都将转换成 int类型。
造型
在 java中,数据转换是可能的,当然,信息可能会
丢失。
在可能丢失信息的情况下进行的转换是通过造型
( cast)来完成的。
造型的语法是在圆括号中给出要转换成的类型,随
后是需转换的变量名。
例,double x=9.997;
int nx=(int)Math.round(x);
此时变量 nx的值为 10。当调用 round方法时,
仍需要使用造型( int)。因为 round方法的返回值是
long类型的,由于有丢失信息的可能,所以只有使
用明确的造型才能把 long类型转换成 int类型。
运算符与表达式
在 java中,利用算术运算符 +-*/进行加、减、
乘、除运算。
当两个变量都是整数时,/运算符表示整除运算,
否则表示浮点除法。
整除的余数(即 mod函数)用 %表示。
例,15/2=7,15%2=1,15.0/2=7.5
可以在变量初始化时使用算术运算符。
例,int n=5;
int a= 2 * n // a is 10
运算符与表达式
二元运算符,x + =4; // 它相当于 x = x + 4
通常把运算符放在等号( =)的左边,如 *= 和 %=。
递增和递减运算符,X++使变量 X的当前值增 1,x
- - 使其减 1。
1) ++X 前缀方式先进行递增运算,
2) X - - 后缀方式先引用变量原先的值。
3) 例,int m = 7;
iny n = 7;
int a = 2 * + + m // now a is
16,m is 8
int b = 2 * n + + // now b is
14,n is 8
数学函数和常量
Math类包含了不同成分的数学函数。
例,double x = 4;
double y = Math.sqrt(x);
System.out.println(y); //prints 2.0
Math类提供了常用的三角函数:
Math.sin Math.cos Math.tan Math.atan
自然对数,Math.exp Math.log
两个常量,Math.PI Math.E
例,double y = Math.pow(x,a) //means xa
字符串
字符串是字符的序列,例如,Hello”。
Java没有内置的字符串类型。
标准的 java库里有一个叫做 String的预先定义的类。
每个被引进来的字符串都是 String类的一个实例。
例,String e =,” ; // an empty string
String greeting =, Hello”;
串连接,java允许使用符号 +把两个字符串连接进来。
当一个字符串和一个不是字符串的值相连接时,后者将
转换成字符串。
例,int age=15
String rating =,age, + age ; //rating is age 15
字符串
子串:使用 String类中的 substring方法可以从
一个大的字符串中提取一个子串。例如:
String greeting =,Hello”;
String s = greeting.substring(0,4); // s=“Hell”
串编辑,length方法用来求得字符串的长度。
例:由上例句,int n = greeting.length(); //is
5。
字符串的读取输入
为键盘输入提供一个对话框,调用方法为
JOptionPane.showInputDialog(promptstring)
使用 Integer.parseInt 或 Double.parseDouble
方法把对话框返回的字符串转换成数值。
例如,在程序中询问用户的名字和年龄:
String name = JOptionPane.showInputDialog(“What is your
name?);
String name = JOptionPane.showInputDialog(“How old are you?);
int age = Integer.parseInt (input)
字符串的 API帮助文档
Javax.swing.JOptionPane
Static String showInputDialog(Object message)
显示一个对话框,在此对话框中有一条提示信
息,一个输入框以及,OK”和,Cancel”按钮。
此方法返回被输入的字符串。
Java.long.System
Static void exit(int status)
终止虚拟机的运行并把状态码传递给操作系统。
Java简介
Java是一种编程工具
1) Java是一种很好的编程语言。目前 Java语言的
结构不会做任何改变。
2) Java代码清晰合理、简明流畅,并提供了丰富
的类库。改进 Java主要是对其库的重大变化,
其结果是产生一个有用的、强大的、远远优于
早期版本的 Java编程平台。
3) 使用 Java语言的继承性、封装性、多态性等面
向对象的属性,从而降低程序的复杂性,实现
代码的复用,提高开发速度。