Java概述:
计算机语言可以分为:机器语言,汇编语言,高级语言。
计算机只能识别机器语言,由二进制0 1 组成的编码,目前通用的编程语言是汇编语言和高级语言
Java划分为三个技术平台——Java SE(核心部分),Java EE,Java ME(这两个是由Java SE 的基础上发展而来的)。
Java语言的特点:
①简单易用,②安全可靠,③跨平台,④面向对象,⑤支持多线程
Sun公司提供JDK和JRE
JDK:包括Java编译器,Java运行工具,Java文档生成工具,Java打包工具。
JRE:是Java运行环境,他只包括Java运行工具
下面是安装JDK等这个不做介绍…………
Java的运行机制:
Java运行时需要经过两个部分,编译和运行。
先将扩展名为Java的源文件进行编译,生成扩展名为class的字节码文件,然后Java虚拟机将字节码文件进行解释执行,并将结果显示出来。
为了方便理解Java程序运行的过程,我们把具体步骤写下来。
①编写一个 Hello world.Java的文件。
②使用“Javac Hello world.Java”命令开启Java编译器并进行编译。编译结束后,会自动生成一个Hello World. class的字节码文件
③使用“ Java Hello world”命令启动Java虚拟机运行程序,Java虚拟机首先将编译好的字节码文件加载到内存,这个过程被称为类加载,它是由类加载器完成的,然后虚拟针对加都到内在中的Java类进行解释执行,便可看到运行结果。
通过上面的分析不难发现,Java程序是由虚拟机负责解释执行的,而并非操作系统。
这样做的好处是可以实现跨平台性,也就是说针对不同的操作系统可以编写相同的程序,只需安装不同版本的虚拟机即可。
Java编程基础:
关键字和标识符(以前总是搞混,复习的时候,记录一下) (1)关键字——java语言定义的,具有特定含义的词,比如public,class,static,void等; (2)标识符——用户自己定义的,可用于命名变量名、常量名、类名、对象名、方法名,参数名,包名等;
标识符可以由任意顺序的大小写字母,数字,下划线,美元符号组成,但不能以数字开头,也不能是Java中的关键字。 命名规范问题:(不这样也不错,但是不规范) (1)类名:首字母要大写 (2)关键字、变量、对象、方法、包名:首字母要小写,如果是多个单词,第二个单词首字母可以大写,比如setPeople (4)常量:一般全部要大写(定义就是添加一个final关键字即可),如下面所示
基本数据类型:
字节型 byte:1个字节(8位,256)
短整型 short:2个字节
整型 int:4个字节
长整型 long:8个字节
字符型 char:2个字节
变量的类型转换:
隐式转换(自动类型转换)
如果以下 2 个条件都满足,那么将一种类型的数据赋给另外一种类型变量的时,将执行自动类型转换。
两种数据类型彼此兼容
目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)
当以上 2 个条件都满足时,拓宽转换(widening conversion)发生。例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。
在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。自动转换的规则是从低级类型数据转换成高级类型数据。转换规则如下:
数值型数据的转换:byte→short→int→long→float→double。
字符型转换为整型:char→int。
以上数据类型的转换遵循从左到右的转换顺序,最终转换成表达式中表示范围最大的变量的数据类型。
显式转换(强制类型转换)
尽管自动类型转换是很有帮助的,但并不能满足所有的编程需要。例如,如果你需要将 double 型的值赋给一个 int 型的变量,你将怎么办?
这种转换不会自动进行,因为 double 型的变化范围比 int 型的要小。这种转换有使成为“缩小转换”,因为你肯定要将源数据类型的值变小才能适合目标数据类型。
所以当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。
上述代码中首先将 double 类型变量 e 的值强制转换成 int 类型,然后将值赋给 s,但是变量 e本身的值是没有发生变化的。
在强制类型转换中,如果是将浮点类型的值转换为整数,直接去掉小数点后边的所有数字;而如果是整数类型强制转换为浮点类型时,将在小数点后面补零。
Java运算符:
算数运算符,赋值运算符,逻辑运算符;
表 1 一元算术运算
运 算 符 | 名 称 | 说 明 | 例 子 |
- | 取反符号 | 取反运算 | b=-a |
++ | 自加一 | 先取值再加一,或先加一再取值 | a++ 或 ++a |
-- | 自减一 | 先取值再减一,或先减一再取值 | a-- 或 --a |
表 2 二元算术运算
运 算 符 | 名 称 | 说 明 | 例 子 |
+ | 加 | 求 a 加 b 的和,还可用于 String 类型,进行字符串连接操作 | a + b |
- | 减 | 求 a 减 b 的差 | a - b |
* | 乘 | 求 a 乘以 b 的积 | a * b |
/ | 除 | 求 a 除以 b 的商 | a / b |
% | 取余 | 求 a 除以 b 的余数 | a % b |
表 1 赋值运算符和算数运算符组成的复合赋值运算的含义及其使用实例
运算符 | 含义 | 实例 | 结果 |
+= | 将该运算符左边的数值加上右边的数值, 其结果赋值给左边变量本身 | int a=5; a+=2; | a=7 |
-= | 将该运算符左边的数值减去右边的数值, 其结果赋值给左边变量本身 | int a=5; a-=2; | a=3 |
*= | 将该运算符左边的数值乘以右边的数值, 其结果赋值给左边变量本身 | int a=5; a*=2; | a=10 |
/= | 将该运算符左边的数值整除右边的数值, 其结果赋值给左边变量本身 | int a=5; a/=2; | a=2 |
%= | 将该运算符左边的数值除以右边的数值后取余,其结果赋值给左边变量本身 | int a=5; a%=2; | a=1 |
表 1 逻辑运算符的用法、含义及实例
运算符 | 用法 | 含义 | 说明 | 实例 | 结果 |
&& | a&&b | 短路与 | ab 全为 true 时,计算结果为 true,否则为 false。 | 2>1&&3<4 | true |
|| | a||b | 短路或 | ab 全为 false 时,计算结果为 false,否则为 true。 | 2<1||3>4 | false |
! | !a | 逻辑非 | a 为 true 时,值为 false,a 为 false 时,值为 true | !(2>4) | true |
| | a|b | 逻辑或 | ab 全为 false 时,计算结果为 false,否则为 true | 1>2|3>5 | false |
& | a&b | 逻辑与 | ab 全为 true 时,计算结果为 true,否则为 false | 1<2&3<5 | true |