java技能树

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虚拟机将编译好的字节码文件加载到内存)**进行解释执行,并将结果显示出来

  1. Java 虚拟机(Java Virutal Machine)简称 JVM ,用于执行 Java 字节码
  2. Java 运行时环境(Java Runtime Evironment)简称 JRE ,用于运行 Java 程序,包含 JVM
  3. 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");}
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/185860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员养生之道

程序员养生之道——如何保持健康的生活方式 摘要&#xff1a; 随着互联网行业的快速发展&#xff0c;越来越多的人选择从事程序员这个职业。然而&#xff0c;长时间的工作和高强度的压力容易导致程序员出现亚健康状况&#xff0c;如头发稀疏、视力下降、肥胖等问题。因此&#…

从谷歌搜索结果出现 AI 生成的图片谈起:AI的利与弊

随着人工智能&#xff08;AI&#xff09;的不断发展&#xff0c;其应用领域也越来越广泛。谷歌搜索是现代人日常生活中的一个常用工具&#xff0c;经常用于获取各种信息。最近&#xff0c;谷歌搜索结果中甚至出现了由AI生成的图片&#xff0c;这引发了人们对AI技术的讨论。 首…

轧钢厂数字化转型 离不开这类几何尺寸测量仪的使用

从“钢铁是怎样炼成的”到“智慧钢铁如何炼成”&#xff0c;传统钢铁冶炼正在完成数智赋能的“华丽转身”。而要想完成数字化转型&#xff0c;就离不开产线的升级&#xff0c;智能化数字化的产线更是离不开重要的品质检测仪&#xff0c;而在一些规则长材的检测中&#xff0c;更…

昨日作业分析

自己封装response response.py from django.shortcuts import HttpResponse import jsonclass MyResponse(HttpResponse):def __init__(self,data):res json.dumps(data,ensure_asciiFalse)return super().__init__(res) views.py from django.shortcuts import render# C…

单片机开发方式

一、不借助芯片厂家的函数库 在进行单片机开发时&#xff0c;如果选择不使用SPL、HAL等开发库&#xff0c;可以采用以下替代方案&#xff1a; 寄存器级编程&#xff1a;使用寄存器级编程&#xff0c;直接操作硬件寄存器来配置和控制外设。每个外设都有一组寄存器&#xff0c;用…

【09】Python流程控制

【09】Python流程控制 文章目录 1.条件语句1.1 `if`语句1.2 `if-else`语句1.3 `if-elif-else`语句1.4 `pass`关键字2.函数补充2.1 `input()`函数2.2 `range()`函数3.循环语句3.1 `for`循环3.2 `while`循环3.3`break`和`continue`语句3.3.1 `break`3.3.2`continue`4. 列表的

[UGUI]Unity背包系统制作详细步骤

二、背包制作 1.创建空物体&#xff0c;然后创建UI-Image 制作背包整个背包所在的父UI的背景图 选中BG&#xff0c;找到他的锚点设置&#xff0c;按住Alt键&#xff0c;点击右下角的适配&#xff0c;让锚点和内容都匹配画布 PS&#xff1a;不按Alt键是设置一个元素的锚点位…

leetcode算法之链表

