Java基础23

Java基础

练习4:输入圆的半径,计算圆的周长和面积。

package com.lovoinfo;

import java.util.Scanner;

public class CalcCircle {

    private static final double PI = 3.14;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入圆的半径: ");
        double radius = sc.nextDouble();
        double area = PI * radius * radius;
        double circumference = 2 * PI * radius;
        System.out.println("周长: " + circumference);
        System.out.println("面积: " + area);
        sc.close();
    }
}

练习5:输入三个整数,按从小到大的顺序输出。

package com.lovo;

import java.util.Scanner;

public class SortThreeNumber {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入三个数: ");
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        if(a > b) {
            int temp = a;
            a = b;
            b = temp;
        }
        if(a > c) {
            int temp = a;
            a = c;
            c = temp;
        }
        if(b > c) {
            int temp = b;
            b = c;
            c = temp;
        }
        System.out.printf("%d\t%d\t%d\n", a, b, c);
        sc.close();
    }
}

作业:输入三个整数,输出其中最大的数。

第三天:程序逻辑-1(分支和循环)

  1. 程序的结构
  2. 流程图
  3. 分支结构
  4. 循环结构
  5. 多重循环结构

练习1:分段函数求值。

f(x)=3x+5x15x3(x<1)(1x1)(x>1)
package com.lovoinfo;

import java.util.Scanner;

public class Fx {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("x = ");
        double x = sc.nextDouble();
        double y;
        if(x < -1) {
            y = 3 * x + 5;
        }
        else if(x <= 1) {
            y = x - 1;
        }
        else {
            y = 5 * x - 3;
        }
        System.out.println("f(x) = " + y);
        sc.close();
    }
}

练习2:个人所得税计算。在我国,个人所得税的起征点是3500元,计算公式是:
个人所得税 = (工资收入 - 五险一金 - 个税起征点) * 税率 - 速算扣除数
其中,税率和速算扣除数可以查下表得到:

级数含税级距税率速算扣除数
1不超过1500元的30
2超过1500元至4500元的部分10105
3超过4500元至9000元的部分20555
4超过9000元至35000元的部分251005
5超过35000元至55000元的部分302755
6超过55000元至80000元的部分355505
7超过80000元的部分4513505
package com.lovoinfo;

import java.util.Scanner;

public class Tax {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入工资: ¥");
        double salary = sc.nextDouble();
        double add = salary - salary * 0.08 - 3500;
        double tax;
        if(add <= 0) {
            tax = 0;
        }
        else if(add <= 1500) {
            tax = add * 0.03;
        }
        else if(add <= 4500) {
            tax = add * 0.1 - 105;
        }
        else if(add <= 9000) {
            tax = add * 0.2 - 555;
        }
        else if(add <= 35000) {
            tax = add * 0.25 - 1005;
        }
        else if(add <= 55000) {
            tax = add * 0.3 - 2755;
        }
        else if(add <= 80000) {
            tax = add * 0.35 - 5505;
        }
        else {
            tax = add * 0.45 - 13505;
        }
        System.out.printf("需要缴纳的个人所得税: ¥%.2f元\n", tax);
        sc.close();
    }
}

作业:输入一个百分制的成绩,将其转换成对应的等级,规则如下表所示:

成绩等级
90-100A
80-89B
60-79C
<60D
package day0423;

import java.util.Scanner;

public class mark {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        int a = sc.nextInt();
        if(a<100&&a>=90){
            System.out.println("A");
            }
        else if(a<90&&a>=80){
            System.out.println("B");
            }
        else if(a<80&&a>=60){
            System.out.println("C");
            }
        else if(a<60){
            System.out.println("D");
            }
        sc.close();

    }

}

练习4:输入成绩等级输出对应的评语,规则如下表所示:

成绩等级评语
A该生成绩优异,学习踏实认真
B该生积极上进,学习态度较好
C该生学习努力,成绩有待提高
D该生成绩稳定,动手能力很强
package day0423;

import java.util.Scanner;

public class sS {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入成绩等级");
        char level = sc.next().charAt(0);
        switch(level){
        case'a':
        case'A':
            System.out.println("该生学习优异,学习踏实认真");
            break;
        case'b':
        case'B':
            System.out.println("该生积极上进,学习态度较好");
            break;
        case'c':
        case'C':
            System.out.println("该生学习努力,成绩有待提高");
             break;
        case'd':
        case'D':
            System.out.println("该生成绩稳定,动手能力很强");
            break;
            default:
                System.out.println("逗比,输错了");
                sc.close();

        }

    }

}

