基本语法和 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.mzph.cn/news/645755.shtml

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

相关文章

VMware虚拟机安装优麒麟(ubuntukylin)操作系统

1.镜像下载 官网:https://www.ubuntukylin.com/ 优麒麟官网提供的宣传视频:https://www.ubuntukylin.com/upload/video/202204/1650594049260581.mp4官网提供的视频后续随着版本的更新,此视频可能失效,去官网查看最新的即可,这不是重点 1.1搜索出优麒麟官网,下载镜像 下载…

Flutter中实现中国省份地图

效果展示(这里只展示局部&#xff0c;完全展示违规)&#xff1a; 可以点击省份改变颜色&#xff0c;更多功能可以自行拓展。 注&#xff1a;非完整中国地图&#xff01;&#xff01;&#xff01; 本文用于记录在Flutter项目中安卓端实现中国地图&#xff0c;因为实现过程是通过…

微软 AD 介绍 | 安全建议 | 防护

介绍&#xff1a; 什么是Active Directory&#xff08;AD&#xff09;&#xff1f; Active Directory 是由 微软开发的目录服务&#xff0c;用于存储和管理网络中的资源&#xff0c;如计算机、用户、组和其他网络对象。允许组织管理员轻松地管理和验证网络中的用户和计算机。 …

【C++】stack、queue的使用及模拟实现

目录 一、stack1.1 stack的使用1.2 stack的模拟实现 二、queue2.1 queue的使用2.2 queue的模拟实现 一、stack 1.1 stack的使用 stack是一种容器适配器&#xff0c;它的特点是后进先出&#xff0c;只能在容器的一端进行插入和删除操作。 stack的使用很简单&#xff0c;主要有…

openssl3.2/test/certs - 040 - EC cert with named curve signed by named curve ca

文章目录 openssl3.2/test/certs - 040 - EC cert with named curve signed by named curve ca概述笔记END openssl3.2/test/certs - 040 - EC cert with named curve signed by named curve ca 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! * \file D:\my_dev…

数列分段 Section II

题目描述 给定一个长度为N的正整数数列 A 1 ∼ N A_{1\sim N} A1∼N​&#xff0c;现要将其分成M&#xff08; M ≤ N M\leq N M≤N&#xff09;段&#xff0c;并要求每段连续&#xff0c;且每段和的最大值最小。最大值最小的定义如下&#xff1a;例如一个数列 4 2 4 5 1 4\…

【知识---GitHub不允许上传大于100M文件该如何解决】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言步骤 1: 安装 Git LFS步骤 2: 在 Git 项目中启用 LFS步骤 3: 创建并编辑 .gitattributes 文件步骤 4: 提交并推送到远程仓库步骤 5: 将大文件添加到仓库步骤 6:…

卫星影像离线瓦片如何调用?

我们曾为你分享了按区县购买卫星影像并在线调用的方法。 于是就有朋友问&#xff0c;卫星影像瓦片可以离线调用吗&#xff1f; 当然可以&#xff0c;这里就来分享一下卫星影像瓦片离线调用的方法。 卫星影像离线瓦片如何调用&#xff1f; 这里以OpenLayers、Mapbox和Cesiu…

java实现ftp协议远程网络下载文件

引言 在开发过程中&#xff0c;偶尔会遇到网络文件在FTP服务上存储着&#xff0c;对于这种情况想要下载到本地还有些麻烦&#xff0c;我们直接上世界上最简单的代码。 How to do 1.提前引入包 <!--hutool万能工具包--><dependency><groupId>cn.hutool<…

安卓移动设备使用DS file文件管理工具远程访问本地群晖NAS文件

文章目录 1. 群晖安装Cpolar2. 创建TCP公网地址3. 远程访问群晖文件4. 固定TCP公网地址5. 固定TCP地址连接6. 结语 DS file 是一个由群晖公司开发的文件管理应用程序&#xff0c;主要用于浏览、访问和管理存储在群晖NAS&#xff08;网络附加存储&#xff09;中的文件。这个应用…

搭建nodejs服务器

简单搭建nodejs服务器&#xff0c;用于爬虫js逆向. 1、安装镜像源 下载nrm npm install -g nrm 设置下载源&#xff1a;&#xff08;最好使用npm源或者淘宝源&#xff09; 例子&#xff1a;npm config set registry http://registry.npmjs.org 查看是否设置成功&#xff1a…

JVM内存模型解析

JVM内存模型解析 1. 引言 1.1 背景介绍 Java Virtual Machine&#xff08;JVM&#xff09;作为Java程序的运行环境&#xff0c;扮演着关键的角色。它不仅负责解释和执行Java字节码&#xff0c;还通过其独特的内存模型管理着程序运行过程中所需的各种资源。理解JVM内存模型是…

Mac 也能玩文明6!下载安装详细教程

最近朋友给我分享了一个 Mac 玩文明6的方法&#xff0c;丝毫不卡顿&#xff0c;非常流畅&#xff0c;分享给大家 文明6是最新的文明系列游戏&#xff0c;和以往的文明游戏一样&#xff0c;玩家将从石器时代创建文明&#xff0c;然后迈向信息时代&#xff0c;最终通过军事、经济…

openssl3.2/test/certs - 041 - 1024-bit leaf key

文章目录 openssl3.2/test/certs - 041 - 1024-bit leaf key概述笔记END openssl3.2/test/certs - 041 - 1024-bit leaf key 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! * \file D:\my_dev\my_local_git_prj\study\openSSL\test_certs\041\my_openssl_linux_…

netty的常用类以及执行流程

总体概述 类关系 给ServerBootstrap配置两个EventLoopGroup&#xff0c;一个建立连接&#xff0c;一个处理网络io。 EventLoopGroup给EventLoop分配线程。 在 Netty 中&#xff0c;EventLoop 通过不断轮询 Selector 来检测 Channel 上发生的事件&#xff0c;当 Channel 上的事…

考研C语言刷题基础篇之数组(一)

目录 第一题&#xff1a;用数组作为参数实现冒泡排序 不用函数的冒泡排序 冒泡排序原理&#xff1a; 错误的数值传参冒泡排序 错误的原因 就是什么是数组名 正确的数组传参的冒泡排序 数组的地址和数组首元素的地址的区别 第一题&#xff1a;用数组作为参数实现冒泡排…

npm ERR! code CERT_HAS_EXPIRED errno CERT_HAS_EXPIRED

npm ERR! code CERT_HAS_EXPIRED 和 npm ERR! errno CERT_HAS_EXPIRED 都是指npm 在尝试连接到 npm 仓库时遇到了 SSL 证书过期的问题。这可能是由于您使用的 npm 仓库的证书已过期&#xff0c;或者您的系统时间不正确。 解决此问题的方法如下 1.关闭 npm 的 SSL 验证 通常在…

Docker网络配置与自定义IP容器通信

目录 前言 一、docker网络配置 1. bridge 虚拟网桥 2. host 网络模式 3. none 网络模式 4. 自定义container网络模式 二、自定义IP容器通信 1. 自定义IP 2. 创建所需容器&#xff08;mysql&#xff0c;tomcat&#xff09; 3. 准备项目资源 4. 构建Nginx实现负载均衡…

this指向问题以及修改函数的this指向方法

1、什么是this this表示对象 取决于函数调用&#xff08;this表示对象>当前对象>当前环境对象>函数运行时环境对象&#xff09; this就是函数运行时所在的环境对象&#xff08;取决于函数调用>不同场合&#xff0c;this有不同的值&#xff09; 函数的不同使用场…

rsync命令常用参数详解

1、语法 Usage: rsync [OPTION]… SRC [SRC]… DEST or rsync [OPTION]… SRC [SRC]… [USER]HOST:DEST or rsync [OPTION]… SRC [SRC]… [USER]HOST::DEST or rsync [OPTION]… SRC [SRC]… rsync://[USER]HOST[:PORT]/DEST or rsync [OPTION]… [USER]HOST:SRC [DEST] or r…