基本语法和 package 与 jar

3.基本语法

1.输入输出
// 导入 java.util 包中的 Scanner 类
import java.util.Scanner;// 定义名为 ScannerExample 的公共类
public class ScannerExample {// 主方法,程序的入口点public static void main(String[] args) {// 创建 Scanner 对象,用于从标准输入流(键盘)读取用户输入Scanner scanner = new Scanner(System.in);// 提示用户输入姓名,并将输入的字符串赋值给变量 nameSystem.out.print("Enter your name: ");String name = scanner.next();// 提示用户输入年龄,并将输入的整数赋值给变量 ageSystem.out.print("Enter your age: ");int age = scanner.nextInt();// 输出包含用户输入信息的欢迎消息到控制台System.out.println("Hello, " + name + "! You are " + age + " years old.");// 关闭 Scanner 对象,释放资源scanner.close();}
}
2.类型

字符类型

char String

字符值:单引号里必须有一个字符

字符传值:双引号里可以有零个、一个、多个字符

数字类型

类型名说明数字范围类型后缀
byte整数类型,用1个字节表示[-27,27) 即 [-128,128)
short整数类型,用2个字节表示[-215,215)
int整数类型,用4个字节表示[-231,231)
long整数类型,用8个字节表示[-263,263)L
float浮点小数,用4个字节表示[-1.9999999 * 2^127,1.9999999 * 2^127]F
double浮点小数,用8个字节表示[-1.9999999 * 2^1023,1.9999999 * 2^1023]D
3.运算符

/

int a = 5 / 3

结果为 1,整数除法有两个注意点

  • 整数除法,只会保留商,而小数部分会被舍弃,并不考虑四舍五入
  • 除0是不合法的,会出错

小数加减乘除与整数类似,只是小数除法可以保留小数点后的数字,而且可以除零,例如

jshell> 5.0 / 3.0
$40 ==> 1.6666666666666667jshell> 5.0 / 0.0
$41 ==> Infinity
public class Divide {public static void main(String[] args) {System.out.println(5/3);//1System.out.println(5/3.0);//1.6666666666666667System.out.println(5.0/3);//1.6666666666666667System.out.println(5.0/3.0);//1.6666666666666667System.out.println(5.0/0);//InfinitySystem.out.println(5/0);//java.lang.ArithmeticException: / by zero}
}

java10后可使用var定义变量

数字格式化

对结果的数字进行格式化,让它以货币的格式来显示

需要借助核心类库中一个 NumberFormat 对象,字面意思是数字格式化,使用它的 getCurrencyInstance 方法来获取一个货币格式化对象,再使用它的 format 方法把 double 小数格式化为货币格式,格式化时也会保留两位小数

例子

System.out.println(NumberFormat.getCurrencyInstance(Locale.CHINA).format(1000000.00));  
System.out.println(NumberFormat.getCurrencyInstance(Locale.US).format(1000000.00));
System.out.println(NumberFormat.getCurrencyInstance(Locale.GERMANY).format(1000000.00));
System.out.println(NumberFormat.getCurrencyInstance(Locale.KOREA).format(1000000.00));

输出

¥1,000,000.00
$1,000,000.00
1.000.000,00 €
₩1,000,000

如果 Locale 省略不写,默认为中国

idea快捷键

ctrl+shift+enter:光标置下一行

alt+enter,引入局部变量:完成变量定义,快速生成前面的变量定义

ctrl+n,输入类的名称,可查看该类的源代码,此时,右键翻译(前提:安装插件translation),ctrl+F12即可查看该类的方法,已锁的锁为私有,不可被外部类使用,开锁的锁为公共的,可被外部类使用。

ctrl+q:光标置于方法上,ctr+q,即可查看该方法的说明解释

alt+enter:用于代码提示,可用于条件取反

4.条件语句

Java中有三种主要的条件语句:if语句、switch语句和三元运算符。

1. if语句:

if语句用于在满足某个条件时执行特定的代码块。

int x = 10;if (x > 0) {System.out.println("x是正数");
} else if (x < 0) {System.out.println("x是负数");
} else {System.out.println("x是零");
}
2. switch语句:

switch语句用于根据表达式的值执行不同的代码块。

int day = 3;switch (day) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;// ... 其他casedefault:System.out.println("不是有效的星期几");
}
3. 三元运算符:

