Java教程 第80页

Java 输入流

Java IO教程 – Java输入流 抽象基本组件是InputStream类。 InputStream | +--FileInputStream | +--ByteArrayInputStream | +--PipedInputStream | +--FilterInputStream | +--BufferedInputStream | +--PushbackInputStream | +--DataInputStream | +--ObjectInputStream 我们有FileInputStream,ByteArrayInputStream和PipedInputStream,FilterInputStream的具体类。 方法 超类InputStream包含从输入流读取数据的基本方法,所有具体类都支持这些方法。 对输入流的基本操作是从其读取数据。 InputStream类中定义的一些重要方法在下表中列出。 ID 方法/说明 1 read()读取一个字节并将读取的字节作为int返回。当到达输入流的结尾时,它返回-1。 2 read(byte[] buffer)读取最大值直到指定缓冲区的长度。它返回在缓冲区中读取的字节数。如果到达输入流的结尾,则返回-1。 3 read(byte [] buffer,int offset,int length)读取最大值到指定长度字节。 数据从偏移索引开始写入缓冲区。 它返回读取的字节数或-1,如果到达输入流的结束。 3 close()关闭输入流 4 available()返回可以从此输入流读取但不阻塞的估计字节数。

Java 下划线数字字面量

Java数据类型教程 – Java下划线数字字面量 我们可以在数字字面量中的两位数字之间使用下划线。 例如,一个int文字2014可以写成2_014,20_14,201_4。 允许以八进制,十六进制和二进制格式使用下划线。 int下划线大数字使得它们更容易阅读。 以下示例显示数字字面量中下划线的有效用法: int x1 = 2_014; // Underscore in deciaml format int x2 = 2___014; // Multiple consecutive underscores int x3 = 02_014; // Underscore in octal literal int x4 = 0b0111_1011_0001; // Underscore in binary literal int x5 = 0x7_B_1; // Underscores in hexadecimal literal byte b1 = 1_2_7; // Underscores in decimal format double d1 = 2_014.01_11; // Underscores in double literal 在数字字面量中只允许在数字之间使用下划线。

Java int数据类型

Java数据类型教程 – Java int数据类型 int数据类型是32位有符号Java原语数据类型。 int数据类型的变量需要32位内存。 其有效范围为-2,147,483,648至2,147,483,647(-231至231 – 1)。 此范围中的所有整数称为整数字面量。 例如,10,-200,0,30,19等是int的整数字面值。 一个整数字面量可以分配给一个int变量,如num1,像这样: int num1 = 21; 整数字面量 整数字面量也可以表示 十进制数字格式 八进制数字格式 十六进制数字格式 二进制数格式 当整数字面量以零开始并且至少有两个数字时,它被认为是八进制数格式。 以下代码行将十进制值17(八进制为021)分配给num1: // 021 is in octal number format, not in decimal int num1 = 021; 以下两行代码具有将值17分配给变量num1的相同效果: 以下值没有前导零,它是十进制数字格式。 int num1 = 17; 以下值具有前导零,因此它是一个八进制数字格式。八进制中的021与十进制中的17相同。 int num1 = 021; 八进制格式的int字面值必须至少有两位数字,并且必须以零开始以作为八进制数处理。 数字0在十进制数格式中被视为零,并且以八进制数格式将00视为零。 十六进制数字格式的所有int字面量都以0x或0X开头,它们必须至少包含一个十六进制数字。 十六进制数字格式使用16位数字,0-9和A-F(或a-f)。 字母A至F的情况无关紧要。 以下是以十六进制格式使用int字面量的示例: int num1 = 0x123; int num2 = 0xdecafe; int num3 = 0x1A2B; int num4 = 0X0123; 可以使用二进制数字格式表示一个int字面量。 所有二进制数字格式的int文字以0b或0B开头。 以下是使用二进制数字格式的int字面量的示例: int num1 = 0b10101; int num2 = 0b00011; int num3 = 0b10; int num4 = 0b00000010; Java有一个名为Integer的类,它定义两个常量来表示int数据类型的最大值和最小值,即Integer.MAX_VALUE和Integer.MIN_VALUE。例如, int max = Integer.MAX_VALUE; // Assigns maximum int value to max int min = Integer.MIN_VALUE; // Assigns minimum int value to min

Java long数据类型

