Unlock Your Python Backend Career: Build 30 Projects in 30 Days. Join now for just $54

Getting Started with Java

Printing in Java

Printing is one of the first skills you learn when starting with any programming language, including Java. It allows you to display messages or information on the screen, making it an essential step toward creating more advanced programs. In this blog, we’ll cover the basics of printing in Java and explore some useful techniques to get you started.

Using System.out.println() for Basic Output

The System.out.println() method is the simplest and most commonly used way to display output in Java. It prints the text or data you specify and automatically adds a new line at the end, so any subsequent output starts on the next line.

Syntax:

System.out.println(<message>);
  • <message> can be text (a string), a number, or even the value of a variable.

Examples:

  1. Printing a Simple Message:

    public class Main {
        public static void main(String[] args) {
            System.out.println("Hello, Java!");
        }
    }

    Output:

    Hello, Java!
    
  2. Printing Numbers:

    public class Main {
        public static void main(String[] args) {
            System.out.println(2025); // Prints a number
            System.out.println(10 + 15); // Prints the result of an expression
        }
    }

    Output:

    2025
    25
  3. Printing Variables:

    public class Main {
        public static void main(String[] args) {
            String name = "Ayush";
            int age = 25;
            System.out.println("Name: " + name); // Concatenating text with a variable
            System.out.println("Age: " + age);
        }
    }

    Output:

    Name: Ayush
    Age: 25
  4. Using Multiple println Statements:

    public class Main {
        public static void main(String[] args) {
            System.out.println("Line 1");
            System.out.println("Line 2");
            System.out.println("Line 3");
        }
    }

    Output:

    Line 1
    Line 2
    Line 3

The System.out.println() method is perfect for simple output and is often the first tool programmers use to interact with their code. It's an essential part of debugging and understanding how your program behaves.

The Difference Between println, and print

println

print

Systen.out.println() will print the given content & after printing content a new line be given

Systen.out.print() will print the given content & after printing the content no new line will be given.

we can use System.out.println() with any content it will give a new line.

we cann’t use System.out.print without giving any content (it will result in compile time error.)

Using System.out.println() we can print the literals directly.

public class MasterBackend {
  public static void main(String[] args) {
    System.out.println("welcome");
    System.out.println(100);
    System.out.println(100.5);
    System.out.println('A');
    System.out.println(true);
    System.out.println(false);
  }
}

OUTPUT

welcome 100 100.5 A true false

Combining Strings and Variables in Print Statements

Combining strings and variables in print statements allows for dynamic and informative output. Using the + operator, we can concatenate text with variable values to create meaningful messages. This technique helps display relevant data to users in a clear and structured format.

public class MasterBackend {
  public static void main(String[] args) {
    String message = "Welcome, ";
    int number = 100;
    double decimal = 100.5;
    char letter = 'A';
    boolean flag = true;

    System.out.print(message + "User!");
    System.out.print(" Number: " + number);
    System.out.print(" Decimal: " + decimal);
    System.out.print(" Letter: " + letter);
    System.out.print(" Boolean: " + flag);
  }
}

Output

Welcome, User! Number: 100 Decimal: 100.5 Letter: A Boolean: true

Formatting Output with System.out.printf()

Using System.out.printf() allows for formatted output, making it easier to control the structure and readability of the output. The format specifiers like %s for strings, %d for integers, %.1f for floating-point numbers, %c for characters, and %b for boolean values help in displaying data in a precise and organized manner.

public class MasterBackend {

 public static void main(String[] args) {
    String message = "Welcome, User!";
    int number = 100;
    double decimal = 100.5;
    char letter = 'A';
    boolean flag = true;

    System.out.printf("%s Number: %d Decimal: %.1f Letter: %c Boolean: %b", message, number, decimal, letter, flag);
 }

}

OUTPUT

Welcome, User! Number: 100 Decimal: 100.5 Letter: A Boolean: true

Common Format Specifiers:

  • %s - String

  • %d - Integer (decimal number)

  • %f - Floating-point number

  • %.nf - Floating-point number with n decimal places

  • %c - Character

  • %b - Boolean

  • %x - Hexadecimal integer

  • %o - Octal integer

  • %e - Scientific notation (exponential)

  • %g - Shorter of %e or %f

  • %n - Newline character

These format specifiers provide precise control over how output is displayed in the console.

Debugging Made Easy with Print Statements

Print statements are one of the simplest yet most effective debugging tools. By strategically placing System.out.print() or System.out.printf() statements in your code, you can track variable values, understand the flow of execution, and identify logical errors.

This method is particularly useful when working with loops, conditional statements, or complex calculations. Even though debugging tools are available in modern IDEs, print statements remain a quick and easy way to gain insights into your program’s behavior.

Best Practices for Printing in Java

Choosing the Right Print Method

  • Use System.out.print() for inline output.

  • Use System.out.println() for output followed by a new line.

  • Use System.out.printf() for formatted output with placeholders.

    
    System.out.print("Hello ");  // Prints inline
    System.out.println("World"); // Prints with a new line
    System.out.printf("The price is: %.2f%n", 10.5678); // Formatted output with a new line
    

