java怎么完成输出语句

2023-11-15

我们在前面的文章和案例中,其实早就知道Java是如何实现输出功能的了。没错,就是利用System.out.println()语句来实现的!接下来壹哥就给大家详细解读一下这个语句的作用及其含义。

1. System

我们先来看看System是个什么东东。

System是Java自带的一个类,它代表着系统类。该类位于java.lang包中,很多有用的系统级别的属性、控制方法都在该类里面。

System类的构造方法是private(私有)修饰的,所以我们无法直接创建该类的对象,即无法实例化该类。关于这些对象的实例化,壹哥在后面讲解面向对象时会再详细讲解,大家先不要着急哦。System内部的成员变量和成员方法都是static的,我们可以很方便的直接进行调用。在System类里面,给我们提供了如下几个核心功能:

标准输入输出:如out、in、err;

外部定义的属性和环境变量的访问:如getenv()、setenv()、getProperties()和setProperties();

加载文件和类库的方法:如load()和loadLibrary();

快速拷贝数组的方法:arraycopy();

jvm操作:如gc()、runFinalization()、exit();

获取时间方法:如System.nanoTime 和 System.currentTimeMillis。

2. out与err

out表示一种“标准”的输出流,它是System类中的静态成员,可以直接被我们调用,且这个成员变量是java.io.PrintStream类的引用。

另外还有一个与out功能类似的输出流err。err表示“标准”的错误输出流,此流可以打开并准备接受输出的数据。一般err流用于显示错误消息,或者用于显示需要引起用户特别注意的信息,在控制台中会显示红色的文字。

其实out和err的用法完全一样,功能也基本相同。out和err的唯一区别就是,out往往是带缓存功能的,而err没有缓存功能(默认设置,可以更改)。

3. print和println

print()和println()都是java.io.PrintStream类里的方法,它们的作用都是向控制台输出信息。两者的基本作用完全一样,只是print()方法不会产生换行,println()会产生换行,因为println是print line的缩写,表示输出并换行。

通过以上这3个API(应用程序接口)的讲解,我们可以总结出一个基本的规则:在Java中,被static关键字修饰的成员变量,可以直接通过"类名.成员名"的形式来引用,不用创建类的实例对象。所以我们可以直接调用System类里的静态成员out,即System.out。又因为System.out是java.io.PrintStream类的实例引用,所以又可以通过 System.out.println(); 的形式来调用。

以上这段话,如果你看着有点懵逼,请不用纠结。这属于面向对象的知识,我们暂时还没学到,在后面面向对象的章节中,壹哥会详细讲解!

4. 基本案例

以下是关于标准输出的代码案例,大家对着练习一下即可,很简单的哦。

public class Demo01 {

	public static void main(String[] args) {
		//输出语句
		//不换行输出
		System.out.print("Hello");
		System.out.print(" World");
		
		//换行输出
		System.out.println("你好");
		System.out.println("一一哥");
		
		//标准的错误输出,控制台会用红色文字显示
		System.err.append("标准的错误输出,哈哈哈");
	}

}

运行效果如下图所示:

 5. 格式化输出

5.1 概念

有时候,计算机默认输出的数据格式,并不一定能够满足我们的阅读需求,比如有的人想要保留小数点后两位,也有的人想要保留小数点后四位,大家的需求是个性化的,那么Java能不能针对特殊的需求,进行一些个性化的输出呢?这是可以实现的!这就需要用到格式化输出了!

利用格式化输出功能,可以把数据显示成我们期望的格式。我们可以使用System.out.printf()语句,并结合%与?这两个占位符来实现,printf()方法可以把后面的参数格式化成指定的格式。

5.2 占位符

Java为了实现格式化功能,给我们提供了多种占位符,可以把各种数据类型“格式化”成指定的字符串。常用的占位符有如下这些:

这里我们要注意,在输出语句中,%表示占位符。如果连续使用两个%%,应该传入两个对应的数字,否则会把后面的%字符给原文输出。

如果我们想了解更详细的格式化参数,可以参考JDK文档:java.util.Formatter

5.3 案例

下面是壹哥设计的与本小节对应的代码案例,大家可以对照练习。

public class Demo01 {

	public static void main(String[] args) {
		//格式化输出
		
		//默认输出格式
		//double d = 88800000;
        //System.out.println(d); // 8.88E7
        
        double d = 3.1415926;
        System.out.printf("%.2f\n", d); // 保留2位小数3.14
        System.out.printf("%.4f\n", d); // 保留4位小数3.1416
        
        //占位符与格式化
        int n = 123456789;
        //%08x,输出16进制数据,如果不足8位,用0补齐
        System.out.printf("n=%d, hex=%08x", n, n); // 注意,两个%占位符应该传入两个数字
	}

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java怎么完成输出语句 的相关文章

随机推荐

  • AD20.0.1上手教程——机器狗

    我们假装已经安装好了AD 首先 我们先理一下AD这个软件的逻辑 一个项目包含一个工程 PrjPCB 里面有一个源文件和库文件两类 源文件包括原理图 SchDoc 和印制版图 PcbDoc 库文件包括封装库 PcbLib 和原理图库 SchL
  • [Python微信开发] 一.itchat入门知识及微信自动回复、微信签名词云分析

    最近准备学习微信小程序开发 偶然间看到了python与微信互动的接口itchat 简单学习了下 感觉还挺有意思的 故写了篇基础文章供大家学习 itchat是一个开源的微信个人号接口 使用python调用微信从未如此简单 使用不到三十行的代码
  • Qt5 Alpha Complie in XP with Mingw/vs2008