目录 1.两数相加2.两两交换链表中的节点3.重排链表4.合并K个升序链表5.K个一组翻转链表 1.两数相加 两数相加 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(…

java mail集成james判断邮件是否发送成功

项目场景&#xff1a; java mail集成james邮件服务器&#xff0c;发送邮件时需要判断邮件是否发送成功。我们会发现JavaMail给用户发送邮件&#xff0c;但是调用Transport类的sendMessage方法发送的邮件是没有返回值的&#xff0c;所以判断不了。 但是我们可以用另一个解决方案…

TDI网络过滤驱动应用(一)

文章目录 TDI网络过滤驱动应用1. 技术概览2. 数据包的抓取3. 应用实例3.1 TrafficShaper(限流)3.2 DnsRedirector(DNS重定向)3.3 TcpRedirector(TCP重定向) 4. 总结与参考 TDI网络过滤驱动应用 在前面的文章中&#xff0c;我们分析了TDI网络过滤驱动的基本开发框架以及TDI网络…

C/C++ 实现FTP文件上传下载

FTP&#xff08;文件传输协议&#xff09;是一种用于在网络上传输文件的标准协议。它属于因特网标准化的协议族之一&#xff0c;为文件的上传、下载和文件管理提供了一种标准化的方法&#xff0c;在Windows系统中操作FTP上传下载可以使用WinINet库&#xff0c;WinINet&#xff…

微服务--07--Seata 分布式事务

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 分布式事务1.认识Seata2.部署TC服务2.1.准备数据库表2.2.准备配置文件2.3.Docker部署 3.微服务集成Seata3.1.引入依赖3.2.改造配置3.3.添加数据库表3.4.测试 分布式…

什么是网络安全 ?

网络安全已成为我们生活的数字时代最重要的话题之一。随着连接设备数量的增加、互联网的普及和在线数据的指数级增长&#xff0c;网络攻击的风险呈指数级增长。 但网络安全是什么意思&#xff1f; 简而言之&#xff0c;网络安全是一组旨在保护网络、设备和数据免受网络攻击、…

Zabbix“专家坐诊”第213期问答汇总

问题一 Q&#xff1a;Zabbix报错&#xff1a;Zabbix server is not running :the information displayed may not be current&#xff0c;是什么问题呢&#xff1f; A&#xff1a; 1、数据库软件问题导致导入的zabbix数据库不完整2、zabbix Server配置问题3、zabbix-server没…

大数据基础设施搭建 - Maxwell

文章目录 一、上传压缩包二、解压压缩包三、启用MySQL Binlog3.1 修改MySQL配置文件3.2 重启MySQL服务3.3 测试 四、创建Maxwell所需数据库和用户4.1 创建数据库4.2 调整MySQL数据库密码级别4.3 创建Maxwell用户并赋予其必要权限4.4 测试 五、修改配置文件5.1 修改Maxwell配置文…

【【FPGA的 MicroBlaze 的 介绍与使用 】】

FPGA的 MicroBlaze 的 介绍与使用 可编程片上系统&#xff08;SOPC&#xff09;的设计 在进行系统设计时&#xff0c;倘若系统非常复杂&#xff0c;采用传统 FPGA 单独用 Verilog/VHDL 语言进行开发的方式&#xff0c;工作量无疑是巨大的&#xff0c;这时调用 MicroBlaze 软核…

laravel 重写批量添加,自动维护时间戳

laravel 自带的批量添加是不会自动维护时间戳的&#xff0c;意思是说&#xff0c;使用laravel的批量添加&#xff0c;时间戳字段不会插入&#xff0c;也不会在更新的时候进行更新。 使用继承或者trait来解决这个问题&#xff0c;在这里感谢Mr.wen <?php namespace App\Mo…

作 业

1. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。 mysql> SELECT d.deptno AS 部门编号, d.dname as 部门名称, d.loc as 部门位置, COUNT(e.empno) as 部门人数 FROM dept d JOIN employee e ON d.deptno e.deptno GROUP BY d.deptno, d.dname…

LeetCode 1657. 确定两个字符串是否接近:思维题

【LetMeFly】1657.确定两个字符串是否接近&#xff1a;思维题 力扣题目链接&#xff1a;https://leetcode.cn/problems/determine-if-two-strings-are-close/ 如果可以使用以下操作从一个字符串得到另一个字符串&#xff0c;则认为两个字符串 接近 &#xff1a; 操作 1&…

nvm 下载node时候下载不到npm包的解决方法

个人博客链接 公众号-nvm 下载node时候下载不到npm包的解决方法 求关注 可以跳过的背景 最近项目比较有空&#xff0c;所以就可以有时间写一些demo&#xff0c;主要测试下react的一些语法&#xff0c;毕竟自己上次写react已经是22年的7月份了,期间对于react-router等的hook…