基本语法和 package 与 jar

3.基本语法

1.输入输出
java 复制代码
// 导入 java.util 包中的 Scanner 类
import java.util.Scanner;

// 定义名为 ScannerExample 的公共类
public class ScannerExample {
    // 主方法,程序的入口点
    public static void main(String[] args) {
        // 创建 Scanner 对象,用于从标准输入流(键盘)读取用户输入
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入姓名,并将输入的字符串赋值给变量 name
        System.out.print("Enter your name: ");
        String name = scanner.next();

        // 提示用户输入年龄,并将输入的整数赋值给变量 age
        System.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个字节表示 [-2^7,2^7) 即 [-128,128)
short 整数类型,用2个字节表示 [-2^15,2^15)
int 整数类型,用4个字节表示 [-2^31,2^31)
long 整数类型,用8个字节表示 [-2^63,2^63) L
float 浮点小数,用4个字节表示 [-1.9999999 * 2^127,1.9999999 * 2^127] F
double 浮点小数,用8个字节表示 [-1.9999999 * 2^1023,1.9999999 * 2^1023] D
3.运算符

/

java 复制代码
int a = 5 / 3

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

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

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

java 复制代码
jshell> 5.0 / 3.0
$40 ==> 1.6666666666666667

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

java10后可使用var定义变量

数字格式化

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

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

例子

java 复制代码
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语句用于在满足某个条件时执行特定的代码块。

java 复制代码
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语句用于根据表达式的值执行不同的代码块。

java 复制代码
int day = 3;

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

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

java 复制代码
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循环通常用于已知循环次数的情况。

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

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

java 复制代码
int i = 0;

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

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

java 复制代码
int i = 0;

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

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

java 复制代码
int[] numbers = {1, 2, 3, 4, 5};

for (int num : numbers) {
    System.out.println("数组元素:" + num);
}

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

6.方法的定义和调用

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

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

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

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

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

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

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

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

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

下面是一个示例:

java 复制代码
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方法接收一个字符串参数并在控制台打印该消息。

注意:

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

4. package 与 jar

1. package

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

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

java 复制代码
|- 包1
    |- 从属于包1 的类
|- 包2
    |- 从属于包2 的类

语法:

java 复制代码
package 包名; // 告诉下面的类从属于此包

class 类 {
    
}

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

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

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

java 复制代码
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 复制代码
java -jar jar包文件名
相关推荐
吾日三省吾码3 小时前
JVM 性能调优
java
弗拉唐4 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi774 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
少说多做3435 小时前
Android 不同情况下使用 runOnUiThread
android·java
知兀5 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
蓝黑20205 小时前
IntelliJ IDEA常用快捷键
java·ide·intellij-idea
Ysjt | 深5 小时前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++
shuangrenlong5 小时前
slice介绍slice查看器
java·ubuntu
牧竹子5 小时前
对原jar包解压后修改原class文件后重新打包为jar
java·jar