Java教程 第82页

Java 自动装箱和拆箱

Java数据类型教程 – Java自动装箱和拆箱 AutoBoxing和unboxing使用原始数据类型及其相应的包装类。 它们完全在编译器中实现。 从原始数据类型(字节,短整型,长整型,浮点型,双精度型,字符型和布尔型)到其对应的包装器对象(字节,整数,长整数,浮点型,双精度,字符和布尔)的自动换行被称为自动装箱。 反向,从包装器对象到其对应的原始数据类型,被称为取消装箱。 使用自动装箱/取消装箱,以下代码有效: Integer n = 2; // Boxing int a = n; // Unboxing 编译器将用以下语句替换上面的语句: Integer n = Integer.valueOf(2); int a = n.intValue();

Java 无符号数据类型-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 无符号数据类型

Java数据类型教程 – Java无符号数据类型 Java不支持无符号数据类型。 byte,short,int和long都是有符号数据类型。 对于有符号数据类型,值范围的一半存储正数,一半用于负数,因为一个位用于存储值的符号。 例如,一个字节需要8位;其范围是-128到127.如果您只在一个字节中存储正数,则其范围将为0到255。 Java在包装器类中有一些静态方法,以支持处理带符号值中的位的操作,就像它们是无符号整数一样。 字节类包含两个静态方法: int toUnsignedInt(byte x) long toUnsignedLong(byte x) 这些方法将指定的字节参数转换为int和long,就像该字节存储无符号值一样。 如果指定的字节为零或正,则转换的int和long值将相同。 如果参数是负数,则转换的数字将是28 + x。 例如,对于-10的输入,返回的值将是28 +(-10),这是246。 负数以2的补码形式存储。值-10将被存储为11110110.最高有效位1表示它是一个负数。 前7位(1110110)的2的补码将是001010,十进制为10。 如果将实际位11110110视为无符号整数,其值为246(128 + 64 + 32 + 16 + 0 + 4 + 2 + 0)。 例子 以下代码显示了如何将存储在字节中的值作为无符号整数: public class Main { public static void main(String[] args) { byte b = -10; int x = Byte.toUnsignedInt(b); System.out.println("Signed value in byte = " + b); System.out.println("Unsigned value in byte = " + x); } } 上面的代码生成以下结果。 例2 Integer类包含以下静态方法以支持无符号运算和转换: int compareUnsigned(int x, int y) int divideUnsigned(int dividend, int divisor) int parseUnsignedInt(String s) int parseUnsignedInt(String s, int radix) int remainderUnsigned(int dividend, int divisor) long toUnsignedLong(int x) String toUnsignedString(int i) String toUnsignedString(int i, int radix) 以下代码显示了对两个int变量的除法运算,如同它们的位表示无符号值一样: public class Main { public...

Java 数据类型包装器

Java数据类型教程 – Java数据类型包装器 Java库在java.lang包中提供了八个类来表示八种基本类型中的每一种。 这些类称为包装类,因为它们在对象中包装原始值。 下表列出了原始类型及其相应的包装类。 基本类型 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 方法 所有包装类都是不可变的。它们提供了两种方法来创建它们的对象: 使用构造函数 使用valueOf()工厂方法 除了Character之外,每个包装类都提供至少两个构造函数:一个采用对应基本类型的值,另一个采用String。 Character类只提供一个接受char的构造函数。 例子 以下代码创建一些包装类的对象: public class Main { public static void staticMethod() { // Creates an Integer object from an int Integer intObj1 = new Integer(100); // Creates an Integer object from a String Integer intObj2 = new Integer("1969"); // Creates a Double object from a double Double doubleObj1 = new Double(10.45); // Creates a Double object from a String Double doubleObj2 = new Double("234.60"); // Creates a Character object from a char Character charObj1 = new Character("A"); // Creates a Boolean object from a boolean Boolean booleanObj1 = new Boolean(true); //...

Java Boolean包装类-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java Boolean包装类

Java数据类型教程 – Java Boolean包装类 布尔类的对象包装一个布尔值。 Boolean.TRUE和Boolean.FALSE是布尔类型的两个常量,用于表示布尔值true和false值。 我们可以使用构造函数或valueOf()工厂方法创建一个布尔对象。 当解析字符串时,此类将处理“true”,忽略所有字符的情况为true,任何其他字符串为false。 例子 下面的代码显示了如何使用Boolean类。 public class Main { public static void main(String[] args) { // Using constructors Boolean b1True = new Boolean(true); Boolean b2True = new Boolean("true"); Boolean b3True = new Boolean("tRuE"); Boolean b4False = new Boolean("false"); Boolean b5False = new Boolean("how is this"); // false // Using the factory methods Boolean b6True = Boolean.valueOf(true); Boolean b7True = Boolean.valueOf("true"); Boolean b8True = Boolean.valueOf("tRuE"); Boolean b9False = Boolean.valueOf("false"); Boolean b10False = Boolean.valueOf("how is this"); // false // Getting a boolean value from a Boolean object boolean bbTrue = b8True.booleanValue(); boolean bTrue = Boolean.parseBoolean("true"); boolean bFalse = Boolean.parseBoolean("This string evaluates to false"); Boolean bcTrue = Boolean.TRUE; Boolean bcFalse = Boolean.FALSE; System.out.println("bcTrue = " + bcTrue); System.out.println("bcFalse...

Java 字符数据类型-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 字符数据类型

Java数据类型教程 – Java字符数据类型 Character类的一个对象包装一个char值。 字符类包含isLetter()和isDigit()方法来检查字符是否为字母和数字。 toUpperCase()和toLowerCase()方法将字符转换为大写和小写。 该类提供了一个构造函数和一个工厂valueOf()方法来从char创建对象。 charValue()方法返回对象包装的char。 例子 以下代码显示了如何创建Character对象以及如何使用它们的一些方法: public class Main { public static void main(String[] args) { // Using the constructor Character c1 = new Character("A"); // Using the factory method - preferred Character c2 = Character.valueOf("2"); Character c3 = Character.valueOf("-"); // Getting the wrapped char values char cc1 = c1.charValue(); char cc2 = c2.charValue(); char cc3 = c3.charValue(); System.out.println("c1 = " + c1); System.out.println("c2 = " + c2); System.out.println("c3 = " + c3); // Using some Character class methods on c1 System.out.println("isLowerCase c1 = " + Character.isLowerCase(cc1)); System.out.println("isDigit c1 = " + Character.isDigit(cc1)); System.out.println("isLetter c1 = " + Character.isLetter(cc1)); System.out.println("Lowercase of c1 = " + Character.toLowerCase(cc1)); // Using some Character class methods on c2 System.out.println("isLowerCase c2...

Java 数字数据类型-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 数字数据类型

Java数据类型教程 – Java数字数据类型 字节,短整数,整数,长整数,浮点数和双精度类是数字包装类。 它们都继承自抽象的Number类。我们不能创建Number类的对象。然而,er可以声明Number类的引用变量。 我们可以将六个数值包装类中的任何一个的对象引用分配给Number类的引用。 Number类包含六个方法。它们被命名为xxxValue(),其中xxx是六种基本数据类型之一(byte,short,int,long,float和double)。 方法的返回类型与xxx相同。 例子 以下代码显示如何从数值包装器对象检索不同的primate类型值: public class Main { public static void main(String[] args) { Integer intObj = Integer.valueOf(100); // Gets byte from Integer byte b = intObj.byteValue(); // Gets double from Integer double dd = intObj.doubleValue(); System.out.println("intObj = " + intObj); System.out.println("byte from intObj = " + b); System.out.println("double from intObj = " + dd); // Creates a Double object Double doubleObj = Double.valueOf("123.45"); // Gets different types of primitive values from Double double d = doubleObj.doubleValue(); float f = doubleObj.floatValue(); int i = doubleObj.intValue(); long l = doubleObj.longValue(); System.out.println("doubleObj = " + doubleObj); System.out.println("double from doubleObj = " + d); System.out.println("float from doubleObj = " + f); System.out.println("int from doubleObj = " +...

Java 数据类型

Java数据类型教程 – Java数据类型 以下两行Java代码定义了两个整数:num1和num2: int num1; int num2; num1和num2是两个int变量。 int关键字表示后面的名称表示整数值,例如10,15,70,1000等。 因为您已经声明了num数据类型的num1和num2变量,我们不能存储一个实数,如10.1。 下面的代码在num1中存储5,在num2中存储7: num1 = 5; num2 = 7; 两种数据类型 Java支持两种数据类型: 原始数据类型 引用数据类型 基本数据类型的变量保持一个值,而引用数据类型的变量保持对存储器中的对象的引用。 String是在Java库中定义的类,我们可以使用它来处理字符序列。 您将String类型的引用变量str声明为 String str; 有一个引用常量 null ,可以分配给任何引用变量。 如果为引用变量分配了null,则意味着引用变量不是指存储器中的任何对象。 空引用文本可以分配给str。 str = null; 使用new运算符创建一个String对象。 字符串经常使用,有一个快捷方式来创建一个字符串对象。 所有字符串文字,一个用双引号括起来的字符序列,被视为String对象。 我们可以使用字符串文字如下: // Assigns "Hello" to str1 String str1 = "Hello"; // Assigns the reference of a String object with text "Hello" to str1 String str1 = new String ("Hello");

Java 异常处理-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 异常处理

Java面向对象设计 – Java异常处理 异常是在没有定义正常执行路径时在Java程序的执行期间可能出现的条件。 Java通过将执行操作的代码与处理错误的代码分离来处理错误。 当发生异常时,Java会创建一个包含有关异常的所有信息的对象,并将其传递给相应的异常处理代码。 有关异常的信息包括异常的类型,发生异常的代码中的行号等。 try-catch块 要处理异常,请将代码放在try块中。try块如下所示: try { // Code for the try block } try块以关键字try开头,后面是开括号和结束括号。 try块的代码放在开口和关闭大括号内。 try块本身不能使用。 它必须后跟一个或多个catch块,或一个finally块,或两者的组合。 要处理可能在try块中抛出的异常,请使用catch块。 一个catch块可用于处理多种类型的异常。 catch块的语法与方法的语法相似。 catch (ExceptionClassName parameterName) { // Exception handling code } catch块的声明就像一个方法声明。 它从关键字catch开始,后面跟一对括号。 在括号中,它声明了一个参数。 参数类型是应该捕获的异常类的名称。 parameterName是用户给定的名称。括号后面是开口括号和结束括号。异常处理代码放在大括号中。 当抛出异常时,异常对象的引用将复制到parameterName。 我们可以使用parameterName从异常对象中获取信息。 我们可以将一个或多个catch块与try块关联。 try-catch块的一般语法如下。 try { // Your code that may throw an exception } catch (ExceptionClass1 e1){ // Handle exception of ExceptionClass1 type } catch (ExceptionClass2 e2){ // Handle exception of ExceptionClass2 type } catch (ExceptionClass3 e3){ // Handle exception of ExceptionClass3 type } 例子 下面的代码显示了如何处理除零异常。 public class Main { public static void main(String[] args) { int x = 10, y = 0, z; try { z = x / y; System.out.println("z = " + z); } catch (ArithmeticException e)...

Java 异常类

Java面向对象设计 – Java异常类 异常类层次结构 异常类层次结构从java.lang.Throwable类开始。 当抛出异常时,它必须是Throwable类的对象或其任何子类。 catch块的参数必须是Throwable类型,或其子类之一,例如Exception,ArithmeticException,IOException等。 我们可以通过从一个异常类继承我们的类来创建我们自己的异常类。 使用多个catch块 Java运行时选择适当的catch块,并从第一个catch块开始顺序寻找合适的catch时钟。 try块的多个catch块必须从最具体的异常类型排列为最通用的异常类型。 以下代码使用多个catch块的有效序列。 ArithmeticException类是RuntimeException类的子类。 如果这两个异常都在同一个try块的catch块中处理,那么最具体的类型,即ArithmeticException,必须出现在最通用的类​​型之前,即RuntimeException。 try { // Do something, which might throw Exception } catch(ArithmeticException e1) { // Handle ArithmeticException first } catch(RuntimeException e2) { // Handle RuntimeException after ArithmeticException } 已检查和未检查异常 有三种类型的异常: 有一些例外,有更高的可能发生。我们可以在try-catch块中处理它们。或者我们可以在调用方法/构造函数声明中指定它可能抛出异常。 错误是可能发生的异常,并且我们几乎不能处理它。例如,java.lang.OutOfMemeoryError。我们不能做任何事情从内存不足错误中恢复。异常类层次结构中的类,它们是Error类的子类和Error类本身,属于此类别的异常。编译器不坚持对我们的代码采取行动。如果在运行时抛出此类异常,运行时将通过显示详细的错误消息并暂停应用程序来处理它。 在运行时可能会发生异常,我们可能会从异常条件中恢复。异常类层次结构中的类,它们是RuntimeException类的子类和RuntimeException类本身,属于此类别。编译器不坚持对我们的代码采取行动。 第一类中的异常称为检查异常,因为编译器检查它们是否在代码中处理。 Throwable类,Exception类和Exception类的子类(不包括RuntimeException类及其子类)称为检查异常。 所有未检查异常的异常称为未检查异常,因为编译器不检查它们是否在代码中处理。 Error类,Error类的所有子类,RuntimeException类及其所有子类都是未检查的异常。 我们可以处理未检查的异常,如果我们想,编译器不会强迫我们这样做。 用于处理已检查或未检查异常的程序结构是相同的。 以下代码显示如何处理已检查的异常: import java.io.IOException; public class Main { public static void main(String[] argv) { try { int input = System.in.read(); if (input != -1) { System.out.println(input); } } catch (IOException e) { System.out.print("IOException occurred."); } } }

Java 异常抛出-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 异常抛出

Java面向对象设计 – Java异常抛出 如果一段代码可能抛出一个已检查的异常,我们有两个选择: 使用try-catch块处理已检查的异常。 在方法/构造函数声明中用throws子句指定。 语法 throws子句的一般语法是 <modifiers> <return type> <method name>(<params>) throws<List of Exceptions>{ } 关键字throws用于指定throws子句。 throws子句放在方法参数列表的右括号之后。 throws关键字后面是以逗号分隔的异常类型列表。 例子 下面的代码展示了如何在方法的声明中使用throws子句。 import java.io.IOException; public class Main { public static void readChar() throws IOException { int input = System.in.read(); } } 这里是显示如何使用它的代码。 例2 import java.io.IOException; public class Main { public static void readChar() throws IOException { int input = System.in.read(); System.out.println(input); } public static void main(String[] args) { try { readChar(); } catch (IOException e) { System.out.println("Error occurred."); } } } 上面的代码生成以下结果。 例3 我们可以继续抛出异常。 import java.io.IOException; public class Main { public static void readChar() throws IOException { int input = System.in.read(); System.out.println(input); } public static void main(String[] args) throws IOException { readChar(); } } 上面的代码生成以下结果。 抛出异常 我们可以使用throw语句在我们的代码中抛出异常。 throw语法的语法是 throw <A...