跳转到内容

Java 编程/问答

来自维基教科书,开放的书籍,开放的世界


导航 项目页面 主题: v  d  e )
欢迎来到 Java 编程问答页面。


在学习 Java 编程时,请随时发布您遇到的任何问题。如果您对本书有任何疑问,请在 Java 编程讨论页面 上发布。如果您知道问题的答案,或者可以改进任何答案,请直接进行操作。


从 Java 1.5 开始,Java 语言中添加了一项新功能,称为 泛型。它类似于 C++ 模板。为什么将名称 Generics 赋予此功能?有谁知道?
泛型来自其他语言,有关更多信息,请参见 w:泛型编程 上的文章。
泛型来自其他语言,有关更多信息,请参见 w:泛型编程 上的文章。
什么是 Corba?Corba 的组件有哪些?并讨论 Corba 的工作原理?RMI 和 CORBA 有什么区别?
CORBA 是与语言无关的“远程方法调用”,类似于 RMIRMI 仅适用于 Java,CORBA 可用于任何语言。有关更多信息,请参见:w:通用对象请求代理体系结构

RMI 比 CORBA 更易于使用,因此在仅限 Java 的环境中应该使用 RMI。

如果您需要在不同的语言环境之间调用方法,请使用 CORBA。使用 CORBA,Java 客户端可以调用 C++ 服务器,反之亦然,C++ 客户端可以调用 Java 服务器。使用 RMI 无法实现这一点。
CORBA 是与语言无关的“远程方法调用”,类似于 RMIRMI 仅适用于 Java,CORBA 可用于任何语言。有关更多信息,请参见:w:通用对象请求代理体系结构

RMI 比 CORBA 更易于使用,因此在仅限 Java 的环境中应该使用 RMI。

如果您需要在不同的语言环境之间调用方法,请使用 CORBA。使用 CORBA,Java 客户端可以调用 C++ 服务器,反之亦然,C++ 客户端可以调用 Java 服务器。使用 RMI 无法实现这一点。
Vector 可以支持非同类数据吗?
Vector 类可以接收任何对象(因此不能接收基本类型),即使是在同一个 Vector 中的不同类型的数据。

Vector 和 Hashtable 类是来自 Java 1.0 版本的遗留类,它们强制执行同步方法,导致在不需要此特性的系统上出现性能问题。在 1.2 版本中添加了其他类,它们是 ArrayList 和 HashMap,没有同步。同步和非同步版本分别实现 List 和 Map 接口。

从 Java 1.5 开始,有了泛型,它允许您指定您想要一个容器(例如 ArrayList)只包含特定类型的元素。这使您可以保证您从容器中获取到的元素在编译时是特定类型,而无需显式地将其强制转换为该类型。这样更安全(您避免了在运行时出现类型转换错误),并使您的代码更易读和易懂。您应该尽可能使用泛型。
Vector 类可以接收任何对象(因此不能接收基本类型),即使是在同一个 Vector 中的不同类型的数据。

Vector 和 Hashtable 类是来自 Java 1.0 版本的遗留类,它们强制执行同步方法,导致在不需要此特性的系统上出现性能问题。在 1.2 版本中添加了其他类,它们是 ArrayList 和 HashMap,没有同步。同步和非同步版本分别实现 List 和 Map 接口。

从 Java 1.5 开始,有了泛型,它允许您指定您想要一个容器(例如 ArrayList)只包含特定类型的元素。这使您可以保证您从容器中获取到的元素在编译时是特定类型,而无需显式地将其强制转换为该类型。这样更安全(您避免了在运行时出现类型转换错误),并使您的代码更易读和易懂。您应该尽可能使用泛型。
如何在 PC 上运行 Java 程序?
如果 Java 应用程序位于 .JAR 或 .JNLP 包中,则可以像运行任何其他程序一样运行它们。如果您尝试运行 .class 文件,只需打开命令行提示符并键入 java MyClass,其中 MyClass 是您尝试启动的类文件的文件名。
如果 Java 应用程序位于 .JAR 或 .JNLP 包中,则可以像运行任何其他程序一样运行它们。如果您尝试运行 .class 文件,只需打开命令行提示符并键入 java MyClass,其中 MyClass 是您尝试启动的类文件的文件名。
Java 中的 String 函数与 BASIC 中的 LEFT()、MID()、RIGHT() 函数等效吗?
Java String 类提供了 substring() 方法,应该可以满足您的需求。例如,Visual Basic 中的 mid(str, a, b) 等效于 str.substring(a, a+b)。
Java String 类提供了 substring() 方法,应该可以满足您的需求。例如,Visual Basic 中的 mid(str, a, b) 等效于 str.substring(a, a+b)。
什么是类?它是如何实现数据隐藏的?
类是创建对象的模板。声明为私有的方法和变量无法在类外部访问。它们只能在内部访问,这意味着它们对外部隐藏。这使得编程更简单,因为它保证这些内部信息不会被外部代码弄乱。
类是创建对象的模板。声明为私有的方法和变量无法在类外部访问。它们只能在内部访问,这意味着它们对外部隐藏。这使得编程更简单,因为它保证这些内部信息不会被外部代码弄乱。
可以将关键字用作变量名吗?
不能。关键字由编译器保留,不能用于变量。
不能。关键字由编译器保留,不能用于变量。
Java 中有哪些可用的跳转语句?
Java 没有跳转语句。

