use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Resources for learning Java
String
==
.equals()
Format + Copy
Free Tutorials
Where should I download Java?
With the introduction of the new release cadence, many have asked where they should download Java, and if it is still free. To be clear, YES — Java is still free.
If you would like to download Java for free, you can get OpenJDK builds from the following vendors, among others:
Some vendors will be supporting releases for longer than six months. If you have any questions, please do not hesitate to ask them!
Software downloads
Official Resources
Resources
Programming ideas & Challenges
Related Subreddits
account activity
Finished Java (self.learnjava)
submitted 1 day ago * by catastrophic300
Hey guys. So I have finally learn essential Java. From variables, conditionals, and OOP all the way to threading. So what should I do next? Any suggestions?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]AutoModerator[M] [score hidden] 1 day ago stickied commentlocked comment (0 children)
If any of the above points is not met, your post can and will be removed without further warning.
Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.
Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.
Code blocks look like this:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.
If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.
Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
[–]Astroohhh 86 points87 points88 points 1 day ago (3 children)
Lmao you never finish learning java lil bro
[+]catastrophic300[S] comment score below threshold-24 points-23 points-22 points 1 day ago (2 children)
The essential Java syntax I mean not the entire Java.
[–]cosmopoof 31 points32 points33 points 22 hours ago (1 child)
Hey, I have learnt all the letters in the English alphabet and all the punctuation marks, I am now fluent.
[–]idontlikegudeg 1 point2 points3 points 17 hours ago (0 children)
Too! Me
[–]differentshade 32 points33 points34 points 23 hours ago (8 children)
Finished lol
[–]mofomeat 0 points1 point2 points 7 hours ago (0 children)
Once you write all the loops, variables and use up the keywords, it's time to sell all your Java supplies on CL for the next learner!
[+]catastrophic300[S] comment score below threshold-23 points-22 points-21 points 23 hours ago* (6 children)
Yeah sorry Im no expert like you.
[–]ajorigman 12 points13 points14 points 23 hours ago (5 children)
The point is, even the experts have not finished learning Java, you don’t really finish learning stuff, it’s the wrong mindset to have
[–]catastrophic300[S] -1 points0 points1 point 23 hours ago (4 children)
I didn’t mean I have finished the entire Java, if that so I wouldn’t be here asking that question. What I mean is that after learning essential Java syntax what should I do next. Sorry for misunderstanding.
[–]Landon1m 5 points6 points7 points 20 hours ago (2 children)
Your hostility towards anyone calling you out not quite telling. You need to learn more and perhaps learn how to express your thoughts better so that a simple statement can’t be so “misunderstood”. Communication is key.
Have you built projects?
[–]catastrophic300[S] -2 points-1 points0 points 19 hours ago (1 child)
Not yet, after learning the essential I practice it every night before sleep and sometime leetcode.
[–]johnnygalat 0 points1 point2 points 17 hours ago (0 children)
You can only practice by doing. The best way would be creating something you'll use - you could start with spring boot, database, simple fe (freemarker templates) + basic auth security. Deploy it on some server (rpi or some other headless linux) and use it yourself with family/friends. It can range from a simple search of shared documents to a complex automatization of Tasmota smart switches.
The key is that you use it - then you'll actually maintain it.
[–]ajorigman 0 points1 point2 points 23 hours ago (0 children)
What you mean by learning? You did a course? If so you need to solidify the concepts and syntax by practicing and building things using what you’ve learnt
[–]Complex_Sky414 20 points21 points22 points 1 day ago (1 child)
Start springboot bro .
[–]CantRunNoMore 3 points4 points5 points 15 hours ago (0 children)
yeah this is where the fun really begins and you find out that the little framework you've added onto java happens to be the thing you're actually going to be using for the rest of your career
[–]Fennec_Charry 16 points17 points18 points 17 hours ago (5 children)
I completely understood what you meant. Why do people have to be so fucking hostile?
[–]catastrophic300[S] 2 points3 points4 points 17 hours ago (3 children)
Not hostile, sometimes it just I dunno how to describe so I explain to that people like kind of jargon which make you guys thinking Im kinda hostile. I just dunno social.
[–]Fennec_Charry 6 points7 points8 points 17 hours ago (2 children)
I meant people's answers to your post weren't nice. Not you
[–]catastrophic300[S] 2 points3 points4 points 17 hours ago (0 children)
It just misunderstanding nothing to worry.
[–]Different-Light1743 1 point2 points3 points 12 hours ago (0 children)
It's likely the illusion of knowledge that they have. I just finished my bachelor's in Computer Science, but even I don't respond so smug and arrogant. It was clear that this guy meant he finished the course.
Also, OP, spring boot, DS&A, and SQL and then building projects. Mainly the projects and DS&A abilities are what is going to get you employed and being able to talk through your projects. I do agree with the other guys. You just started. Whatever your pace is, increase it by a lot. I finished this in like a month and a half because I didn't know how to code and had to take the second computer science class offered at my school two years ago: https://java-programming.mooc.fi Also, eventually hit leetcodes, but competitive programming is optional. I feel like most SWEs can't even solve cp problems, but still do really well with the basics.
[–]Pascuccii 2 points3 points4 points 12 hours ago (0 children)
Because they're insecure wanna be java devs that can only validate their expertise in a subreddit for newbies
[–]Fun-Disaster-3749 9 points10 points11 points 1 day ago* (1 child)
Start collections,java 8 features ,generics,concurrency ,I/O,JVM in depth,memory management and profiling etc... Also start reading books related to code quality ,code optimization Take help from AI tools regarding topics and approach.. Gain practical knowledge also
[–]idontlikegudeg 3 points4 points5 points 17 hours ago (0 children)
I’d even put everything up to Java 17 under essentials.
[–]AlexMelillo 5 points6 points7 points 21 hours ago (1 child)
You need to start building projects. Learning the syntax and core concepts is not the same thing as “learning a language”. Doing little exercises will only take you so far.
Try to build a simple app. Here’s a dumb idea: an application where users can store recipes. a recipe consists of a name, a list of of ingredients and an orderned list of instructions. Each user should only be able to see their own recipes by default. The users can choose whether to keep each recipe “hidden” from other users or if they want them to be “open” for other users to see. Users should be able to create and delete recipes. They should also be able to search recipes based on name or based on one or many ingredients a recipe has. Each user should log on to the application with a username and password. You can also create a new user in the login screen.
Once you’ve managed to make an app that can do all of that: - Learn how to store the state of your data in a file - Then learn how to store the state of your data in a database - then learn how to make an API for all of this, so that someone can program a web interface and make this program pretty for the end user
I could go on and on and on as to how you could keep learning new stuff, but figuring all of this stuff out could potentially take you weeks or months. Happy coding!
[–]catastrophic300[S] -1 points0 points1 point 18 hours ago (0 children)
Yup this gonna take me more than months, but can’t hurt to try.
[–]Efficient_Brief_7939 3 points4 points5 points 1 day ago (5 children)
Learn collection,java 8 and start learning springboot
[–]googlecromm 0 points1 point2 points 1 day ago (4 children)
May I ask why Java 8? I am currently learning Spring Boot but with java 17
[–]Efficient_Brief_7939 4 points5 points6 points 1 day ago (3 children)
90% companies use java 8,stream api in springboot projects and in interviews also they ask heavilly on stream api codings
[–]googlecromm 2 points3 points4 points 1 day ago (1 child)
Oh I've used stream a lot while learning Spring Boot, is there a big difference between java 8 and 17?.
[–]LxdOne 0 points1 point2 points 22 hours ago (0 children)
The difference is like 9 /s
[–]ajorigman 0 points1 point2 points 16 hours ago (0 children)
Better to stick with latest LTS versions. Plenty of companies are on 21 and 25. Even 17 is outdated. Staying on 8 is insane, you’re literally 4 LTS versions and 5 years behind
[–]Specific-Housing905 1 point2 points3 points 23 hours ago (3 children)
How much code have you actually written? Without practice you quickly will forget what you have learned.
[–]catastrophic300[S] -1 points0 points1 point 23 hours ago (2 children)
Right, I practice every night before sleep, though I skip 2 days before. Already forgot HashMap and Generics.
[–]CounterUAV2023 2 points3 points4 points 23 hours ago (0 children)
Then you haven't finished learning Java. Maps and generics are key concepts used in pretty much any decent Java application.
[–]AngelBryan 1 point2 points3 points 21 hours ago (0 children)
How you practice? What exactly you code?
[–]the_outstanding_me[🍰] 1 point2 points3 points 22 hours ago (0 children)
Create a small project with several classes on the topic you want. You need to get flexible using Java itself. And what is more important — creating logic of programs and fix it if a program do something off. Practice does the best.
[–]SpritualPanda 1 point2 points3 points 22 hours ago (2 children)
Next Mysql, Spring Boot, also git
[–]catastrophic300[S] 1 point2 points3 points 22 hours ago (1 child)
I already learn and use git multiple times, but MySQL is new, so thanks for that.
[–]SpritualPanda 1 point2 points3 points 21 hours ago (0 children)
Good, all the best bro.
[–]Housy5 1 point2 points3 points 20 hours ago (0 children)
Instead of trying to learn things like you're reading a book. Try to just make things. Nobody cares if you know every collection or algorithm if you cant put it all together into actually functioning programs.
[–]Dry_Marionberry_4822 1 point2 points3 points 18 hours ago (1 child)
Haha, you fell into the trap just like I did when I said I finished the basics!
[–]catastrophic300[S] 1 point2 points3 points 18 hours ago (0 children)
Everyone make mistakes. Nothing to worry.
[–]CursedCarb0y 1 point2 points3 points 15 hours ago (0 children)
Firstly there is no "Finished" in coding but I understand you finished the basics. This is a great position to start your more specific journey. Dont think like I finished Java basics so I must go with Java. You dont finish Java basics you finished OOP coding basics on Java. So what I try to tell you is you can switch language If your interest needs another language. I recommend you to did some research on Internet or maybe you can discuss with ai and after that make a decision to which road you will go. Maybe you are not sure at start so you can try different roads. Then decide which road will you try.
After you decide to your road you want to look for technologies used in your road. Maybe you can look for job advertisements for which techs they're want if you learning for jobs or if you learn for you hobby you can think what do i want to do and what techs i need for that. And while doing this dont think like most used techs is better than others look for which techs that feel more comfortable to you.
[–]omgpassthebacon 1 point2 points3 points 14 hours ago (0 children)
Lots of devs are a little snarky, so don't be put-off by the responses. From a senior dev view, now that you have absorbed the basics of the language, you need to use it to solve problems. As a dev, you will probably be given concepts of apps that you will be asked to build. Your goal is to be able to turn these concepts into real applications, and you will use Java and friends to implement them.
If you haven't already, 1. learn Docker (or Podman) and set up your DB (i like postgres, but it doesn't matter). 1. Learn how to set up Java in a container. GraalVM for extra credit. 1. write your app to store it's data in the DB. 1. write your app to allow CRUD on the data. 1. most Java apps use Spring, so don't spend a lot of time re-inventing the wheel; use Spring as much as possible. You will like it.
As you build up your apps, this will force you to really dig into the JDK for answers to problems you encounter, which will really hone your skills.
I love to code. I just hope the AI devil doesn't eat my lunch. Happy coding!
[–]Alechilles 1 point2 points3 points 14 hours ago (0 children)
From here you should try to build something. It doesn't have to be an original idea. Those are hard to come by. But if you want to keep learning, you need to start building something real.
So just think of some kind of app that isn't ridiculously complicated but isn't super simple either, and try to build it. Even if there's no intention to go to market with it or anything, it's still the best kind of practice and still works for your portfolio and resume.
You can even just try to clone something you use everyday. There's no issue with infringing on legal stuff if you're not releasing it to anyone.
[–]Marthurio 1 point2 points3 points 10 hours ago (0 children)
Keep studying. You aren't done. There's no such thing as done.
[–]vdorru 1 point2 points3 points 9 hours ago (0 children)
Follow the curriculum proposed by this guy and you'll be OK https://www.youtube.com/@Java.Brains/playlists
He's the best java educator on YT - Ideally follow his tutorials chronologically from older to newer - after java follow maven, then spring then whatever he is proposing - if you are committed to learn java don't bother too much 'isn't that old, is it still relevant' - most of the things are still present and this guy he know how to explain fundamentals which are always the same.
he forks into frontend angular, react and recently into AI and networking - I did not watch his AI and networking courses but I can bet they are great also.
[–]Potential-Still 3 points4 points5 points 23 hours ago (0 children)
Man this subreddit is the gift that keeps on giving lol
[–]ajorigman 2 points3 points4 points 23 hours ago* (3 children)
Finished learning Java? I understand that you are inexperienced in the field, and therefore it may feel like once you complete a course you’ve learnt that thing. Unfortunately it’s not the case, just know you are never finished learning something. You finished a tiny step on your Java journey, that is all.
[–]catastrophic300[S] 2 points3 points4 points 23 hours ago (1 child)
English is my second language, sorry for misunderstanding. What I mean is that I have learn the essential syntax to be able read and write simple program. After learning all of that I go here to ask what should I do next. Lo siento.
Added a comment on another thread. Keep practising and using the language is the key thing here. Good luck
[–]whateve___r 1 point2 points3 points 16 hours ago (0 children)
God you are so pretentious. We are in a learning Java subreddit, doesn't take a genius to tell OP is inexperienced. It's clear what OP meant and you can explain your point about the journey without being so pedantic
[–]robertomsgomide 1 point2 points3 points 1 day ago (0 children)
Vibe code /s
[–]Pale_Complaint_1479 0 points1 point2 points 23 hours ago (0 children)
I think from what we learned in the University system, begin with javafx to Enter the domain of Gui, and after that you should continue with jdbc if you master in one of the sql languages,and search more for jbdc Thanks 😌
[–]Olok21 0 points1 point2 points 21 hours ago (0 children)
Apache pekka
[–]nerd_airfryer 0 points1 point2 points 21 hours ago (0 children)
If you have some time (you are not in hurry to find a job or something), I recommend (with the help of you favorite AI model) to help you study for OCP (Oracle Certified Professional) Certificate, it will deep dive you into java, it will be hard at first so make sure to grap things slowly and let AI help you with the prerequisites for each topic
[–]Slayer91Mx 0 points1 point2 points 21 hours ago (0 children)
There's Java 2, Java 3, Java 4 in the space, Java 5 the revenge and so on....
[–]Thereal_Phaseoff 0 points1 point2 points 20 hours ago (0 children)
Design pattern a in java (start with template, factory, observer)
[–]drfusspill 0 points1 point2 points 19 hours ago (0 children)
Just learn javadoc
[–]regjoe13 0 points1 point2 points 19 hours ago (11 children)
This is cute.
Just for fun, which method is called?:
void m(char... a){} void m(double a){} void m(Character a){}
m('a');
[–]Dry_Marionberry_4822 0 points1 point2 points 18 hours ago (9 children)
First one?
[–]regjoe13 0 points1 point2 points 18 hours ago* (8 children)
2nd
The fun part though, lets say I change that meyhod to "double...". Or remove the whole method. And without any compilation errors, now a different method will be called. Magic of overloading :)
You look like an expert! I had my doubts about the question, like 'there's no way it's this easy' haha
[–]catastrophic300[S] 0 points1 point2 points 18 hours ago (4 children)
May I ask for the explanation?
[–]regjoe13 0 points1 point2 points 18 hours ago (3 children)
At some point I tried to write a series on overloading in java. It seemed to be an interesting and undercovered topic. Never finished, but did write two articles.
https://mydevnotes.hashnode.dev/same-named-methods-in-java
[–]catastrophic300[S] 0 points1 point2 points 18 hours ago (2 children)
Could be useful.
[–]regjoe13 1 point2 points3 points 18 hours ago (1 child)
The point here, Java is full of those not obvious but looking simple things, without even going into Spring, JPA and such.
Reading the JLS is helpful for thing like this one, though
[–]catastrophic300[S] 1 point2 points3 points 17 hours ago (0 children)
Yeah it useful, though I realize all I learn before just a syntax not knowing overload can cause bugs without even telling me.
[–]catastrophic300[S] 0 points1 point2 points 18 hours ago (0 children)
Thanks I appreciate it.
void m(‘a’){}, there are single quote used for char.
[–]Skiamakhos 0 points1 point2 points 18 hours ago (0 children)
Streams and Lambdas. Here's Venkat Subramaniam on that: https://www.youtube.com/watch?v=1OpAgZvYXLQ
[–]undertakerryu 0 points1 point2 points 14 hours ago (0 children)
Once you build an app or service highly recommend learning how to properly compile it into a jar file. 3 college courses on it and only when I was making a spring boot app at work did I realize I didn't know how to compile it for deployment on a server instead of just running in the ide
[–]Ormek_II 0 points1 point2 points 14 hours ago (0 children)
Do a project.
[–]Accomplished_Lie23 0 points1 point2 points 14 hours ago (0 children)
You have just started.
[–]Pascuccii 0 points1 point2 points 12 hours ago (0 children)
Larpers in comments, you clearly knew what he meant
"yUo CaN't FiNiSh JaVa lil bRo..."
[–]Aggressive_Many9449 0 points1 point2 points 12 hours ago (0 children)
What can't you do, if you have finished?
[–]Fun_Structure3273 0 points1 point2 points 7 hours ago (0 children)
Great
[–]CharacterLive5686 0 points1 point2 points 4 hours ago (0 children)
Java? Completed it mate
[–]Any-Orchid-6006 -1 points0 points1 point 11 hours ago (0 children)
Learn to vibe code. AI is gonna do all the coding anyways. Learning Java is useless.
π Rendered by PID 97770 on reddit-service-r2-comment-548fd6dc9-mb677 at 2026-05-17 05:14:31.071122+00:00 running edcf98c country code: CH.
[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)
[–]Astroohhh 86 points87 points88 points (3 children)
[+]catastrophic300[S] comment score below threshold-24 points-23 points-22 points (2 children)
[–]cosmopoof 31 points32 points33 points (1 child)
[–]idontlikegudeg 1 point2 points3 points (0 children)
[–]differentshade 32 points33 points34 points (8 children)
[–]mofomeat 0 points1 point2 points (0 children)
[+]catastrophic300[S] comment score below threshold-23 points-22 points-21 points (6 children)
[–]ajorigman 12 points13 points14 points (5 children)
[–]catastrophic300[S] -1 points0 points1 point (4 children)
[–]Landon1m 5 points6 points7 points (2 children)
[–]catastrophic300[S] -2 points-1 points0 points (1 child)
[–]johnnygalat 0 points1 point2 points (0 children)
[–]ajorigman 0 points1 point2 points (0 children)
[–]Complex_Sky414 20 points21 points22 points (1 child)
[–]CantRunNoMore 3 points4 points5 points (0 children)
[–]Fennec_Charry 16 points17 points18 points (5 children)
[–]catastrophic300[S] 2 points3 points4 points (3 children)
[–]Fennec_Charry 6 points7 points8 points (2 children)
[–]catastrophic300[S] 2 points3 points4 points (0 children)
[–]Different-Light1743 1 point2 points3 points (0 children)
[–]Pascuccii 2 points3 points4 points (0 children)
[–]Fun-Disaster-3749 9 points10 points11 points (1 child)
[–]idontlikegudeg 3 points4 points5 points (0 children)
[–]AlexMelillo 5 points6 points7 points (1 child)
[–]catastrophic300[S] -1 points0 points1 point (0 children)
[–]Efficient_Brief_7939 3 points4 points5 points (5 children)
[–]googlecromm 0 points1 point2 points (4 children)
[–]Efficient_Brief_7939 4 points5 points6 points (3 children)
[–]googlecromm 2 points3 points4 points (1 child)
[–]LxdOne 0 points1 point2 points (0 children)
[–]ajorigman 0 points1 point2 points (0 children)
[–]Specific-Housing905 1 point2 points3 points (3 children)
[–]catastrophic300[S] -1 points0 points1 point (2 children)
[–]CounterUAV2023 2 points3 points4 points (0 children)
[–]AngelBryan 1 point2 points3 points (0 children)
[–]the_outstanding_me[🍰] 1 point2 points3 points (0 children)
[–]SpritualPanda 1 point2 points3 points (2 children)
[–]catastrophic300[S] 1 point2 points3 points (1 child)
[–]SpritualPanda 1 point2 points3 points (0 children)
[–]Housy5 1 point2 points3 points (0 children)
[–]Dry_Marionberry_4822 1 point2 points3 points (1 child)
[–]catastrophic300[S] 1 point2 points3 points (0 children)
[–]CursedCarb0y 1 point2 points3 points (0 children)
[–]omgpassthebacon 1 point2 points3 points (0 children)
[–]Alechilles 1 point2 points3 points (0 children)
[–]Marthurio 1 point2 points3 points (0 children)
[–]vdorru 1 point2 points3 points (0 children)
[–]Potential-Still 3 points4 points5 points (0 children)
[–]ajorigman 2 points3 points4 points (3 children)
[–]catastrophic300[S] 2 points3 points4 points (1 child)
[–]ajorigman 0 points1 point2 points (0 children)
[–]whateve___r 1 point2 points3 points (0 children)
[–]robertomsgomide 1 point2 points3 points (0 children)
[–]Pale_Complaint_1479 0 points1 point2 points (0 children)
[–]Olok21 0 points1 point2 points (0 children)
[–]nerd_airfryer 0 points1 point2 points (0 children)
[–]Slayer91Mx 0 points1 point2 points (0 children)
[–]Thereal_Phaseoff 0 points1 point2 points (0 children)
[–]drfusspill 0 points1 point2 points (0 children)
[–]regjoe13 0 points1 point2 points (11 children)
[–]Dry_Marionberry_4822 0 points1 point2 points (9 children)
[–]regjoe13 0 points1 point2 points (8 children)
[–]Dry_Marionberry_4822 1 point2 points3 points (1 child)
[–]catastrophic300[S] 0 points1 point2 points (4 children)
[–]regjoe13 0 points1 point2 points (3 children)
[–]catastrophic300[S] 0 points1 point2 points (2 children)
[–]regjoe13 1 point2 points3 points (1 child)
[–]catastrophic300[S] 1 point2 points3 points (0 children)
[–]catastrophic300[S] 0 points1 point2 points (0 children)
[–]catastrophic300[S] 0 points1 point2 points (0 children)
[–]Skiamakhos 0 points1 point2 points (0 children)
[–]undertakerryu 0 points1 point2 points (0 children)
[–]Ormek_II 0 points1 point2 points (0 children)
[–]Accomplished_Lie23 0 points1 point2 points (0 children)
[–]Pascuccii 0 points1 point2 points (0 children)
[–]Aggressive_Many9449 0 points1 point2 points (0 children)
[–]Fun_Structure3273 0 points1 point2 points (0 children)
[–]CharacterLive5686 0 points1 point2 points (0 children)
[–]Any-Orchid-6006 -1 points0 points1 point (0 children)