JAVA
1.JAVA初识
-
Java是一门跨平台的面向对象编程语言
-
JAVA分为三个体系:JAVASE ,JAVAEE, JAVAME
-
JAVA语言共同创始人之一: 詹姆斯·高斯林 (James Gosling)被称为“Java之父”
-
Java语言是解释型的:
如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
-
JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在
JVM
之上。 -
跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上
-
JRE (Java Runtime Environment) :是Java程序的运行时环境,包含
JVM
和运行时所需要的核心类库
。 -
JDK (Java Development Kit):是Java程序开发工具包,包含
JRE
和开发人员使用的工具。 -
三者关系: JDK > JRE > JVM
-
8个bit(二进制位) 0000-0000表示为1个字节,写成1 byte或者1 B
-
目录名称 说明 bin 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。 include 该路径下存放了一些平台特定的头文件。 jre JDK包含的Jre运行环境文件。 lib 该路径下存放了JDK工具的一些补充JAR包。 javafx-src.zip java提供的一个图形化界面工具javafx源码包。 src.zip jdk相关的源码包。
1.1常用命令
操作 | 说明 |
---|---|
盘符名称: | 盘符切换。E:回车,表示切换到E盘。 |
dir | 查看当前路径下的内容。 |
cd 目录 | 进入单级目录。cd soft |
cd 目录1\目录2... | 进入多级目录。cd soft\java |
cd .. | 回退到上一级目录。 |
cd \ | 回退到盘符目录。 |
cls | 清屏。 |
exit | 退出命令提示符窗口。 |
1.2文档注释
常用的标签名及说明如下:
标签 | 描述 | 示例 |
---|---|---|
@author | 标识一个类的作者 | @author description |
@version | 指定类的版本 | @version info |
@param | 说明一个方法的参数 | @param parameter-name explanation |
@return | 说明返回值类型 | @return explanation |
@deprecated | 用来注明被注释的类、变量或方法已经不提倡使用,在将来的版本中有可能被废弃 | |
@throws | 描述方法抛出的异常,指明抛出异常的条件 |
1.3关键字说明:
关键字 | 含义 |
---|---|
abstract | 表明类或者成员方法具有抽象属性 |
assert | 用来进行程序调试 |
boolean | 基本数据类型之一,布尔类型 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
2.变量与数据类型
-
**变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量,Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型
-
Java的数据类型分为两大类:
-
基本数据类型:包括
整数
、浮点数
、字符
、布尔
。 -
引用数据类型:包括
类
、数组
、接口
,枚举
,注解
-
2.1四类八种基本数据类型:
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
字节型 | byte | 1个字节 | -128 至 127 |
短整型 | short | 2个字节 | -32768 至 32767 |
整型 | int(默认) | 4个字节 | -2^31^ 至 2^31^-1 |
长整型 | long | 8个字节 | -2^63^ 至 2^63^-1 19位数字 |
单精度浮点数 | float | 4个字节 | 1.4013E-45 至 3.4028E+38 2^-149~2^128 |
双精度浮点数 | double(默认) | 8个字节 | 4.9E-324 至 1.7977E+308 2^-1074~2^1024 |
字符型 | char | 2个字节 | 0 至 2^16^-1 |
布尔类型 | boolean | 1个字节 | true,false |
Java中的默认类型:整数类型是
int
、浮点类型是double
。e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。
float类型:数据后必须加F或者f表示
2.2自动转换规则:
范围小的类型向范围大的类型提升,byte、short、char
运算时直接提升为int
byte、short、char-->int-->long-->float-->double-->String
强制类型转换:将取值范围大的类型
强制转换成取值范围小的类型
。
2.3逻辑运算符
-
符号 作用 说明 & 逻辑与 a&b,a和b都是true,结果为true,否则为false 并且关系 | 逻辑或 a|b,a和b都是false,结果为false,否则为true 或者关系 ^ 逻辑异或 a^b,a和b结果不同为true,相同为false ! 逻辑非 !a,结果和a的结果正好相反 && 短路与 1. 两边都是true,结果是true 2. 一边是false,结果是false 短路与特点:符号左边是false,右边不再运算 || 短路或 1. 两边都是false,结果是false 2. 一边是true,结果是true 短路或特点: 符号左边是true,右边不再运算
2.4 3位运算符说明
说明:位运算符指的是两个数之间的位运算,运算过程中都转换为字节类型参与运算。比如:数字3转换为字节数为0000 0011。
符号 | 作用 | 说明 |
---|---|---|
& | 按位与 | 两数同位对比,有0则为0 |
| | 按位或 | 两数同位对比,有1则为1 |
^ | 按位异或 | 两数同位对比,不同为1,相同为0 |
~ | 按位取反 | 针对一个数,操作数的每一位都取反 |
<< | 按位左移 | 针对一个数,操作数的每位向左移动指定位数,最高位丢弃,尾部空位补0(相当于乘以2的n次方) |
>> | 按位右移 | 针对一个数,操作数的每位向右移动指定位数,头部空位补符号位数,移除部分丢弃 |
>>> | 无符号右移 | 针对一个数,操作数的每位向右移动指定位数,无论符号数头部都补0,移除部分丢弃 |