Java数据类型教程 – Java long数据类型 long数据类型是64位有符号Java原始数据类型。 当对整数的计算结果可能超出int数据类型的范围时使用。 其范围是 -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (-263 to 263 – 1)。 long的范围内的所有整数称为long类型的整数字面量。 long类型的整数常数总是以L或小写l结尾。 以下是使用long类型的整数字面量的示例: long num1 = 0L; long num2 = 4L; long mum3 = -3; long num4 = 8; long num5 = -1L; 长整型字面量 long类型的整数字面量可以用八进制,十六进制和二进制格式表示。例如, long num1; num1 = 25L; // Decimal format num1 = 031L; // Octal format num1 = 0X19L; // Hexadecimal format num1 = 0b11001L; // Binary format 当long 字面量分配给long类型的变量时,Java编译器检查要分配的值,并确保它在长数据类型的范围内;否则会产生编译时错误。 注意 从int到long的赋值是有效的,因为可以存储在int变量中的所有值都可以存储在long变量中。然而,相反的是不是真的。 您不能简单地将存储在long变量中的值分配给int变量。 存在值溢出的可能性。 要将long变量的值赋给int变量,请在Java中使用“cast”,如下所示: num1 = (int)num2; Java有一个类Long,它定义了两个常量来表示长数据类型Long.MAX_VALUE和Long.MIN_VALUE的最大值和最小值。 long max = Long.MAX_VALUE; long min = Long.MIN_VALUE;

Java byte数据类型

Java数据类型教程 – Java byte数据类型 字节数据类型是8位有符号Java原语整数数据类型。 其范围为-128至127 (-27 to 27 – 1)。 字节类型是Java中可用的最小整数数据类型。 当程序使用其值在-128到127范围内的大量变量或在文件或网络中处理二进制数据时,使用字节变量。 没有字节字面量。我们可以将任何落在字节范围内的int字面量分配给一个字节变量。 例如, byte b1 = 125; byte b2 = -11; 如果我们为字节变量分配一个int字面量,并且该值超出了字节数据类型的范围,则Java会产生编译器错误。 我们只能在-128和127之间分配一个int字面量到一个字节变量。但是我们可以将存储在一个int变量中的值(其范围为-128到127)分配给一个字节变量。 在Java中,我们不能将较高范围数据类型的变量的值分配给较低范围数据类型的变量,因为在进行这种赋值时可能会损失精度。 要做这样的赋值从int到字节,我们必须使用cast。 num1到b1的分配可以改写如下: int num1 = 1; byte b1 = (byte)num1; // Ok Java有一个类 Byte ,它定义了两个常量来表示字节数据类型的最大和最小值,Byte.MAX_VALUE和Byte.MIN_VALUE。 byte max = Byte.MAX_VALUE; byte min = Byte.MIN_VALUE;

Java short数据类型

Java数据类型教程 – Java short数据类型 short数据类型是16位有符号Java原语整数数据类型。 其范围是-32768至32767(或-2 15 15 – 1)。 没有short字面量。但是,我们可以将任何位于short(-32768到32767)范围内的int字面量分配给一个短变量。 例如, short s1 = 11111; // ok short s2 = -11111; // ok 字节变量的值可以分配给短变量,因为字节数据类型的范围落在短数据类型的范围内。 Java有一个名为Short的类,它定义了两个常量来表示短数据类型Short.MAX_VALUE和Short.MIN_VALUE的最大值和最小值。 short max = Short.MAX_VALUE; short min = Short.MIN_VALUE;

Java double数据类型

Java数据类型教程 – Java double数据类型 double数据类型使用64位来存储浮点数。double值也称为双精度浮点数。 它可以表示数量小到4.9 x 10-324和大到1.7 x 10308大小。 它可以是正的或负的。 所有实数被称为双精度字面量。双精度字面量可以可选地以d或D结尾,例如1.27d。 后缀d或D在双精度字面量中是可选的。 19.7和19.7d代表相同的双精度字面量。 双精度字面量 双精度字面值可以用以下两种格式表示: 十进制数字格式 科学计数法 十进制数字格式的双精度字面值示例如下: double d1 = 8D; double d1 = 8D ; double d2 = 8.; double d3 = 8.0; double d4 = 8.D; double d5 = 78.9867; double d6 = 45.0; 8是一个int字面量,而8D,8和8.0是双精度字面量。 我们还可以使用科学记数法表达双精度字面量。 double d1 = 32.5E-1; double d2 = 0.325E+1; double d3 = 0.325E1; double d4 = 0.0325E2; double d5 = 0.0325e2; double d6 = 32.5E-1D; double d7 = 0.325E+1d; double d8 = 0.325E1d; double d9 = 0.0325E2d; 注意 double数据类型定义了两个零,两个无穷大和一个NaN。它们由Double类中的常量表示。 下表列出了这些常量及其含义。 常量 含义 Double.POSITIVE_INFINITY 正无穷大类型double Double.NEGATIVE_INFINITY 负无穷大类型double Double.NaN 不是类型double的数量 Double.MAX_VALUE 可以在双变量中表示的最大正值。这等于1.7 x 10308。 Double.MIN_VALUE 大于零的最小正值,可以在双变量中表示。 这等于4.9 x 10-324。 可以将所有整型类型(int,long,byte,short,char)和float的值分配给双精度数据类型的变量,而不使用显式强制转换。 int num1 = 15; double salary = num1; salary = 12345; double bigNum...

