编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode)(class文件的内容),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。
Java源程序经过:1.编译器编译后变成字节码,
2字节码由虚拟机解释执行,
3虚拟机将每一条要执行的字节码送给解释器,
4.解释器将其翻译成特定机器上的机器码,
5.然后在特定的机器上运行。
如下图:
Java开发工具包(Java Development Kit),是一套用户给 Java 编程人员的开发套件,其中包含了:
JRE (Java Runtime Envoirment):Java 运行时环境,其中最重要的部件是 JVM;
Java 开发工具:编译工具 javac、API 生成工具 javadoc......;
核心类库 (Java API)
JDK的配置:需要在电脑的环境变量中加入:
1、 JAVA_HOME = d:\xx\xx\jdk1.8
2、在 Path 中追加目录%JAVA_HOME%\bin
3、CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
编程的两种方向:
面向过程编程:通过一个函数去完成一件事情,而且这件事情完成之后,不会留下任何的遗产。或者理解为:一次性。
面向对象编程:在完成一件事情时,会将事情中的实体对象抽象出来,形成「类」的概念,事情的完成是通过类的对象之间发生关系去实现的。
类是一群对象的特征母版,对象是类的实现。
特征(类)包含的内容有:基本属性(属性)、行为(方法)
注释:
文档注释:/**
* 相关的注释内容,甚至可以使用 HTML 标签
*
*/
单行注释:// 单行注释
多行注释:/*
第一行注释
第二行注释
*/
算术运算符: + - * / % ++ --
其中++与--在数据的前面和后面代表不同的意思,在前面先执行++或者 --语句,在执行其他语句,
在后面则是先执行其他语句,在执行++或者--语句
赋值运算符:= += -= \= *= %=
比较运算符:> < <= >= == !=
用于判断两个变量或者常量的大小,返回结果为 true/false; 左右两边的操作数只能是数值
逻辑运算符: 与 && 或者 || 非 !
运算符两边必须是 boolean 类型的变量、常量、表达式;
与:只要有一个假就是假;
或者:只要有一个真就是真
三目运算符:
例如:int age = 16;String strage = age > 18 ? "成年" : "未成年";
System.out.println(strage); //输出结果为:未成年
流程控制
顺序结构:程序是一个自上而下运行的过程。
分支选择结构:Java 中的分支选择结构有 if 结构、switch 结构
例如:if结构:int age2 = 65;
if(age2 <= 10 ){System.out.println("结果为:少年");
} else if (age2 < 18 ){
System.out.println("结果为:青少年");
}else if (age2 <= 60 ){
System.out.println("结果为:成年");
}else{
System.out.println("结果为:老年");
}
switch结构:String color = "white";
switch(color){
case "pink":{
System.out.println("粉色");
break; //break的作用是执行完输出语句后跳出当前循环
}
case "red":{
System.out.println("红色");
break;
}
case "blue":{
System.out.println("绿色");
break;
}
default :{
System.out.println("没有匹配项");
break;
}
}
循环结构:
循环语句可能包含的部分有:初始化语句(init_statement):一条或多条语句,这些语句用于完成一些初始化的工作。
循环条件(test_expression):是一个 boolean 类型的表达式,这个表达式决定是否继续执行循环体。
循环体(body_statement):如果条件允许,循环体会被反复执行。
迭代语句(iteration_statement):在一次循环体执行结束后,对循环体条件进行求值,通常用于控制循环条件中的变量,使得循环在合适的时候结束。
while 结构:int sum = 0;
int i =1;while (i<=5) {
sum = sum + i;
i++;
}
System.out.println(sum);
do-while 结构:无论如何都会执行一次循环体内容
int sum1 = 0;int i1 = 11;
do{
sum1 = sum1 +1;
i1++;
}while(i1<=10);
System.out.println(sum1); // 输出结果为:1
for 循环: int sum = 0;
for(int i=1;i<=5;i++){
sum = sum +i;
}
System.out.println(sum);