三元运算符是一种简单的条件表达式,用于根据条件的真假选择不同的值。

int a = 5;
int b = 10;int max = (a > b) ? a : b;
System.out.println("最大值是: " + max);

在上述例子中,如果a > b为真,max将取值为a,否则取值为b

这些条件语句在Java中用于根据不同的条件执行不同的代码,使程序能够根据输入或运行时的情况做出不同的决策。

5.循环语句

Java中有几种常见的循环语句,主要包括for循环、while循环、do-while循环和增强型for-each循环。

1. for循环:

for循环通常用于已知循环次数的情况。

for (int i = 0; i < 5; i++) {System.out.println("迭代次数:" + i);
}
2. while循环:

while循环在循环开始前判断条件是否为真,只有在条件为真时才执行循环体。

int i = 0;while (i < 5) {System.out.println("迭代次数:" + i);i++;
}
3. do-while循环:

do-while循环先执行一次循环体,然后在循环迭代前检查条件。

int i = 0;do {System.out.println("迭代次数:" + i);i++;
} while (i < 5);
4. 增强型for-each循环:

用于遍历数组、集合等元素的简便方式。

int[] numbers = {1, 2, 3, 4, 5};for (int num : numbers) {System.out.println("数组元素:" + num);
}

这些循环语句在Java中用于处理不同类型的迭代和循环需求。选择使用哪种循环取决于具体的情况和需求。

6.方法的定义和调用

在Java中,方法(函数)的定义格式如下:

修饰符 返回类型 方法名(参数列表) {// 方法体// 可以包含一系列语句和逻辑// 返回语句用于指定方法返回值(如果返回类型不是void)return 返回值;
}

以下是对上述格式的解释:

  • 修饰符(Modifiers): 可选的关键字,用于控制访问权限和其他特性。例如,publicprivateprotected等。

  • 返回类型(Return Type): 指定方法返回的数据类型,如果方法不返回任何值,可以使用void

  • 方法名(Method Name): 给方法取一个唯一的标识符,用于调用该方法。

  • 参数列表(Parameter List): 括号内包含传递给方法的参数,如果方法不需要参数,括号内可以为空。

  • 方法体(Method Body): 花括号内包含方法的具体实现,即一系列语句和逻辑。

  • 返回值(Return Statement): 如果方法有返回类型(不是void),则使用return语句返回一个值。

下面是一个示例:

public class MyClass {// 方法的定义public int addNumbers(int a, int b) {int sum = a + b;return sum; // 返回值为两个数的和}// 无返回值的方法public void displayMessage(String message) {System.out.println("Message: " + message);}public static void main(String[] args) {MyClass myObject = new MyClass();// 调用方法int result = myObject.addNumbers(5, 7);System.out.println("Sum: " + result);myObject.displayMessage("Hello, Java!");}
}

在上述示例中,addNumbers方法接收两个参数并返回它们的和,而displayMessage方法接收一个字符串参数并在控制台打印该消息。

注意:

/**+tab 即可生成文档注释
对有返回值的方法,进行抛出异常。截断方法的执行。
throw new 异常类型("提示信息")
IllegalArgumentException 非法参数异常
throw new IllegalArgumentException("贷款金额必须 > 0");

4. package 与 jar

1. package

随着我们写的类越来越多,把他们都放在一块儿来管理,感觉比较的不规范,因此,我们要引入一个新的package语法,对源文件进行一个更好的管理。

其实这个package说白了就是Java中一种目录结构

|-1|- 从属于包1 的类
|-2|- 从属于包2 的类

语法:

package 包名; // 告诉下面的类从属于此包class{}

包的命名一般都是域名的倒置,如

  • baidu.com 域名的倒置就是 com.baidu
  • bilibilicom 域名的倒置就是 com.bilibili
2. import

与 package 关系非常密切的一个语法:import,如果你的类想使用另外一个类,而两个类不同包,这时就必须用 import,把另一个类导入进来才能使用

package com.itheima.a;import java.util.Scanner;class Calulator {public static void main(String[] args) {// 要用到 Scanner, 这时就用用到上面的 import 语句}
}
  • 有一种特殊情况不需要 import 导入,即 java.lang 包下的类使用时,都不需要 import
3. jar

代码写完了,我们最终要发布成品吧,那是把源文件直接给使用者吗?显然不是吧。最终交给 jvm 运行的是 class 类文件,我们会把这多个 class 类文件打成一个压缩包,交付给用户。

用 idea 可以方便地打包

步骤1:创建工件(artifact)

在这里插入图片描述

步骤2:构建工件
在这里插入图片描述
步骤3:运行 jar 包,需要客户电脑上安装好 jdk

java -jar jar包文件名

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

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

相关文章

远程git开发

两种本地与远程仓库同步 """ 1&#xff09;你作为项目仓库初始化人员&#xff1a;线上要创建空仓库 > 本地初始化好仓库 > 建立remote链接(remote add) > 提交本地仓库到远程(push)2&#xff09;你作为项目后期开发人员&#xff1a;远程项目仓库已经创…

OpenHarmony 鸿蒙使用指南——概述

简介 OpenHarmony采用多内核&#xff08;Linux内核或者LiteOS&#xff09;设计&#xff0c;支持系统在不同资源容量的设备部署。当相同的硬件部署不同内核时&#xff0c;如何能够让设备驱动程序在不同内核间平滑迁移&#xff0c;消除驱动代码移植适配和维护的负担&#xff0c;…

深入浅出理解目标检测的NMS非极大抑制

一、参考资料 物体检测中常用的几个概念迁移学习、IOU、NMS理解 目标定位和检测系列&#xff08;3&#xff09;&#xff1a;交并比&#xff08;IOU&#xff09;和非极大值抑制&#xff08;NMS&#xff09;的python实现 Pytorch&#xff1a;目标检测网络-非极大值抑制(NMS) …

【软考中级】3天擦线过软考中级-软件设计师

前提&#xff1a;已有数据结构、操作系统、计算机网络、数据库基础 &#xff08;风险系数较高&#xff0c;请谨慎参考&#xff09; 贴一个成绩单hhhh 弯路&#xff1a;很早之前有看过一遍网上的软考课程&#xff0c;也记录了一些笔记&#xff0c;然而听完还是啥都记不住。 推…

【超简版,代码可用!】【0基础Python爬虫入门——下载歌曲/视频】

安装第三方模块— requests 完成图片操作后输入&#xff1a;pip install requests 科普&#xff1a; get:公开数据 post:加密 &#xff0c;个人信息 进入某音乐网页&#xff0c;打开开发者工具F12 选择网络&#xff0c;再选择—>媒体——>获取URL【先完成刷新页面】 科…

Pycharm详细安装 配置教程

继上次安装完Anaconda之后&#xff0c;现在更新最新版本的pycharm的安装和使用教程~~~ Anaconda&#xff1a;是一个开源的Python发行版本&#xff0c;其中包含了conda、Python等180多个科学包及其依赖项。【Anaconda和Pycharm详细安装 配置教程_anconda安装时clear the packag…

【Emgu CV教程】6.1、图像平滑之添加雪花噪声

文章目录 前言一、什么样的图像需要平滑&#xff1f;二、平滑的办法有哪些三、制作需要平滑的图片1.制作微小斑点的噪声2.制作稍大一点的噪声 总结 前言 首先说三点&#xff1a; 图像平滑&#xff0c;一般就是指对图像进行模糊或去噪&#xff0c;平滑后的图像减少了噪声&…

​ElasticSearch

目录 简介 基本概念 倒排索引 FST 简介 ES是一个基于lucene构建的&#xff0c;分布式的&#xff0c;RESTful的开源全文搜索引擎。支持对各种类型的数据的索引&#xff1b;搜索速度快&#xff0c;可以提供实时的搜索服务&#xff1b;便于水平扩展&#xff0c;每秒可以处理 …

【深度学习:Collaborative filtering 协同过滤】深入了解协同过滤:技术、应用与示例

此图显示了使用协作筛选预测用户评分的示例。起初&#xff0c;人们会对不同的项目&#xff08;如视频、图像、游戏&#xff09;进行评分。之后&#xff0c;系统将对用户对项目进行评分的预测&#xff0c;而用户尚未评分。这些预测基于其他用户的现有评级&#xff0c;这些用户与…

npm install运行报错npm ERR! gyp ERR! not ok问题解决

执行npm install的时候报错&#xff1a; npm ERR! path D:..\node_modules\\**node-sass** npm ERR! command failed ...npm ERR! gyp ERR! node -v v20.11.0 npm ERR! gyp ERR! node-gyp -v v3.8.0 npm ERR! gyp ERR! not ok根据报错信息&#xff0c;看出时node-sass运行出现…

Thinkphp框架,最新ICP备案查询系统源码,附搭建教程

源码介绍 最新ICP备案查询系统源码 附教程 thinkphp框架 本系统支持网址备案&#xff0c;小程序备案&#xff0c;APP备案查询&#xff0c;快应用备案查询 优势&#xff1a; 响应速度快&#xff0c;没有延迟&#xff0c;没有缓存&#xff0c;数据与官方同步

基于SpringBoot Vue美食网站系统

大家好✌&#xff01;我是Dwzun。很高兴你能来阅读我&#xff0c;我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结&#xff0c;还为大家分享优质的实战项目&#xff0c;本人在Java项目开发领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#x…

【趣味游戏-08】20240123点兵点将点到谁就是谁(列表倒置reverse)

背景需求&#xff1a; 上个月&#xff0c;看到大4班一个孩子在玩“点兵点将点到谁就是谁”的小游戏&#xff0c;他在桌上摆放两排奥特曼卡片&#xff0c;然后点着数“点兵点将点到谁就是谁”&#xff0c;第10次点击的卡片&#xff0c;拿起来与同伴的卡片进行交换。他是从第一排…

【新书推荐】2.3节 二进制的简写和转换

本节内容&#xff1a;二进制 ■电子计算机为何采用二进制&#xff1a;电子计算机电路只有低电平和高电平两种状态&#xff0c;分别表示二进制数0和1。 ■二进制的简写形式&#xff1a;计算机内的数据都使用二进制数。但是二进制书写不便&#xff0c;通常我们采用十六进制作为二…

网络协议与攻击模拟_06攻击模拟SYN Flood

一、SYN Flood原理 在TCP三次握手过程中&#xff0c; 客户端发送一个SYN包给服务器服务端接收到SYN包后&#xff0c;会回复SYNACK包给客户端&#xff0c;然后等待客户端回复ACK包。但此时客户端并不会回复ACK包&#xff0c;所以服务端就只能一直等待直到超时。服务端超时后会…

React16源码: React中的completeUnitOfWork的源码实现

completeUnitOfWork 1 &#xff09;概述 各种不同类型组件的一个更新过程对应的是在执行 performUnitOfWork 里面的 beginWork 阶段它是去向下遍历一棵 fiber 树的一侧的子节点&#xff0c;然后遍历到叶子节点为止&#xff0c;以及 return 自己 child 的这种方式在 performUni…

PN532测试工具

PN532测试工具&#xff0c;可以读写卡&#xff0c;修改数据&#xff0c;格式化清卡 读写UID卡&#xff0c;CUID卡&#xff0c;锁UFUID卡 如下图&#xff0c;软件简单易用 可以对UID卡、CUID卡&#xff0c;FUID卡、UFUID卡读卡号&#xff0c;修改卡号 操作简单易用 软件下载地址…

Django开发_17_表单类

一、介绍 为了简化前端form表单代码 二、步骤 &#xff08;一&#xff09;创建form.py 创建一个表单类 from django import formsclass RegisterForm(forms.Form):reg_name forms.CharField(max_length10, label用户名)reg_pwd forms.CharField(max_length20, label密码…

System.Data.SqlClient.SqlException:“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误

目录 背景: 过程: SQL Express的认识: 背景: 正在运行程序的时候&#xff0c;我遇到一个错误提示&#xff0c;错误信息如下&#xff0c;当我将错误信息仔细阅读了一番&#xff0c;信息提示的很明显&#xff0c;错误出现的来源就是连接数据库代码这块string connStr "s…

供应链安全项目in-toto开源框架详解

引言&#xff1a;in-toto 是一个开源框架&#xff0c;能够以密码学的方式验证构件生产路径上的每个组件和步骤。它可与主流的构建工具、部署工具进行集成。in-toto已经被CNCF技术监督委员会 (Technical Oversight Committee&#xff0c;TOC)接纳为CNCF孵化项目。 1. 背景 由于…