goto 是保留字,但未使用。

break 语句类似于跳转语句,但跳转的目标是明确定义的。它从循环或 switch 语句中退出/跳出。
Java 没有跳转语句。

goto 是保留字,但未使用。

break 语句类似于跳转语句,但跳转的目标是明确定义的。它从循环或 switch 语句中退出/跳出。
什么是自动类型转换?
构造函数可以是私有的吗?
可以。单例构造函数是私有的。当构造函数是私有的时,该类的对象无法在该类外部创建。如何以及何时创建该类的对象由该类定义。
可以。单例构造函数是私有的。当构造函数是私有的时,该类的对象无法在该类外部创建。如何以及何时创建该类的对象由该类定义。
组合和聚合有什么区别?
为什么在 Java 中 char 使用 2 字节内存,而在 C++ 中只占用 1 字节?
Java 使用 unicode,而 C++ 使用 ASCII。Unicode 包含大约 100,000 个字符的字符集,远远超过 ASCII 字符集所能表示的字符数量。另请参见 Java 编程/语法/Unicode 源代码
Java 使用 unicode,而 C++ 使用 ASCII。Unicode 包含大约 100,000 个字符的字符集,远远超过 ASCII 字符集所能表示的字符数量。另请参见 Java 编程/语法/Unicode 源代码
如何在 Java 编程中获取值?
您可以使用 System.out.print() 和 System.out.println() 函数显示任何变量的值。
您可以使用 System.out.print() 和 System.out.println() 函数显示任何变量的值。
Java 语言的介绍是什么?
Java 语言从 这里 开始介绍。 Ftiercel (讨论贡献) 19:29, 11 March 2013 (UTC)
Java 语言从 这里 开始介绍。 Ftiercel (讨论贡献) 19:29, 11 March 2013 (UTC)
如何从 CD 中打开 Java 文件?如何从类中创建对象?out 是 PrintStream 类的对象,那么为什么 Java 在 System 类中定义 out?要打印消息,我们使用 System.out.print() 方法,如果 out 在 PrintStream 中定义,我们也可以使用该方法,例如 PrintStream.out.print() 吗?
  • 位于 CD 上的 Java 文件应该与硬盘上的 Java 文件以相同的方式打开。您应该使用 CD 上文件的路径。如果您想从命令行或提示符中打开文件,请使用 cd 命令移动到文件夹并将 Java 文件作为文本文件打开。
  • 不要混淆类的对象和类的字段。outSystem 类的字段,outPrintStream 类的对象。
  • 只有 System 类中的 out 在 Java 启动时链接到标准输出。这就是您必须使用 System 类的原因。
Ftiercel (讨论贡献) 19:29, 11 March 2013 (UTC)
  • 位于 CD 上的 Java 文件应该与硬盘上的 Java 文件以相同的方式打开。您应该使用 CD 上文件的路径。如果您想从命令行或提示符中打开文件,请使用 cd 命令移动到文件夹并将 Java 文件作为文本文件打开。
  • 不要混淆类的对象和类的字段。outSystem 类的字段,outPrintStream 类的对象。
  • 只有 System 类中的 out 在 Java 启动时链接到标准输出。这就是您必须使用 System 类的原因。
