【Java】在Java中处理变量的方式
首先
我是一个编程初学者。我正在在线学习编程,但我希望能进一步加深理解,并将所学之事留作备忘录,以便加深理解。同时,如果有任何错误之处,请指正。谢谢!
在Java中的变量
迄今为止,我主要进行了Ruby的基础学习。因此,我希望能够在与Ruby进行比较的同时,加深对Java变量的理解。
变量在编程语言中的处理方式因语言而异。根据处理方式进行分类,可以分为“动态类型语言”和“静态类型语言”两种类型,前者是Ruby,后者是Java。
听说Ruby和Java在分类上有着非常大的不同。
为了理解这些差异,我们将深入理解”数据类型”。
数据类型是什么?
数据类型是指存储在变量中的数据的类型。
在Ruby中,”数值1″和”字符1″在程序中被视为不同的事物。
数据类型是一种更详细地定义”数字”或”字符”等类型的概念,Java的基本数据类型有八种。
为什么需要数据类型?
数据类型是为了有效地利用计算机资源而设计的机制。
当我们运行程序时,变量的值将保存在计算机内部所称之为”内存”的部件中。有了数据类型,我们可以高效地利用这个内存。
我想将要处理的数值作为变量,这些数值大小各异。
在这里引发问题的是如何确定事先准备的箱子数量。
如果准备了更多的箱子,即使是大量的数字也可以储存,但如果其中放入较小的数字,就会产生浪费。
数据类型是为了减少浪费而设计的机制。在使用变量之前,事先确定要存储的值的范围,并通过分配相应数量的箱子来有效利用内存。
基本数据类型的种类是什么?

在处理较小数值的int类型中,使用”32位”内存,而在处理较大数值的long类型中,使用”64位”内存。因此,我们可以理解到随着处理数值的增加,所需的内存大小也会增加。
在使用Java时,要使用变量,需要先进行“声明”来告诉程序该变量将被处理成哪种数据类型,然后再使用。
然而,在Ruby中开始使用变量时,并没有声明数据类型。
Ruby不需要声明类型的原因是,Ruby和Java在处理数据类型上有很大的区别。
在Ruby和Java中,对于数据类型的处理方式有何不同?
在编程语言中,根据数据类型的处理方式,可以分为两种类型:”动态类型语言”和”静态类型语言”。
动态类型语言
Ruby是一种动态类型语言,它在程序运行时确定变量的数据类型。
a = 1
puts(a * 2)
# 2と出力される
a = "alphabet"
puts(a * 2)
# alphabetalphabetと出力される
前半和后半的代码都对变量a执行了”*2″操作。
然而,不同的处理方法被执行。
当变量a被赋值为”1″时,进行数值运算并输出为”2″。
当一方变量被赋值为 “alphabet” 时,进行字符串操作并输出为 “alphabetalphabet”。
这表示变量的数据类型可以根据赋予的值灵活地变化,进而基于该数据类型进行处理。
这种机制采用了变量的数据类型在程序执行时被确定的语言被称为动态类型语言。
静态类型编程语言
静态类型语言和动态类型语言不同,一旦确定变量的数据类型就无法更改。Java属于静态类型语言。
如果您试图将一个“字符串”赋值给最初声明为“整数”的变量,将会出现错误。
尽管可能会感到缺乏灵活性而感到不便,但它有一些优点,如处理速度更快,能够在执行前检测到由于数据类型不匹配而引起的错误。
由于Java是一种静态类型的编程语言,所以在开始使用变量之前需要进行“类型声明”。
理解Java的变量
无论是在Java还是Ruby中,变量的作用并没有改变。
然而,在Java中,如果不进行“声明”,就无法使用变量。
要声明一个变量,需要按照以下方式连续写出类型名称和变量名。
型名 変数名;
在Java中,命令的结尾需要加上分号(;),如果忘记写分号将会出错。但是在声明后,可以像Ruby一样进行处理。
在Java中,有一种类似于模板的东西必须以如下方式进行描述。
class Main {
public static void main(String[] args) {
//ここに処理を記述する
}
}
我会举一个例子来编写代码。
class Main {
public static void main(String[] args) {
int radius;
radius = 5;
System.out.println(radius * radius * 3.14);
}
}
System.out.println是一个输出方法,使用括号包围的内容进行输出,相当于Ruby的puts方法。
当执行上述代码时,会显示为”78.5″。
sh -c javac -classpath .:target/dependency/* -d . $(find . -type f -name '*.java')
java -classpath .:target/dependency/* Main
78.5
确认已执行的代码的含义。
int radius;
radius = 5;
System.out.println(radius * radius * 3.14);
①使用int radius;声明一个int类型的变量radius。
②使用radius = 5;将整数5赋值给变量radius。
③执行println语句,将计算结果输出。
在Java中使用变量时,首先需要声明变量的类型。
然而,Java中有一种称为“类型推断”的机制,可以省略与声明相关的代码。
类型推理是指根据类别的推理过程。
使用类型推断声明变量的方法如下:
var 変数名 = 値
可以用”var”来声明并赋予初始值。
当进行这样的描述时,数据类型会根据值的种类进行推断,并且会根据推断出的数据类型进行声明。
class Main {
public static void main(String[] args) {
var radius = 5;
System.out.println(radius * radius * 3.14);
}
}
使用var关键字可以根据赋值的值(本例中为5)推断出数据类型,因此不需要声明为int类型。
接下来,我们将确认推断出的数据类型。
class Main {
public static void main(String[] args) {
var radius = 5;
System.out.println(radius * radius * 3.14);
System.out.println(((Object)radius).getClass().getSimpleName());
}
}
這次添加的程式碼是用於檢查資料類型,僅在此部分使用。
sh -c javac -classpath .:target/dependency/* -d . $(find . -type f -name '*.java')
java -classpath .:target/dependency/* Main
78.5
Integer
当执行代码时,会显示如上所述的”Integer”,从而我们可以知道变量radius是以整数类型声明的。