Using Format Specifiers Efficiently

  • %d → Integer

  • %f → Floating-point number

  • %s → String

  • %c → Character

  • %b → Boolean

  • %n → Newline (platform-independent)

    
    int age = 25;
    double price = 99.99;
    System.out.printf("Age: %d, Price: %.2f%n", age, price);
    

Avoid Excessive Print Statements

  • Don't leave System.out.println() scattered in the production code.

  • Instead, use logging for better control.

    
    // Avoid excessive debugging prints
    System.out.println("Debugging message"); // Remove this after debugging
    
    

Use Logging Instead of Print Statements

  • Why? Logging allows different levels of messages (INFO, DEBUG, ERROR) and better output control.

  • Use java.util.logging, Log4j, or SLF4J:

    
    import java.util.logging.Logger;
    
    public class LoggerExample {
        private static final Logger logger = Logger.getLogger(LoggerExample.class.getName());
    
        public static void main(String[] args) {
            logger.info("This is an info message");
            logger.warning("This is a warning message");
        }
    }
    

Ensure Readability in Print Statements

  • Use meaningful messages in print to make debugging easier.

  • Separate variables with spaces or delimiters.

    
    System.out.println("User ID: " + userId + ", Name: " + userName);
    System.out.printf("Order ID: %d | Total: %.2f%n", orderId, totalPrice);
    

Use Escape Sequences for Proper Formatting

  • \\n → New line

  • \\t → Tab space

  • \\" → Double quote

  • \\\\ → Backslash

    
    System.out.println("Hello\\nWorld");  // Newline
    System.out.println("Name:\\tJohn Doe"); // Tab space
    System.out.println("\\"Java Programming\\""); // Double quotes
    

Redirecting Output to a File Instead of Console

  • Use PrintWriter to write output to a file instead of printing to the console.

    
    import java.io.*;
    
    public class FileOutputExample {
        public static void main(String[] args) throws IOException {
            PrintWriter writer = new PrintWriter(new FileWriter("output.txt"));
            writer.println("Hello, this is printed to a file!");
            writer.close();
        }
    }
    

Using String.format() Instead of Printf

  • String.format() can be used to format strings without printing immediately.

    
    String message = String.format("Total: %.2f", 123.456);
    System.out.println(message);
    

Use Streams for Advanced Output

  • Print an array in a single line using Arrays.stream().

    
    import java.util.Arrays;
    
    public class StreamExample {
        public static void main(String[] args) {
            int[] numbers = {1, 2, 3, 4, 5};
            Arrays.stream(numbers).forEach(num -> System.out.print(num + " "));
        }
    }
    

Suppress Output in Unit Tests

  • Redirect System.out during JUnit tests to avoid unnecessary console prints.

    
    @Test
    public void testMethod() {
        PrintStream originalOut = System.out;
        System.setOut(new PrintStream(new ByteArrayOutputStream()));
    
        // Your test code here...
    
        System.setOut(originalOut); // Restore original output
    }
    

Final Summary

  • Use the correct print method (print, println, printf).

  • Use format specifiers (%d, %f, %s) to control output formatting.

  • Minimize print statements in production—use logging instead.

  • Ensure readability by structuring print statements properly.

  • Use escape sequences (\\n, \\t) for clean formatting.

  • Redirect output to files when needed using PrintWriter.

  • Use String.format() when you need formatted strings without immediate printing.

  • Use Java Streams for printing arrays cleanly.

  • Suppress console output during unit tests.

Conclusion

In Java, printing output to the console plays a crucial role in debugging, providing feedback, and enhancing user interaction. The most commonly used methods for printing output are System.out.print(), System.out.println(), and System.out.printf().

  • System.out.print(): This method is used for printing content to the console without adding a newline character at the end. It is useful when you want to display multiple pieces of information on the same line.

  • System.out.println(): This is the most widely used method for printing in Java. It appends a newline character after the output, ensuring that subsequent content appears on a new line. It’s perfect for general-purpose printing and logging.

  • System.out.printf(): This method offers a way to format the printed output. It allows developers to control the number of decimal places, alignment, padding, and other formatting details, making it ideal for presenting formatted data in a user-friendly way.

In addition to these, Java provides other ways of printing, such as using PrintWriter, which offers additional methods to print data in different formats, and logging frameworks like SLF4J and Log4j that are more suitable for production environments, as they allow for log levels and more structured output management.

Mastering these different printing mechanisms ensures that Java developers can efficiently display information, debug their programs, and provide users with clear and meaningful output. Proper use of printing functions also contributes to the maintainability and readability of the code, especially when working on larger, more complex applications.

Whenever you're ready

There are 4 ways we can help you become a great backend engineer:

The MB Platform

Join 1000+ backend engineers learning backend engineering. Build real-world backend projects, learn from expert-vetted courses and roadmaps, track your learnings and set schedules, and solve backend engineering tasks, exercises, and challenges.

The MB Academy

The “MB Academy” is a 6-month intensive Advanced Backend Engineering BootCamp to produce great backend engineers.

Join Backend Weekly

If you like post like this, you will absolutely enjoy our exclusive weekly newsletter, Sharing exclusive backend engineering resources to help you become a great Backend Engineer.

Get Backend Jobs

Find over 2,000+ Tailored International Remote Backend Jobs or Reach 50,000+ backend engineers on the #1 Backend Engineering Job Board