发表时间:2022-03-25来源:网络
在程序设计语言中,变量(Variable)是在内存中动态存储值的地方。简单地理解,程序的作用就是对变量进行各种运算,所以我们首先来了解变量有哪些类型,如何定义变量。
Java要求在使用一个变量前要求必须声明它的类型。
声明一个变量就是向计算机申请内存来存储值,JVM会根据变量的类型为变量分配相应的存储空间。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符串等值。
Java中的数据类型分为两类:
基本数据类型(或者称为原生数据类型)引用数据类型在了解数据类型之前,我们先来看看如何声明一个基本数据类型变量。要想使用一个变量,就必须首先声明它。以下是几个声明变量的示例:
//VariableTest.java public class VariableTest { public static void main(String[] args) { int a = 1, b, c = 2; double pi = 3.14159; char x = 'x'; } }其中:
可以一次声明一个或者多个同一类型的变量,比如第一条语句声明了三个整数可以在声明的同时,进行初始化赋值,比如第二条语句,在声明一个double类型变量的同时,将其赋值为3.1415926如果变量在声明时没有进行初始化,则在使用前需要进行赋值,否则会编译报错,比如以下程序是不能通过编译的:
public class VariableTest { public static void main(String[] args) { int a; System.out.println(a); } }在使用前进行赋值就没有问题了:
public class VariableTest { public static void main(String[] args) { int a; a = 100; System.out.println(a); } }基本数据类型
数据类型是一门程序语言的基本构成元素,Java语言提供了八种基本类型,其中包括六种数字类型(四种整数型,两种浮点型),一种字符类型,还有一种布尔型。
整型变量默认为int类型。
byte、short、int和long都可以用十进制、二进制、八进制以及十六进制的方式来表示。当使用常量字面量时,前缀0b表示二进制,0表示八进制,而前缀0x代表十六进制。比如:
int decimal = 174; int binary = 0b10101110; int octal = 0256; int hexa = 0xAE;为什么174用二进制表示就是10101110呢?
174是由个位数的4、十位数的7和百位数的1构成:

如果使用二进制,则可以表达为:

上面图片中所有红色的数字就构成了二进制表示10101110。
哪如何将一个十进制数转换为二进制数呢?
将十进制数不断除以2,直到等于0,每次除法产生的余数从后往前合并在一起就是对应的二进制表示:

对于八进制和十六进制,原理是类似的。
一个浮点数字面量默认是double类型,如果要定义float类型则要在字面量最后添加f或者F:
double a = 1.23; float b = 1.23F; float c = 1.23; // 编译错误以上代码中,第三行代码将出现编译错误,因为1.23这个字面量是double类型的,不能将其赋值给float类型。
一个整数字面量默认是int类型,如果要定义长整形(long)则要在字面量最后添加l或者L。但是
int a = 100; long b = 100000L; long c = 100000;第三行代码long c = 100000;不会有编译错误,虽然字面量123是int类型的,但是当int类型赋值给long类型时,可以自动转换为long类型。
占用内存空间小的类型可以自动转换为占用空间大的类型,反之则不成立。你把一个变量的想象成一个箱子,更小的箱子里的东西可以放入到更大的箱子中,将更大的箱子里的东西放到更小的箱子则可能装不下。比如:
b = a;是合法的赋值a = b;则是非法的赋值,会有编译错误,这其实也是代码float c = 1.23;会发生编译错误的原因如果一定要将b的值(long类型)赋值给a,则要进行强制转换:
a = (int)b;b变量前的(int)表示将b的值强制转换为int类型。注意强制类型转换时,可能导致数据错误,比如b的值超过了int类型的表示范围,此时就会进行数据截断(丢掉箱子装不下的东西),我们应该尽量避免这种情况。

基本类型之间的自动转换关系如下:

以上8种基本类型都不是类,Java提供了对应的类,称之为包装类。包装类可以认为是将基本类型转换成的一个引用类型。

每种基本类型所占用的内存空间大小,最大值和最小值,可以通过其包装类来访问。比如为了我们可以这样访问int类型的相关信息:
System.out.println("int类型的二进制位数:" + Integer.SIZE); System.out.println("int类型的最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("int类型的最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);注意,将一个整数和字符串通过+号拼接起来,整数可以自动转换为字符串。
以Integer和int为例,我们可以将两者进行转换,例如:
Integer in = new Integer(100); // 将int转换为包装类 int m = in.intValue(); // 获取Interger的int值 String s = “123”; int n = Integer.parseInt(s); // 将字符串转换为整数 String s2 = Interger.toString(n); // 将整数转换为字符串其它数据类型的操作是类似的,不再一一赘述。
数组(Array)是程序设计语言中必不可少的一种结构,它用来描述一系列相同类型的数据。一个数组一旦创建后,它的长度是固定的。
下面的代码,定义了一个长度为10的数组,数据的下标编号从0开始,9是最后一个元素。下面是一个Java语言数组的例子:
int[] anArray; anArray = new int[10];//初始化一个长度为10的整形数组 anArray[0] = 100;//初始化第一个变量 anArray[1] = 200; anArray[2] = 300; anArray[3] = 400; anArray[4] = 500; anArray[5] = 600; anArray[6] = 700; anArray[7] = 800; anArray[8] = 900; anArray[9] = 1000;这样初始化数组比较麻烦,下面是另外一种更加便捷的方式:
int[] anArray = { 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};这样会自动创建一个长度为10的int数组。我们通过anArray.length可以得到数组的长度。
一个字符串就是一个字符序列,字符串被广泛应用于 Java 编程。Java语言将字符串作为String类型的对象进行处理。
String并不是基本的数据类型,是一个类。最常用的创建字符串对象的方法如下:
String str = "abc";字符串可以通过+和+=操作符进行拼接,比如:
String str1 = "abc"; String str2 = str1 + "def"; str1 += "def";最后str1和str2所指向的字符串内容为”abcdef”。
字符串和基本数据类型也能通过+进行拼接操作,比如:
int a = 100; String str = "a=" + a;str字符串的内容为”a=100″。即基本类型和字符串类型相加时,基本类型会自动转换为其字符串表示,在这个例子中相当于:
String str = "a=" + "100";回顾包装类这一小节的代码:
System.out.println("int类型的最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);就是将字符串和数据类型的拼接。
String类的实例是一个不可变的对象,意味着对String的操作都会产生一个新的String对象。
例如,String有一个reverse()方法
String str = "123"; str.reverse(); // 进行反转操作会产生一个新的对象 System.out.println(str); // str本身不可变,所以打印出来依然是123 String str2 = str.reverse(); // 将产生的新对象赋值给一个新的引用变量 System.out.println(str2); // str2的内容为321我们已经知道如何向控制台输出信息,那么如何从控制台获取输入呢?
为了获取控制台输入,首先需要一个创建一个Scanner对象:
Scanner scanner = new Scanner(System.in);Scanner对象可以读取用户在命令行输入的各种数据类型,比如:
通过nextInt()方法读取整数通过nextFloat()方法读取浮点数其它基本数据类型的读取是类似的,调用对应的方法即可。
Scanner对象也可以读取用户输入的字符串:
通过next()方法读取一个字符串通过nextLine()读取完整的一行,即用户输入回车键之前的所有输入信息(不包括回车键),以String返回下面的代码,从控制台读入一个整数,然后打印:
public class HelloWorld { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int number = scan.nextInt(); System.out.println(number); scan.close(); } }
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14