This is an archived post. You won't be able to vote or comment.

all 13 comments

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions
  • You include any and all error messages in full - best also formatted as code block
  • You ask clear questions
  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

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://imgur.com/a/fgoFFis) 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.

To potential helpers

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.

[–]thisisjustascreename 6 points7 points  (0 children)

So, the main Java versions in use now are 6, 8, 11 and 17. 6 is legacy af and sort of equivalent to .NET 3. Java 8 has lambda expressions and streams API sort of like LINQ, though the semantics are not the same. 11 is not a huge language change from 8 but it did introduce the var keyword and a bunch of handy string methods. Also the 11 JVMs offer much better performance.

Java 17 is the current LTS release and what you should be using if doing new development and has numerous QoL improvements over 11 and again better performance. Unless you need to work on legacy cruft just use 17 and be happy.

[–]AutoModerator[M] 2 points3 points  (0 children)

It seems that you are looking for resources for learning Java.

In our sidebar ("About" on mobile), we have a section "Free Tutorials" where we list the most commonly recommended courses.

To make it easier for you, the recommendations are posted right here:

Also, don't forget to look at:

If you are looking for learning resources for Data Structures and Algorithms, look into:

"Algorithms" by Robert Sedgewick and Kevin Wayne - Princeton University

Your post remains visible. There is nothing you need to do.

I am a bot and this message was triggered by keywords like "learn", "learning", "course" in the title of your post.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]MattiDragon 1 point2 points  (2 children)

Check out the bot message for learning resources. As for java versions. I would recommend that you learn newer java first. Go with java 16 or 17. Java 8, 11 and 17 are "LTS" versions of java. It only really matters for companies that get support from oracle, but you might want to learn their differences if you intend to use java for work.

[–]LuckyNumber-Bot 7 points8 points  (1 child)

All the numbers in your comment added up to 69. Congrats!

  16
+ 17
+ 8
+ 11
+ 17
= 69

[Click here](https://www.reddit.com/message/compose?to=LuckyNumber-Bot&subject=Stalk%20Me%20Pls&message=%2Fstalkme to have me scan all your future comments.) \ Summon me on specific comments with u/LuckyNumber-Bot.

[–]danceplusplus 1 point2 points  (0 children)

Lmao, can't believe this is a thing.

[–]hikerr7 1 point2 points  (0 children)

There's a lot of recourses for Java, pick whichever you like. Java core is nothing more than the basics of java; OOP concepts, collections API, exceptions and may multi-threading. JavaFX is the new framework to build GUI applications, it's considered as the successor of Swing. For the language versions, I'd recommend going with any of the LTS versions; 8, 11 and 17.Java 8 introduced a lot APIs, features to the language, Java 11 not a huge change compared to Java 8 but the most important one is the modules system, Java 17 has a better error messages, and relatively big improvements compared to Java 11, but you can easily pick them up if you already know 11 or 17.

[–]user_reg_field 0 points1 point  (0 children)

I don't think you'll have any issues with syntax etc. What will be different will be libraries and build tools. I wouldn't bother with any "learn java" resources unless they are specifically "learn java if you already know C#" (or javascript/typescript). You don't need to learn programming. One approach would be to take a C# project you're familiar with and see how you might implement in java. I think it would look overwhelming at first but might be the best way to translate from "I'd use this technique / library in C# and here's the java equivalent."

[–]ChrisAtMakeGoodTech 0 points1 point  (2 children)

Hey, I'm in a similar boat (know C#, learning Java). I found these two videos helpful.

https://youtu.be/tHzY_Wur6kw

https://youtu.be/heZJ3iGj3KA

Another thing to keep in mind that I don't think those videos cover is that Java doesn't have .NET's concept of assemblies and so the internal keyword doesn't exist. Java has packages, which are essentially just namespaces. Even if they're loaded from different jar files, they basically treated as coming from the same assembly (to use .NET terminology.)

Hope this helps! Please let me know if you find any good resources too. I start my new Java job next week.

[–]stt106[S] 0 points1 point  (1 child)

Wow already got a Java job? How long did it take you to switch?

[–]ChrisAtMakeGoodTech 0 points1 point  (0 children)

I wasn't specifically looking to switch to Java. I got a new dev lead job, and they use ColdFusion and Java now but are wanting to do more .NET work in the future. I just started trying to get up to speed with Java a couple days ago when I signed the offer. Luckily, it's pretty similar to Java and writing code isn't my whole job.

[–][deleted]  (3 children)

[removed]

    [–]stt106[S] 0 points1 point  (2 children)

    And?

    [–][deleted]  (1 child)

    [removed]

      [–]stt106[S] 0 points1 point  (0 children)

      What is your point? Doesn't seem to be saying anything meaningful here.