JaJava · Lesson 2 of 9
Variables & Types
Java is strictly typed. You cannot assign an int to a String. You cannot even assign a long to an int without an explicit cast. Java trusts nothing.
Java
public class Variables {
public static void main(String[] args) {
// Primitive types (stored by value)
byte b = 127; // -128 to 127
short s = 32767;
int i = 2_147_483_647; // underscores for readability (Java 7+)
long l = 9_999_999_999L; // L suffix required
float f = 3.14f; // f suffix required
double d = 3.14159265358979;
boolean flag = true;
char c = 'A'; // 16-bit Unicode
// var — type inference (Java 10+)
var name = "Alice"; // String
var count = 42; // int
var pi = 3.14; // double
// String — special class (immutable, reference type)
String first = "Hello";
String second = "World";
String combined = first + ", " + second + "!";
// String methods
System.out.println(combined.length()); // 13
System.out.println(combined.toUpperCase()); // HELLO, WORLD!
System.out.println(combined.contains("World")); // true
System.out.println(combined.replace("World", "Java")); // Hello, Java!
System.out.println(combined.substring(7)); // World!
System.out.println(combined.trim()); // removes whitespace
// String comparison — use .equals(), NOT ==
String a = "hello";
String b2 = "hello";
System.out.println(a.equals(b2)); // true (correct)
// System.out.println(a == b2); // might be true (accident) or false
System.out.println(combined);
}
}Java
public class TypeConversion {
public static void main(String[] args) {
// Widening conversion (automatic)
int i = 42;
double d = i; // int -> double, automatic
// Narrowing conversion (explicit cast required)
double pi = 3.14159;
int truncated = (int) pi; // 3 — decimal part lost!
// String conversions
int num = 42;
String s = Integer.toString(num); // "42"
String s2 = String.valueOf(num); // "42"
String s3 = "" + num; // "42" (concatenation trick)
int back = Integer.parseInt("42"); // 42 (throws NumberFormatException if invalid)
double d2 = Double.parseDouble("3.14");
boolean flag = Boolean.parseBoolean("true"); // true
// Wrapper classes — boxed versions of primitives
Integer boxed = 42; // auto-boxing
int unboxed = boxed; // auto-unboxing
// Useful constants
System.out.println(Integer.MAX_VALUE); // 2147483647
System.out.println(Integer.MIN_VALUE); // -2147483648
System.out.println(Double.MAX_VALUE); // 1.7976931348623157E308
System.out.println(s + " " + back);
}
}⚠ Warning
Never use == to compare String objects. == checks if they're the same object in memory, not if they have the same content. Use .equals() for content comparison, .equalsIgnoreCase() for case-insensitive.
Never use == to compare String objects. == checks if they're the same object in memory, not if they have the same content. Use .equals() for content comparison, .equalsIgnoreCase() for case-insensitive.