oppoJava面试!别看是Java基础,很多人已入坑

简介: oppoJava面试!别看是Java基础,很多人已入坑

接下来,我们将扩展此程序以通过键盘从用户请求数据。

要从键盘读取输入,我们将使用标准java类。我们需要使用包中的IOExceptionjava.io

要使用此类,我们必须将java.io包导入此类。这可以通过以下方式完成:

import java.io.* ;

您可以以类似的方式导入许多其他包。

第一步是创建InputStreamReader。格式如下:

InputStreamReader varName = new InputStreamReader(System.in) ;

这将创建阅读器并将其分配给变量varName。如果varName您遵循变量的命名规则,则可以更改为您想要的任何内容。

此代码执行键盘的实际读取并将其转换为Unicode字符。这对我们来说并不是很有用,因为我们希望获得信息string。这是BufferedReader进来的地方:

BufferedReader varName = new BufferedReader(varName) ;

具有变量名称的规则同样适用于此处。另请注意,您不能拥有InputStreamReaderBufferedReader使用相同的名称。我只是为了演示目的而这样做了。另外,varName在括号内BufferedReader必须是变量名或您的InputStreamReader

以下是我们将用于项目的实际代码示例:

InputStreamReader istream = new InputStreamReader(System.in) ;
BufferedReader bufRead = new BufferedReader(istream) ;

请注意字符和分号的大小写。

对于此示例,我们要读取一行。您可以通过以下方式执行此操作:

String firstName = bufRead.readLine();

要从键盘读取,您还必须创建一个try catch块:

try {
}
catch (IOException err) {
}

要使用try catch块,可以放置用于读取值的代码,在try部分和catch块中放置任何错误消息,或者如果出现错误该怎么做。

这是我们项目的代码:

try {
     String firstName = bufRead.readLine();
}
catch (IOException err) {
     System.out.println("Error reading line");
}

这将尝试读取输入。然后它将捕获任何IOException错误并打印出用户友好的错误(如果发生)。在这种情况下,错误是“ Error reading line”。

在该try区块内,我们还会要求用户输入他们的名字,否则用户将无法知道他/她应该输入的内容:

try {
     System.out.println("Please Enter In Your First Name: ");
     string firstName = bufRead.readLine();
}
catch (IOException err) {
     System.out.println("Error reading line");
}

现在让我们把我们的代码放在一起。

import java.io.* ;
class Tut1 {
     public static void main(String args[])
     {
               InputStreamReader istream = new InputStreamReader(System.in) ;
               BufferedReader bufRead = new BufferedReader(istream) ;
               System.out.println("Welcome To My First Java Program");
          try {
               System.out.println("Please Enter In Your First Name: ");
               String firstName = bufRead.readLine();
          }
          catch (IOException err) {
               System.out.println("Error reading line");
          }
     }  
}

恭喜!你现在已经做了一个相当无用的程序。它要求提供信息并且不做任何事情。

我们现在将扩展此基本代码。

我们还想询问用户的出生年份和当前年份:

System.out.println("Please Enter In The Year You Were Born: ");
String bornYear = bufRead.readLine();
System.out.println("Please Enter In The Current Year: ");
String thisYear = bufRead.readLine();

根据这些信息,我们想要计算人的年龄。但是有一个问题 - 你如何string从另一个人那里拿走一个string。你不能,所以我们必须将string值更改为数值。我们将使用函数将string值转换为IntegerparseInt

int bYear = Integer.parseInt(bornYear);
int tYear = Integer.parseInt(thisYear);

这段代码必须在一个try catch块中。然后,您可以捕获转换错误:

catch(NumberFormatException err) {
     System.out.println("Error Converting Number");
}

下一步是计算人的年龄并输出所有数据:

int age = tYear – bYear ;
System.out.println("Hello " + firstName + ". You are " + age + " years old");

最后一步是结合我们所有的代码:

import java.io.* ;
class Tut1 {
     public static void main(String args[])
     {
          InputStreamReader istream = new InputStreamReader(System.in) ;
          BufferedReader bufRead = new BufferedReader(istream) ;
          System.out.println("Welcome To My First Java Program");
          try {
               System.out.println("Please Enter In Your First Name: ");
               String firstName = bufRead.readLine();
               System.out.println("Please Enter In The Year You Were Born: ");
               String bornYear = bufRead.readLine();
               System.out.println("Please Enter In The Current Year: ");
               String thisYear = bufRead.readLine();
               int bYear = Integer.parseInt(bornYear);
               int tYear = Integer.parseInt(thisYear);
               int age = tYear – bYear ;
               System.out.println("Hello " + firstName + ". 
## 最后
针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。
> 最新整理面试题
> ![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/img_convert/7811efaab06896ddca4f66769713ed26.png)
> 上述的面试题答案都整理成文档笔记。
> 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题,**有需要的可以[点击这里,免费获取](https://gitee.com/vip204888/java-p7)**
> 最新整理电子书
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/img_convert/58602eccc0b693e8496633aaca77f332.png)
> 最新整理大厂面试文档
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/img_convert/59478e88192f2e3ef3872184fa2c1b58.png)
题,**有需要的可以[点击这里,免费获取](https://gitee.com/vip204888/java-p7)**
> 最新整理电子书
[外链图片转存中...(img-yODUJq3Y-1628139580407)]
> 最新整理大厂面试文档
[外链图片转存中...(img-PBr3ya5F-1628139580409)]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


相关文章
|
15天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
45 2
|
3天前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
26 14
|
20天前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
25天前
|
存储 缓存 Oracle
Java I/O流面试之道
NIO的出现在于提高IO的速度,它相比传统的输入/输出流速度更快。NIO通过管道Channel和缓冲器Buffer来处理数据,可以把管道当成一个矿藏,缓冲器就是矿藏里的卡车。程序通过管道里的缓冲器进行数据交互,而不直接处理数据。程序要么从缓冲器获取数据,要么输入数据到缓冲器。
Java I/O流面试之道
|
21天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
43 4
|
22天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
75 4
|
2月前
|
存储 安全 算法
Java面试题之Java集合面试题 50道(带答案)
这篇文章提供了50道Java集合框架的面试题及其答案,涵盖了集合的基础知识、底层数据结构、不同集合类的特点和用法,以及一些高级主题如并发集合的使用。
100 1
Java面试题之Java集合面试题 50道(带答案)
|
2月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
82 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
2月前
|
存储 Java 程序员
Java面试加分点!一文读懂HashMap底层实现与扩容机制
本文详细解析了Java中经典的HashMap数据结构,包括其底层实现、扩容机制、put和查找过程、哈希函数以及JDK 1.7与1.8的差异。通过数组、链表和红黑树的组合,HashMap实现了高效的键值对存储与检索。文章还介绍了HashMap在不同版本中的优化,帮助读者更好地理解和应用这一重要工具。
55 5
|
2月前
|
存储 Java
[Java]面试官:你对异常处理了解多少,例如,finally中可以有return吗?
本文介绍了Java中`try...catch...finally`语句的使用细节及返回值问题,并探讨了JDK1.7引入的`try...with...resources`新特性,强调了异常处理机制及资源自动关闭的优势。
23 1