Ftiercel (讨论贡献) 19:29, 11 March 2013 (UTC)
大家好。请详细说明 JVM 代。在“System.out.println()”这一行中,System 和 out 的确切含义是什么?如何在 Java 中声明类?谢谢,此致,Hema26
JVM 不是生成的。您下载 JRE 或 JDK,安装完成后,如 这里 所述启动 JVM。System 是一个类。它是一个类的静态使用。outSystem 类的静态字段。本书介绍了如何创建类 这里Ftiercel (讨论贡献) 19:29, 11 March 2013 (UTC)
JVM 不是生成的。您下载 JRE 或 JDK,安装完成后,如 这里 所述启动 JVM。System 是一个类。它是一个类的静态使用。outSystem 类的静态字段。本书介绍了如何创建类 这里Ftiercel (讨论贡献) 19:29, 11 March 2013 (UTC)
如何跟踪简单的 Java 程序?
记录代码最简单的方法是打印到标准输出,也就是说使用 System.out.println();Ftiercel (讨论贡献) 19:29, 11 March 2013 (UTC)
记录代码最简单的方法是打印到标准输出,也就是说使用 System.out.println();Ftiercel (讨论贡献) 19:29, 11 March 2013 (UTC)
编写一个 Java 程序,在三个类中分别计算三角形、正方形和矩形的形状?编写一个 Java 程序,输入 2 个数字并执行计算器的所有基本运算?
要计算形状的周长或面积,请使用java.lang.Math类的 方法,如 此处 所述。要绘制此类形状,可以使用 Swing,如 此处 所述。 Ftiercel (讨论贡献) 2013年3月11日 (UTC) 19:29
要计算形状的周长或面积,请使用java.lang.Math类的 方法,如 此处 所述。要绘制此类形状,可以使用 Swing,如 此处 所述。 Ftiercel (讨论贡献) 2013年3月11日 (UTC) 19:29
我想使用 T 类引用获取方法 main() 和 a() 的详细信息。
使用 Eclipse,您可以通过按住Ctrl键点击方法声明来访问方法声明。您可以使用 反射 来访问程序中类的功能。BlueJ 不是最受欢迎的 IDE,因此 IDE 部分 中没有太多关于它的信息。 Ftiercel (讨论贡献) 2013年3月11日 (UTC) 19:29
public class A{
 public void a(){
  System.out.println("Hello1");
 }
}

public class T{
 public static void main(String... args){
  A a = new A();
  a.a();
 } 
}
使用 Eclipse,您可以通过按住Ctrl键点击方法声明来访问方法声明。您可以使用 反射 来访问程序中类的功能。BlueJ 不是最受欢迎的 IDE,因此 IDE 部分 中没有太多关于它的信息。 Ftiercel (讨论贡献) 2013年3月11日 (UTC) 19:29
public class A{
 public void a(){
  System.out.println("Hello1");
 }
}

public class T{
 public static void main(String... args){
  A a = new A();
  a.a();
 } 
}
如何在 BlueJ 中创建和运行 .jar 程序?
只需转到“导出项目”菜单并选择此格式。
只需转到“导出项目”菜单并选择此格式。

编程代码..

[编辑 | 编辑源代码]

在 java 中可以使用什么代码来显示以英尺 (int) 和英寸 (int) 为单位的高度?

(!)为什么这不起作用,请尽快帮忙(!)

[编辑 | 编辑源代码]

import java.util.Random; import java.util.Scanner; class Main {

 public static void main (String[]args)
 {
   Scanner scanner = new Scanner (System.in);
   Random random = new Random ();
   {
     int rock = 0;
     int paper = 0;
     int scissors = 0;
     int loop = 0;
     int no = 0;
     while (loop == 0)

no = random.nextInt (3) + 1;

     if (no == 1)

rock = 1;

     if (no == 2)

paper = 1;

     if (no == 3)

scissors = 1;

   }
   System.out.
     println ("Pick rock paper scissors\nRock = 1 Paper = 2 Scissors = 3: ");
   int cho = scanner.nextInt ();
   {
     if (cho == 1 & no == 3 | cho == 2 & no == 1 | cho == 3 & no == 2)

{ System.out.println ("You Win"); loop++; }

     if (cho == 1 & no == 2 | cho == 2 & no == 3 | cho == 3 & no = 1)

{ System.out. print ("You loose want to play again? Type 0 to play again or type 1 to Exit: "); loop = scanner.nextInt (); }

     if (cho == 1 & no == 1 | cho == 2 & no == 2 | cho == 3 & no == 3)

System.out.println ("Tie try again");

   }
 }

}

编写一个程序,根据用户输入计算当前支票账户余额。


输入

询问用户帐户号码和姓名。

询问用户开户余额。

询问用户最多 5 笔借记交易,用户可以通过输入 -1 停止输入。

询问用户最多 5 笔贷记交易,用户可以通过输入 -1 停止输入。


处理

计算新的余额。


输出

[帐号] - [客户名] [客户姓]

原始余额: [原始余额]

借记: [借记次数]

借记总计: [借记总计]

贷记: [贷记次数]

贷记总计: [贷记总计]

余额: [当前账户余额]

华夏公益教科书