练习5:将一颗色子掷60000次,统计每一面出现的次数。

package com.lovoinfo;

public class ThrowDie {

    public static void main(String[] args) {
        int f1 = 0, f2 = 0, f3 = 0, f4 = 0, f5 = 0, f6 = 0;
        for(int i = 1; i <= 60000; i++) {
            int face = (int)(Math.random() * 6 + 1);
            switch(face) {
            case 1: f1++; break;
            case 2: f2++; break;
            case 3: f3++; break;
            case 4: f4++; break;
            case 5: f5++; break;
            case 6: f6++; break;
            }
        }
        System.out.println("1点出现了" + f1 + "次");
        System.out.println("2点出现了" + f2 + "次");
        System.out.println("3点出现了" + f3 + "次");
        System.out.println("4点出现了" + f4 + "次");
        System.out.println("5点出现了" + f5 + "次");
        System.out.println("6点出现了" + f6 + "次");
    }
}

第四天:程序逻辑-2(分支和循环)

  1. 练习1:猜数字(人猜/机器猜)
  2. 练习2:人机猜拳
  3. 练习3:Craps赌博游戏
  4. 练习4:九九表
  5. 练习5:百钱百鸡

第五天:数组、方法和字符串

  1. 一维数组
  2. 二维数组
  3. 方法的定义和使用
  4. 方法的递归调用
  5. 字符串用法及常用方法

第六天:面向对象入门

  1. 基本概念
  2. 定义类
  3. 创建和使用对象
  4. 实例1:时钟
  5. 实例2:游泳池

第七天:深入面向对象-1

  1. 继承
  2. 多态
  3. 实例1:绘图系统
  4. 实例2:工资结算
  5. 实例3:图书打折

第八天:深入面向对象-2

  1. 接口
  2. 抽象类
  3. 面向对象的设计原则
  4. UML
  5. 实例:绘图系统

Java基础思维导图

这里写图片描述

### 2023Java基础知识复习 #### 平台无关性与虚拟机支持 Java程序能够跨平台运行,这是因为Java编译后的字节码可以在不同操作系统上的Java虚拟机(JVM)上解释执行。这种特性使得开发者无需针对特定的操作系统编写代码,提高了开发效率和软件的可移植性[^1]。 ```java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } } ``` 这段简单的`HelloWorld`例子展示了如何创建一个基本的Java应用程序。它将在任何安装有JVM的环境中正确显示消息。 #### 方法重载机制 在同一类内允许定义多个具有相同名称但参数列表不同的方法称为方法重载。这不仅限于构造函数,也适用于其他成员方法。通过改变输入参数的数量或类型,可以调用相应版本的方法来满足具体需求[^2]。 ```java class Calculator { int add(int a, int b){ return a+b; } double add(double a,double b){ return a+b; } // 更多重载... } ``` 上述代码片段说明了一个名为`Calculator`的类中的两个`add()`方法实现了数值相加功能;第一个接受整数类型的参数并返回其总和作为整型结果,第二个则用于浮点运算。 #### 避免内存泄漏问题 不当管理对象生命周期可能导致严重的性能瓶颈甚至应用崩溃。例如,在持续向集合中添加新元素而不清理旧数据的情况下会造成内存泄露现象。为了防止这种情况发生,应当确保及时释放不再使用的资源,并考虑采用更高效的数据结构或算法设计[^3]。 ```java import java.util.ArrayList; public class BetterMemoryManagement { private final ArrayList<byte[]> managedList = new ArrayList<>(); /** * 添加指定大小的新数组到列表中。 */ public synchronized void manage(long sizeInMB) { byte[] tempArray = new byte[(int)(sizeInMB * Math.pow(1024, 2))]; managedList.add(tempArray); // 清理过期条目或其他优化措施 cleanup(); } protected void cleanup(){ // 实现具体的清除策略 } } ``` 在这个改进的例子中,引入了同步控制以及对内部存储空间的有效管理和定期清理过程,从而减少了潜在的风险因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值