u/Raushanrajj

Graduating high school this year with zero plan — how did you figure out what to do next?

Hey everyone, so I'm graduating in a few weeks and honestly I feel completely lost. Most of my friends already know what college they're going to or have a gap year plan figured out, but I'm sitting here with no idea what direction to take.

I don't know if I should jump into a 4-year university, go community college route to save money, look into trade schools, or just work for a bit while I figure things out. Nobody in my family went to college so I don't really have anyone to guide me through this.

For those of you who were in a similar spot - what did you do? Did you figure out your major before applying or just pick something general? Any advice on how to even start researching options would be super helpful. Feeling a little overwhelmed ngl.

reddit.com
u/Raushanrajj — 9 days ago

What is OOP in Java and why is it so important?

Hey everyone,

Been learning Java for a bit and keep hearing OOP is the foundation of everything. I get the basic idea - 4 pillars: Encapsulation, Inheritance, Polymorphism, and Abstraction - but I'm not 100% sure I fully understand why it matters so much in real-world Java.

Like is it just about keeping code organized or is there more to it?

A few questions:

Which pillar do most beginners struggle with?

Did OOP ever "click" for you after a specific project?

Any tips for actually thinking in OOP rather than just memorizing definitions?

Would love to hear from people who've been at this longer than me. Thanks

reddit.com
u/Raushanrajj — 11 days ago

What exactly are constructors in Java and why do we even need them?

Hey everyone I have been learning Java for a few weeks now and I keep running into the word "constructor" everywhere in tutorials, in code example pretty much anywhere OOP comes up.

I sort of understand that it's related to creating objects but I'm honestly confused about a few things:

What does a constructor actually do behind the scenes when you call new?

Why can't I just set fields directly after creating an object instead of using a constructor?

What's the difference between a default constructor and a parameterized constructor?

If I don't write a constructor does Java automatically give me one?

Heres a simple example I have been staring at:

public class Dog {

String name;

int age;

// Is this a constructor? Why no return type?

public Dog(String name, int age) {

this.name = name;

this.age = age;

}

}

I get that it initializes name and age but I don't fully understand why this is better than just doing:

Dog d = new Dog();

d.name = "Buddy";

d.age = 3;

Is it just about convenience, or is there something more fundamental going on? Any explanation or real-world analogy would be super helpful. Thanks in advance

reddit.com
u/Raushanrajj — 11 days ago

What's actually the difference between == and .equals() in Java? I keep getting confused

So I have been learning Java for a couple months now and this is something that keeps tripping me up. I thought == just compared two things to see if they are equal but apparently it doesn't always work the way I expect?

Here's what I tried:

String a = new String("hello");

String b = new String("hello");

System.out.println(a == b); // false??

System.out.println(a.equals(b)); // true

Why does == return false here when both strings clearly have the same value? I don't get what's going on under the hood.

I've read that == checks "reference equality" and .equals() checks "value equality" but I'm not 100% sure what that means in practice. Like, when should I use one vs the other?

Also does this apply to other objects too or is it just a String thing?

Any explanation would be really appreciated.

reddit.com
u/Raushanrajj — 12 days ago

Why do I keep getting 'cannot find symbol' errors?

Hey everyone, I'm learning Java and keep running into this compiler error and I'm honestly a little confused about what's causing it. Here's a simple example of what I'm seeing:

public class Main {

public static void main(String[] args) {

System.out.println(greet());

}

public static String greet() {

String message = "Hello, World!";

return massege; // typo here

}

}

Error I get:

Main.java:8: error: cannot find symbol

return massege;

^

symbol: variable massege

location: class Main

I know in this example its a typo but I keep running into this error even when I think I spelled everything right. From what I understand it can happen for a few different reasons - not just typos.

What I've tried so far:

Double-checking variable names for typos

Making sure I'm not using a variable outside its scope

Checking that imports are in place

Can someone break down the most common reasons this error shows up? Would really appreciate it - I feel like understanding this properly will save me a ton of debugging time going forward. Thanks!

reddit.com
u/Raushanrajj — 12 days ago

Just started learning Java - can someone explain variables and data types in simple terms?

Hey everyone, I'm pretty new to Java and just getting started with the basics. I keep seeing the terms variables and data types everywhere in tutorials and I think I understand them at a surface level but I want to make sure I'm actually getting it right before I move forward.

From what I've read so far:

A variable is basically a container that stores a value, right

And a data type tells Java what kind of value its storing like a number, text, true/false, etc.

I also ran into terms like int, double, char, boolean, and String - are these all data types and is String different from the rest because it starts with a capital letter?

I tried writing a small snippet just to test things out:

int age = 20;

double gpa = 3.8;

boolean isStudent = true;

String name = "William";