Java 基本数据类型

Java数据类型教程 – Java基本数据类型 Java定义了八种基本类型的数据:byte,short,int,long,char,float,double和boolean。 基本类型通常被称为简单类型。 这些可以分为四组: Integers – 包括byte,short,int和long,用于整数有符号数字。 Floating-point numbers – 包括float和double,它们表示具有分数精度的数字。 Characters – 包括char,它表示字符集中的符号,如字母和数字。 Boolean – 此组包括布尔值,它是用于表示true/false值的特殊类型。 你可以使用这些类型来构造数组或你自己的类类型。 基本类型表示单个值,而不是复杂对象。虽然Java完全是面向对象的,但原语类型不是。 原始类型具有显式范围和数学行为。 强类型 Java是一种强类型语言。 每个变量都有一个类型,每个表达式都有一个类型,每个类型都严格定义。 检查所有分配的类型兼容性。 没有自动强制或有冲突类型的转换。 Java编译器检查所​​有表达式和参数,以确保类型是兼容的。

Java 多维数组-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 多维数组

Java数据类型教程 – Java多维数组 我们可以在二维数组中存储表格数据。 使用数组声明中每个维度的一对括号[]来声明多维数组。 例如,如下所示定义int的二维数组: int[][] table; 这里,table是一个引用变量,可以保存对int的二维数组的引用。 可以创建具有三行和两列的二维数组int,如下所示: table = new int[3][2]; 多维数组中每个维度的索引都是从零开始的。 表数组的每个元素可以作为表[rownumber] [columnNumber]访问。 行号和列号始终从零开始。 例如,以下代码将值分配给表数组中的第一行和第二列,如图所示: table[0][1] = 32; 您可以将值1分配给第三行和第一列,如下所示: table[2][0] = 1; 我们必须在创建多维数组时指定至少第一级数组的维度。 例如: table = new int[3][]; 我们必须在创建多维数组时指定至少第一级数组的维度。 此时仅存在表[0],表[1]和表[2]。 他们指的是null。 table.length的值为3。 table [0],table [1]和table [2]是int数组,我们可以将它们赋值为 table[0] = new int[2]; // Create two columns for row 1 table[1] = new int[2]; // Create two columns for row 2 table[2] = new int[2]; // Create two columns for row 3 Java可以为每行创建一个具有不同列数的二维数组。这样的数组称为粗糙数组。 例子 以下代码显示了如何创建一个不规则数组。 public class Main { public static void main(String[] args) { // Create a two-dimensional array of 3 rows int[][] raggedArray = new int[3][]; // Add 2 columns to the first row raggedArray[0] = new int[2]; // Add 1 column to the second row raggedArray[1]...

Java 数组参数-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 数组参数

Java数据类型教程 – Java数组参数 数组参数 我们可以将数组作为参数传递给方法或构造函数。 我们传递给该方法的数组的类型必须是与形式参数类型兼容的赋值。 以下代码显示了如何将Array作为方法参数传递。 public class Main { public static void main(String[] args) { int[] num = { 1, 2 }; System.out.println("Before swap"); System.out.println("#1: " + num[0]); System.out.println("#2: " + num[1]); swap(num); System.out.println("After swap"); System.out.println("#1: " + num[0]); System.out.println("#2: " + num[1]); } public static void swap(int[] source) { if (source != null && source.length == 2) { // Swap the first and the second elements int temp = source[0]; source[0] = source[1]; source[1] = temp; } } } 上面的代码生成以下结果。 数组参数参考 因为数组是一个对象,所以它的引用的副本被传递给一个方法。 如果方法更改数组参数,实际参数不受影响。 import java.util.Arrays; public class Main { public static void main(String[] args) { int[] origNum = { 1, 2, 3 }; System.out.println("Before method call:" + Arrays.toString(origNum)); // Pass the array to the method tryArrayChange(origNum); System.out.println("After...