基本语法和 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): 可选的关键字,用于控制访问权限和其他特性。例如,
public、private、protected等。 -
返回类型(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包文件名
相关文章:
基本语法和 package 与 jar
3.基本语法 1.输入输出 // 导入 java.util 包中的 Scanner 类 import java.util.Scanner;// 定义名为 ScannerExample 的公共类 public class ScannerExample {// 主方法,程序的入口点public static void main(String[] args) {// 创建 Scanner 对象,用…...
本地读取Excel文件并进行数据压缩传递到服务器
在项目开发过程中,读取excel文件,可能存在几百或几百万条数据内容,那么对于大型文件来说,我们应该如何思考对于大型文件的读取操作以及性能的注意事项。 类库:Papa Parse - Powerful CSV Parser for JavaScript 第一步…...
【开源】基于JAVA的停车场收费系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 停车位模块2.2 车辆模块2.3 停车收费模块2.4 IC卡模块2.5 IC卡挂失模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 停车场表3.2.2 车辆表3.2.3 停车收费表3.2.4 IC 卡表3.2.5 IC 卡挂失表 四、系统实现五、核心代码…...
基于java+Springboot操作系统教学交流平台详细设计实现
基于javaSpringboot操作系统教学交流平台详细设计实现 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统…...
Nginx 基础使用
目录结构 进入Nginx的主目录我们可以看到这些文件夹 client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp其中这几个文件夹在刚安装后是没有的,主要用来存放运行过程中的临时文件 client_body_temp fastcgi_temp proxy_temp scg…...
JavaEE:多线程(2):线程状态,线程安全
目录 线程状态 线程安全 线程不安全 加锁 互斥性 可重入 死锁 死锁的解决方法 Java标准库中线程安全类 内存可见性引起的线程安全问题 等待和通知机制 线程饿死 wait notify 线程状态 就绪:线程随时可以去CPU上执行,也包含在CPU上执行的…...
Flutter 自定义AppBar实现滚动渐变
1、使用ListView实现上下滚动。 2、使用Stack:允许将其子部件放在彼此的顶部,第一个子部件将放置在底部。所以AppBar,写在ListView下面。 3、MediaQuery.removePadding:当使用ListView的时候发现,顶部有块默认的Padd…...
编程语言MoonBit新增矩阵函数的语法糖
MoonBit更新 1. 新增矩阵函数的语法糖 新增矩阵函数的语法糖,用于方便地定义局部函数和具有模式匹配的匿名函数: fn init {fn boolean_or { // 带有模式匹配的局部函数true, _ > true_, true > true_, _ > false}fn apply(f, x) {f(x)}le…...
Angular:跨域请求携带 cookie
新建拦截器,设置 XMLHttpRequest:withCredentials 属性 1. 新建文件夹 http-interceptors 该文件夹下可有多个不同用途的拦截器2. 新建拦截器 common.interceptor.ts import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from "an…...
【C++】list容器迭代器的模拟实现
list容器内部基本都是链表形式实现,这里的迭代器实现的逻辑需要注意C语言中指针的转换。 list容器如同数据结构中的队列,通常用链式结构进行存储。在这个容器中,我们可以模仿系统的逻辑,在头结点后设置一个“ 哨兵 ”,…...
Docker镜像操作
镜像名称 镜名称一般分两部分组成:[repository]:[tag]。 在没有指定tag时,默认是latest,代表最新版本的镜像。 这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。 镜像…...
【Java-框架-SpringSecurity】单点登录(认证和授权)- 随笔
项目文件; 【1】 【2】 【3】 【4】 【5】 【6】 【7】 【8】...
大数据开发之Scala
第 1 章:scala入门 1.1 概述 scala将面向对象和函数式编程结合成一种简洁的高级语言 特点 1、scala和java一样属于jvm语言,使用时都需要先编译为class字节码文件,并且scala能够直接调用java的类库 2、scala支持两种编程范式面向对象和函数式…...
数字时代的大对决
数字时代如今正酝酿着一场大对决,浏览器、艺术品、音乐平台和社交通信的巅峰之战正在发生。Brave、Yuga Labs、Audius和Discord分别对标着Chrome、Disney、Spotify和WhatsApp,这场数字时代的较量不仅涉及浏览器、艺术品、音乐平台和社交通信的竞争&#…...
网络防御保护1
网络防御保护 第一章 网络安全概述 网络安全(Cyber Security)是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断 随着数…...
解决Windows下Goland的Terminal设置为Git Bash失败
路径不要选错了: 如果还是不行: 把bash路径加进去试试 goland设置Terminal...
x-cmd pkg | jq - 命令行 JSON 处理器
目录 简介首次用户功能特点类似工具进一步探索 简介 jq 是轻量级的 JSON 处理工具,由 Stephen Dolan 于 2012 年使用 C 语言开发。 它的功能极为强大,语法简洁,可以灵活高效地完成从 JSON 数据中提取特定字段、过滤和排序数据、执行复杂的转…...
网络安全笔记
一、简介 网络安全是指通过管理和技术手段保护网络系统免受未经授权的访问、数据泄露、破坏或摧毁。随着互联网的普及,网络安全问题日益突出,对个人和企业信息安全构成了严重威胁。因此,了解和掌握网络安全知识对于保护个人信息和企业数据至…...
php基础学习之代码框架
一,标记 脚本标记(已弃用):<script language"php"> php代码 </script> 标准标记:<?php php代码 ?> 二,基础输出语句 不是函数,…...
LCD-LMD-PSO-ELM的电能质量分类,LCD特征提取,LMD特征提取,粒子群算法优化极限学习机
目录 背影 极限学习机 LCD-LMD-PSO-ELM的电能质量分类,LCD特征提取,LMD特征提取,粒子群算法优化极限学习机 主要参数 MATLAB代码 效果图 结果分析 展望 完整代码下载链接:LCD-LMD-PSO-ELM的电能质量分类,LCD特征提取,LMD特征提取,粒子群算法优化极限学习机资源-CSDN文库…...
如何一键下载国内主流视频平台的在线视频:Video-Downloader完全指南
如何一键下载国内主流视频平台的在线视频:Video-Downloader完全指南 【免费下载链接】Video-Downloader 下载youku,letv,sohu,tudou,bilibili,acfun,iqiyi等网站分段视频文件,提供mac&win独立App。 项目地址: https://gitcode.com/gh_mirrors/vi/V…...
丹青识画GPU算力优化部署教程:显存占用降低40%实操
丹青识画GPU算力优化部署教程:显存占用降低40%实操 1. 引言:当艺术邂逅算力,如何优雅地“瘦身”? 想象一下,你刚部署好一个能看懂画作、还能用书法题诗的AI应用——“丹青识画”。它融合了前沿的多模态AI与东方美学&…...
3分钟上手弹幕盒子:零基础高效制作自定义弹幕的免费工具
3分钟上手弹幕盒子:零基础高效制作自定义弹幕的免费工具 【免费下载链接】danmubox.github.io 弹幕盒子 项目地址: https://gitcode.com/gh_mirrors/da/danmubox.github.io 弹幕盒子是一款专业的在线自定义弹幕生成工具,以轻量化架构设计为核心&a…...
Java微服务在Istio中出现“偶发503 no healthy upstream”?7分钟定位Sidecar健康检查盲区与Liveness Probe冲突真相
第一章:Java微服务在Istio中偶发503问题的现象与影响在基于Istio构建的服务网格环境中,Java微服务(尤其是采用Spring Cloud Kubernetes或原生Spring Boot Istio Sidecar部署模式)频繁出现偶发性HTTP 503 Service Unavailable响应…...
Phi-3-mini-4k-instruct-gguf入门必看:q4-GGUF量化对中文语义保留的影响实测
Phi-3-mini-4k-instruct-gguf入门必看:q4-GGUF量化对中文语义保留的影响实测 1. 模型简介 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本,特别适合中文场景下的问答、文本改写、摘要生成等任务。这个经过量化的模型版本在…...
GAN训练过程可视化神器对比:GAN Lab和TensorFlow Playground到底怎么选?
GAN训练可视化工具深度评测:从交互设计到教学效果的全面对比 当开发者第一次接触生成对抗网络(GAN)时,往往会被其复杂的对抗训练机制所困扰。传统的静态图表和数学公式很难直观展示生成器与判别器之间微妙的博弈过程。这正是可视化…...
Java八股文面试题,堪称2026最强!!!
1、什么是 java 序列化,如何实现 java 序列化 难度系数:⭐ 序列化是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在…...
CTFshow Misc挑战:从WinRAR到明文攻击的实战解析
1. 初识CTFshow Misc挑战:压缩包破解的奥秘 第一次接触CTFshow的Misc题目时,我被那个看似普通的压缩包难住了整整两天。那是个名为6.zip的文件,用360解压提示需要密码,这种场景在CTF比赛中实在太常见了。很多新手遇到这种情况会直…...
深入解析RevokeMsgPatcher:Windows平台防撤回补丁的技术实现与架构设计
深入解析RevokeMsgPatcher:Windows平台防撤回补丁的技术实现与架构设计 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: ht…...
Kindle Comic Converter:漫画电子书制作的专业工具
Kindle Comic Converter:漫画电子书制作的专业工具 【免费下载链接】kcc KCC (a.k.a. Kindle Comic Converter) is a comic and manga converter for ebook readers. 项目地址: https://gitcode.com/gh_mirrors/kc/kcc Kindle Comic Converter(简…...
