Java 语言程序设计 学习总结

嗨,刚刚开始踏上Java学习之旅,我已经啃下了前两个章节,感觉就像是开启了一个全新的世界。想通过这篇总结和大家分享一下我的旅程,希望对你们也有点启发。

刚开始,我深入了解了Java的背景故事,感觉挺酷的,它从一个小项目成长为全球最受欢迎的编程语言之一。这不仅让我对Java充满了敬意,也让我对它的强大功能充满了期待。

 第1章 Java起步入门
1.弄懂 JRE、JDK、JVM 之间的区别与联系

JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。

JRE :英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。

JDK :英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。

显然,这三者的关系是:一层层的嵌套关系。JDK>JRE>JVM。

2.Java 为什么能跨平台,实现一次编写,多处运行?

  Java 能够跨平台运行的核心在于 JVM 。不是 Java 能够跨平台,而是它的 jvm 能够跨平台。我们知道,不同的操作系统向上的 API 肯定是不同的,那么如果我们想要写一段代码调用系统的声音设备,就需要针对不同系统的 API 写出不同的代码来完成动作。

  而 Java 引入了字节码的概念,jvm 只能认识字节码,并将它们解释到系统的 API 调用。针对不同的系统有不同的 jvm 实现,有 Linux 版本的 jvm 实现,也有 Windows 版本的 jvm 实现,但是同一段代码在编译后的字节码是一样的。引用上面的例子,在 Java API 层面,我们调用系统声音设备的代码是唯一的,和系统无关,编译生成的字节码也是唯一的。但是同一段字节码,在不同的 jvm 实现上会映射到不同系统的 API 调用,从而实现代码的不加修改即可跨平台运行。
接下来,我试着用文本编辑器写了点代码,然后在命令行里编译和运行。虽然这个过程有点老派,但确实让我对Java程序的运作有了更深的理解。不过,说实话,当我开始用Eclipse这样的IDE时,生活简直美好了许多。它让一切变得简单快捷,让我可以更专注于编码本身。



待我深入第二章,开始接触Java的语法,感觉就像是在学习一门全新的语言。我学会了如何定义变量,理解了各种数据类型,还有那些操作数据的运算符。有时候感觉自己就像是个魔法师,用代码操纵数据。

第2章 数据类型与运算符
1.数 据 类 型

(1)基本类型(8种)

整数类型:byte(8位), short(16位), int(32位), long(64位)

浮点类型:float(32位), double(64位)

字符类型:char(16位)

布尔类型:boolean

(2)复合类型

class(类)
interface(接口)
数组

2.类型转换
3.逻辑表达式(布尔值,不能是int等)
4.switch(expression)中的expression新版本类型都可以
5.break lab; 跳出多重循环


关于数据类型,Java那一套既有基本的,也有复杂的引用类型,让我觉得这门语言的设计既严谨又灵活。字符串和字面值的部分也挺有意思,让我开始尝试写一些简单的程序。
 

另外,了解到软件开发的整个流程,让我意识到编程不仅仅是写代码那么简单,它是一个从需求收集到产品发布的完整过程。


数据类型转换和运算符优先级的知识虽然有点枯燥,但我知道这是打好基础的必经之路。它们让我能写出更复杂、更精确的代码。

经典的课后习题

2.1 编写程序键盘输入一个double型的华氏温度,将其转换为摄氏温度,转换公式为:摄氏温度=(5/9)*(华氏温度-32)

public class TempConvert {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in) ;
        System.out.print("请输入华氏温度:") ;
        double t1 = input.nextDouble() ;
        double t2 = (5.0 / 9) * (t1 - 32) ;
        System.out.println("摄氏温度为:" + t2) ;
    }
}

2.4键盘输入圆柱底面半径和高,计算圆柱的体积

import java.util.Scanner;
public class Cylinder {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in) ;
        System.out.println("请输入圆柱的半径和高:") ;
        double radius = input.nextDouble() ;
        double height = input.nextDouble() ;
        System.out.println("圆柱的体积为:" + Math.PI * radius * radius * height) ;
    }
}

 2.3 读取三位的整数,将该整数的各位数字相加,例如:输入932,各位数字之和是14

import java.util.Scanner;
public class DigitSum {
    public static void main(String[] args){
        Scanner input =  new Scanner(System.in) ;
        System.out.print("请输入一个0~1000之间的整数:") ;
        int num = input.nextInt() ;
        if(num >=0 && num <= 9){
            System.out.println(num) ;
        }else if(num >= 10 && num <= 99){
            System.out.println(num/10 + num % 10) ;
        }else if(num >= 100 && num <= 999){
            System.out.println(num%10 + (num/10)%10 + num/100) ;
        }else if(num == 1000){
            System.out.println(1) ;
        }else{
            System.out.println("您输入的数据有误") ;
        }
    }
}

2.6键盘输入你的体重(千克)和身高(米),计算身体质量指数。公式为:BIM = 体重 / 身高的平方

import java.util.Scanner;
public class BodyMassIndex {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in) ;
        System.out.print("请依次输入您的体重和身高:") ;
        double mass = input.nextDouble() ;
        double height = input.nextDouble() ;
        double Bim = mass / (height * height) ;
        System.out.println(Bim) ;
    }
}

2.9 计算贷款的每月支付额。键盘输入年款的年利率,总金额,年数,程序计算出每月支付金额和总偿还金额。

public class ComputeLoan {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in) ;
        System.out.println("请输入贷款的年利率:") ;
        Double t1 = input.nextDouble() ;
        double t4 = t1 / 1200 ; //月利率
        System.out.println("请输入总金额:") ;
        Double t2 = input.nextDouble() ;
        System.out.println("请输入年数:") ;
        Double t3 = input.nextDouble() ;
        Double monthPayment = (t2 * t4) /(1 - (1 / Math.pow((1+t4), t3*12))) ;
        Double totalPayment = monthPayment * 12 * t3 ;
        System.out.println("月支付金额:" + monthPayment + "总偿还金额:" + totalPayment) ;
    }
}


总结我的旅程

总的来说,这两章让我对Java有了一个全面的初步了解。从最基本的安装配置到开始写一些简单的程序,我感觉自己每天都在进步。虽然路径还很长,但我已经迫不及待想要继续我的学习之旅了。

希望我的这篇小总结能给你们带来些灵感。记住,每个人的学习路径都是独一无二的,重要的是享受过程,不断探索和挑战自己。那么,我们Java的世界里见!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值