java技能树
java概览
编辑java源代码
a+b,计算a+b的和,输入包含多组测试数据,每一行包含两个整数 a 和b;输出为和
import java.util.Scanner;
public class Main{public static void main (String []args){Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {int a = scanner.nextInt();int b = scanner.nextInt();int c = a + b;System.out.println(c);}}
}
java的运行机制
Java程序运行时,必须经过编译和运行两个步骤。
首先将后缀名为**.java的源文件进行编译,最终生成后缀名为.class的字节码文件。然后Java虚拟机经过类加载(Java虚拟机将编译好的字节码文件加载到内存)**进行解释执行,并将结果显示出来
- Java 虚拟机(Java Virutal Machine)简称 JVM ,用于执行 Java 字节码
- Java 运行时环境(Java Runtime Evironment)简称 JRE ,用于运行 Java 程序,包含 JVM
- Java 开发工具包(Java Development Kit)用于开发Java程序,包含JRE和 Java 编译工具等
****Maven:****专门为 Java 项目提供构建和依赖管理支持的工具
-
构建过程
-
清理:删除上一次构建的结果,为下一次构建做好准备
-
编译:Java 源程序编译成 *.class 字节码文件
-
测试:运行提前准备好的测试程序
-
报告:针对刚才测试的结果生成一个全面的信息
-
打包:Java工程:jar包。Web工程:war包
-
安装:把一个 Maven 工程经过打包操作生成的 jar 包或 war 包存入 Maven 仓库
-
部署:部署 jar 包:把一个 jar 包部署到 Nexus 私服服务器上
部署 war 包:借助 Maven 插件(例如 cargo),将 war 包部署到 Tomcat 服务器上
-
-
坐标
- groupId:公司或组织的 id
- artifactId:一个项目或者是项目中的一个模块的 id
- version:版本号
-
POM
POM:项目对象模型
pom.xml 配置文件就是 Maven 工程的核心配置文件
进入pom.xml所在的目录
- 清理操作:
mvn clean
删除target目录 - 编译操作:
- 主程序编译:
mvn compile
编译结果存放目录:target/classes - 测试程序编译:
mvn test-compile
编译结果存放目录:target/test-classes
- 主程序编译:
- 测试操作:
mvn test
测试的报告存放的目录:target/surefire-reports - 打包操作:
mvn package
打包的结果——jar 包,存放的目录:target - 安装操作:
mvn install
- 清理操作:
-
生命周期
在任何一个生命周期内部,执行任何一个具体环节的操作,都是从本周期最初的位置开始执行,直到指定的地方。
跨平台
Java是由虚拟机负责解释执行的,而并非操作系统。跨平台性就是说针对不同的操作系统可以编写相同的程序,只需要安装不同版本的虚拟机即可。
java基本语法
Java 中的程序
-
结构定义语句:声明一个类或方法
-
功能执行语句:实现具体的功能,英文分号(;)结束,若写成中文的,则会报“Invalid Character(无效字符)”错误信息
-
严格区分大小写
-
一个连续的字符串不能分开在两行中书写,但是可"这是第一个"+"Java 程序!”
-
注释:单行// ;多行/* /;文档注释/* */(JDK提供的javac工具可以直接将源代码里的文档注释提取程一份系统的API文档);
-
关键字
- abstract:可以修饰类和方法,但是不能实例化,只能被子类继承
- ****assert:****断言,assert 表达式:错误信息;
- boolean:值-true和false(默认)、
- break:switch和while跳出循环;break flag跳出一些嵌套比较复杂的循环
- continue:在循环中跳过本次循环。
- try/catch:catch捕获发生的异常,并应对错误做一些处理**;finally**在处理一些后续的工作。例如关闭网络连接和输入输出流等,若有return,则会强制执行finally
- default:switch做默认分支;接口实现具体的方法
- extends:class 子类 extends父类{}-单继承,即子类只能有一个直接父类。但是在private,子类可以访问父类的方法和成员变量。
- final:修饰变量(将变量变为常量);修饰方法(不能被子类重写);修饰类(不能被继承)。
- implements:接入接口,接上接口的类必须实现接口的抽象方法
- instanceof:用于判断类与对象的关系,若a是b的一个实例则为true
- interface:接口中的方法默认为static
- native:让Java运行非Java实现的方法
- strictfp:遵循IEEE-754标准来执行,提高浮点运算的精度,并且减少不同硬件平台之间由于浮点运算带来的差异
- synchronized:保证原子性和安全性,保证了同一时刻只有一个线程执行该代码。
- volatile:关键字修饰的变量在多线程中保持同步
-
标识符
由任意顺序的大小写字母、数字、下画线(_)和美元符号($ )组成,但标识符不能以数字开头,也不能是Java 中的关键字。
1.包名-所有字母一律小写,例如 com.itheima. example01。
2.类名和接口名-每个单词的首字母都要大写,例如 ArrayList、Iterator。
3.变量名和方法名-的第一个单词首字母小写,从第二个单词开始每个单词首字母大写,例如 lineNumber、getLineNumber。
4.常量名-所有字母都大写,单词之间用下画线连接,例如 DAY_OF_MONTH。
-
switch
switch(expression){case value ://语句break; //可选case value ://语句break; //可选//你可以有任意数量的case语句default : //可选//语句 }
-
for
for(int x=1; x<=10; x++) {System.out.println("HelloWorld");}