    根据 http qt project org wiki Qt 5 Alpha building instructions 提示 下载 Perl http www perl org get html python http python or
  • unity中使用tensorflow 深度学习框架 ml-agents v0.8,TFSharpPlugin.unitypackage 0.5最新版 教程(for mac windows)

    unity tensorflow 环境安装 unity tensorflow 官方 教程 unity版本必须经过配置 不像c 那样简单 第一部分 安装tensorflow环境 1 安装anaconda anaconda 是python的包管
  • 动态数组的摊销分析【Python也有数组的类似概念比如list】

    我先说一下数组版的动态数组的摊销分析 我先上C 的代码 没有摊销的 吧 应该都能看懂吧 即使没学过C和C pragma once include
  • 给出一组数删除其中的几个使得剩下的数从左到右最小

    个人感觉是个特别经典的题目 有两个关键点 1 剩下的数最小 2 删除的数小于等于n 1 使剩下的数最小 思路 依次遍历正整数的各位数字 将单调递减区间的的第一个数删掉 如果整个字符串已经单调递增就删除最后的数 代码如下 include
  • 多线程的异步调用(一)

    最近手头做的项目中 用到了多线程的异步调用 在控制线程中实时的检测硬件的变化 如果硬件发生了某些变化 那么需要通知别的模块做一些相应的操作 为了让这些操作不会影响控制线程的继续运行 就在多线程中使用了异步调用的方法 using System
  • 【华为OD机试 2023】优雅子数组(C++ Java JavaScript Python)

    华为od机试题库 华为OD机试2022 2023 C Java JS Py https blog csdn net banxia frontend category 12225173 html 华为OD机试2023最新题库 更新中 C Ja
  • C++关键字入门(小白必看)

    目录 0 C 关键字 1 asm 2 catch throw try 3 inline 4 bool true false 5 cast 6 typeid获取类型信息 7 private protected和public 8 typenam
  • 串口发送到PC端的两种方式

    配置串口的时候要注意 F1系列中 GPIO 配置成输入浮空输入模式 GPIO TX要配置成推挽复用模式 F4系列中 GPIO要配置成复用模式 同时要将端口复用为串口模式 接下来可用两种方式发送到PC端 一 重定义printf函数 注意要使用
  • WebGoat-5.4实验笔记(2)

    webgoat其他项目的学习笔记在我的博客里有 General 总体目标 1 Http Basics HTTP基础知识 点击Http Basics 查看页面信息 显示输入信息后 服务器接收请求后会返回用户的输入信息 并回显给用户 我在Ent
  • MySQL数据库的基本操作--DDL

    文章目录 MySQL数据库的基本操作 对表结构的常用操作 MySQL中的数据类型 对表结构的常用操作 其他操作 对数据库的常用操作 修改表结构格式 MySQL数据库的基本操作 SQL语言分为DDL DML DQL DCL DDL Data
  • HTML5 Canvas 实现 圆环碰撞检测 (方式二)

    JS Canvas 圆环碰撞 圆环外与圆环内与圆环上 方式二 咦 好像 终于有好东西了 结合上一篇 这一篇将更简单 推荐 圆与多边形 圆环与多边形 其实和 点 与多边形碰撞一样 但也有几个不同之处 下面就来看看新实现的 圆环碰撞 列出几个重
  • C# 在向数据库SqlServer中插入数据的同时返回插入数据的ID值

    在向数据库插入数据时 我们经常会用到插入数据的ID值 这里提供一种经常用到的办法 一 环境 Visual Studio 2015 SQL Server 2012 控制台应用程序 数据库中的表数据如下 二 代码 代码如下 主要用到的是数据库的
  • 用 AI 轻松管理数据收集和分布! #TallyForms

    工作中需要面对各种各样让人眼花缭乱的表格 此时一款让数据收集和整理变得轻松的平台简直就是打工人们的福音 TallyForms 就拥有自定义表单 实时分析和高效管理的全方位解决方案 TallyForms TallyForms 是一个免费的在线
  • 如何去掉去掉VC++的安全警告提示

    在用Vc进行进程编写时 你有可能会遇到一大堆的警告 warning C4996 如 warning C4996 This function or variable may be unsafe 原因是VC使用了更加安全的run time li
  • 【华为OD机试python】补种未成活胡杨【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 近些年来 我国防沙治沙取得显著成果 某沙漠新种植N棵胡杨 编号1 N 排成一排 一个月后 有M棵胡杨未能成活 现可补种胡杨K棵 请问如何补种 只能补种 不能新种 可以
  • [论文阅读] (01) 拿什么来拯救我的拖延症?初学者如何提升编程兴趣及LATEX入门详解

    又是在凌晨三点赶作业 又是在Deadline前去熬夜 一次次无眠 一次次抱怨 为什么三年前 两年前 一年前 甚至是昨天 我都下定决心 从现在开始读顶会论文 却又悄悄选择逃避 为什么我的收藏夹存了很多学习资料和视频 然而却没有再次翻起 为什么
  • linux快捷命令行

    对于程序员 经常要跟linux打交道 想想 每一行linux命令行省下那么一点点时间 一年下来省下的时间将可以 避免一个项目的delay 陪老婆去度一次蜜月 陪孩子去一次迪士尼 当然 首先你得有对象 接下来直接进入主题 首先我输入了一段自我
  • java怎么完成输出语句

    我们在前面的文章和案例中 其实早就知道Java是如何实现输出功能的了 没错 就是利用System out println 语句来实现的 接下来壹哥就给大家详细解读一下这个语句的作用及其含义 1 System 我们先来看看System是个什么