System.out.println(name + " is " + age + " years old.");

This ran fine, but I'm not 100% sure I understand why each type is used the way it is. Like when would I use float vs double? Or int vs long?

Any clear explanation or examples would be really appreciated.

reddit.com
u/Raushanrajj — 13 days ago

Why is Java called "platform-independent" and how does the JVM actually make that happen?

Hey everyone, I have been diving deeper into Core Java lately and kept coming across the phrase Write Once, Run Anywhere. I get the idea at a surface level but I want to actually understand the why behind it.

From what I have read so far, when you compile a Java program, it doesn't produce machine code directly it produces something called bytecode which goes into a class file. Then the JVM (Java Virtual Machine) on whatever OS you running interprets or JIT-compiles that bytecode into native machine code.

So my understanding is:

Java source code- compiled to bytecode (platform-neutral)

Bytecode - run by the JVM, which is platform-specific

The JVM acts as the translator between your code and the OS

What I still fuzzy on

Is Java truly platform-independent, or is it more accurate to say the bytecode is platform-independent while the JVM itself is not?

Does this mean every OS needs its own version of the JVM installed?

How does this compare to languages like Python or C in terms of portability?

Would love to hear how you all think about this concept especially if theres a cleaner mental model that clicked for you

reddit.com
u/Raushanrajj — 13 days ago

Why does Java require you to wrap everything in a class, even for simple programs?

Hey everyone,

Coming from a background where I have dabbled in Python and a bit of JavaScript, one thing that still trips me up with Java is how everything has to live inside a class even if I just want to print something to the console or run a quick calculation.

Like, why can't I just write:

System.out.println("Hello, World!");

without wrapping it in a class and a main method first?

I get that Java is object-oriented, but is there a deeper design reason behind this, or is it just how the language was built from the ground up? Does it actually help when you're working on larger projects, or does it sometimes feel like unnecessary boilerplate to you guys too?

Also curious do newer Java versions (like Java 21+) do anything to simplify this for beginners?

Would love to hear how you all think about it. Still wrapping my head around the OOP mindset honestly.

reddit.com
u/Raushanrajj — 14 days ago

chose it in like 10 minutes because i panicked during selection. thought java would be fine since i used it in class.

now i am 6 weeks in and everything that seemed simple in assignments feels completely different when you are building something from scratch. no skeleton code. no hints. just me and a blank file.

switching topics this late feels impossible but continuing feels just as bad. has anyone been this stuck this late into their project and actually pulled it off

reddit.com
u/Raushanrajj — 18 days ago

Hey everyone,

I've been getting back into programming lately and seriously considering going deep into Java. But I keep seeing people online saying things like "Java is dying" or "just learn Python/Go/Rust instead."

So I wanted to ask this community directly - people who actually work with Java day to day:

Is Java still a solid choice to invest time into in 2026?

A few things I'm specifically curious about:

Is the job market still strong for Java developers, especially for backend and enterprise roles?

How does Java hold up compared to newer languages like Kotlin or Go for backend development?

With Spring Boot still being so popular, does learning Java + Spring still make sense for someone trying to break into the industry?

Are there any areas where Java is genuinely thriving right now (Android? Microservices? Finance/banking?)?

I'm not a complete beginner - I understand basic OOP concepts - but I haven't built anything serious with Java yet. Just trying to make sure I'm not investing months into something the industry is walking away from.

Would really appreciate honest takes from people working in the field. Thanks in advance!

reddit.com
u/Raushanrajj — 1 month ago

Hey everyone,

So I have been learning Java for a few weeks now and I kept copy-pasting public static void main(String[] args) without really understanding what each word meant. I finally sat down and broke it apart and wanted to share what I learned in case it helps other beginners like me.

Here's how I understand it now:

public - This is an access modifier. It means the method is accessible from anywhere, including the JVM when it runs your program.

static - This means the method belongs to the class itself, not to any object. That's why the JVM can call it without creating an instance of your class first.

void - The method doesn't return anything. It just runs and exits.

main - This is the specific method name the JVM looks for as the entry point of your program.

String[] args - This is an array of Strings that lets you pass command-line arguments into your program when running it.

So basically the JVM is saying: "Give me a publicly accessible, class-level method called main that takes string arguments and returns nothing that's where I will start."

A simple example I tested:

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello World");

}

}

Does this make sense to others? Am I missing anything or getting something wrong? Would love to hear if anyone has a better way to think about it.

reddit.com
u/Raushanrajj — 1 month ago

Hey everyone I am fairly new in Java and keep seeing these three terms everywhere JDK, JRE, and JVM. I kind of understand they are related but I am not 100% clear on how they are different from each other.

Can anyone break it down in simple terms.

reddit.com
u/Raushanrajj — 2 months ago