I think it's technically needed for backward compatibility, since without it if some string literal happens to contain \{something}, it would break when they upgrade the Java version.
@@CodingWithJohn It is a design decision as well, from what I could understand from their latest talks about these new features the reason is to give developers the ability to create their custom template processors that can have additional logic, they gave the example of creating a custom SQL template processor that would have sanitizing included in the template processor logic itself so you could just call SQL."query with parameters" in the database layer and not to worry about sanitizing because that will be centralized in the template processor itself. You could use it to adhere to formatting standards for the queries and greatly reduce boilerplate code. There are more use cases for sure but I cant come up with any from the top of my head :D
Thanks for the tip! Told grandma about Java's new unnamed variables feature and she's finally considering upgrading from Java 8, her exact words were "About damn time."
String templates sounds good but it needs a little work I feel. This is the same concept as string interpolation in C# and its a little more friendly, you just add a $ in front of a string and then use the same braces as with the preview here like: $"part1 {insert} part2". Its quick and easy to use. The "_" is also a thing called disposables I believe and it can be really useful. I am happy to see Java catching up a little and hopefully they work on asynchronous execution in the future.
The thing is that they decide to go with processors because programmers can create their custom ones, like custom HTML, YAML, JSON, SQL, ... processors that will sanitaze the variables I think some frameworks like Hibernate will implement different SQL sanitizer processors, and Jackson will do JSON and YAML processors for example
Don't we already have string format? You just have to add all the variables in the correct order at the end. My first language was Python and string templates looks very good and comfortable
@@mukynas yes, Java does provide formatting for Strings. However this is about concatenation. Oftentimes in programming you just quickly wanna combine information, like in error messages. This should be as friendly and quick as possible. String Interpolation lets you do just that. Imagine you have a variable x. In C# you can write $"error occured while parsing {x}". Because you marked the string with a "$" C# knows curly braces will reference data and not be characters and inserts the value in the string. Javas proposal aims for the same functionality but it seems quiet cumbersome...
In lieu of chapter markers: * 1:43 - Unnamed variables * 7:03 - Compile and execute multi-file Java programs from command line * 9:14 - String templating (preview only)
Unfortunately, the string templates feature has been removed for now from std. Lib since they want iterate on the design at bit further before releasing it to the public. Just good to be aware of.
Not to compare as I love Java too .. but the string template feature is something .Net has implemented a few years back and Unix operating system has it way way long back .. I feel like Java is more moving towards like a scripting language like python or Java script and more of functional programming ofcourse
The current problem is it is always moving, I think it just shifting here and there to survive in the world of language wars. Java has been shifting it's programming style a lot lately. Which is not good
Those features are amazing, but... the '_' underscore variable discarding was in C# since 7.0 and they should definitely add more like from there :) The syntax sugar in C# makes it much much much better to use, so when java introduces something like this it interests me again in making things in Java
He missed the points of it, though. First, it is used to silence any "unused variable" warning (if Java has such a thing). Second, it saves the programmer from the need to come up with different distinct names for multiple unreferenced variables in the same scope.
Great to see you back! Like the new format and humor. Any updates planned for your bootcamp course? Would be great to see new modules added, or even a new advanced ‘part 2’ course
**Smash Like for Coding With John!!!!!** Coding is more than just a skill for me; it’s a passion that brings immense joy and satisfaction, particularly when shared with someone as inspiring as John. From the moment I first started coding, I knew it was something special. It was a way to bring ideas to life, solve complex problems, and create something tangible out of nothing but logic and creativity. However, the experience of coding became truly extraordinary when I began to do it alongside John. John’s enthusiasm for coding is contagious. His ability to break down complex problems into manageable pieces and his knack for explaining intricate concepts in simple terms have profoundly impacted my own coding journey. Every coding session with John feels like an adventure into uncharted territory. We approach challenges with curiosity and creativity, and his positive attitude makes even the most daunting bugs and errors seem like opportunities for growth. What sets John apart is not just his technical expertise but his genuine love for teaching and sharing knowledge. His mentorship is a blend of patience, encouragement, and insightful guidance. I have learned so much from him, not only about coding but also about problem-solving, perseverance, and the importance of a collaborative spirit. John’s ability to make coding sessions enjoyable and productive has turned what could have been a solitary task into a collaborative and enriching experience. Working with John has also highlighted the power of community in coding. The camaraderie we share during our sessions, the brainstorming, the laughter, and the collective triumphs when we solve a particularly tough problem-these moments have made me appreciate the value of working together. John has shown me that coding is not just about the end result but about the journey and the relationships built along the way. Our coding sessions often extend beyond the screen, as we discuss new technologies, share exciting ideas, and dream about future projects. These conversations inspire me to push my boundaries and explore new avenues in coding. John’s passion fuels my own, and together we drive each other to become better programmers and thinkers. In essence, coding with John has been an incredibly rewarding experience. It has turned a solitary pursuit into a shared passion and transformed the challenges of programming into opportunities for growth and discovery. John’s mentorship has enriched my coding journey in countless ways, and I am profoundly grateful for his guidance and companionship. **Smash Like for Coding With John!!!!!**
I'm pretty sure they wanted to find the most uncomfortable syntax possible to do string templating. Maybe they checked how the popular languages doing that and wanted to create something that worse.
If it wasn’t due to the possibility to create any custom string processor you want, I would agree. But Oracle looked at other languages and included an awesome feature. For instance, you can create a JSON string processor or a SQL processor that avoids SQL injection. It’s just amazing and sometimes a simple lambda.
Good tutorial there though I rather they ought to have used $ sign instead of \ for that String variable combination. A convention in number of languages. Besides, adding \ in xml with its cousin / already in abundance will bring more confusion.
**Smash Like for Coding With John!!!!!** Coding is more than just a skill for me; it’s a passion that brings immense joy and satisfaction, particularly when shared with someone as inspiring as John. From the moment I first started coding, I knew it was something special. It was a way to bring ideas to life, solve complex problems, and create something tangible out of nothing but logic and creativity. However, the experience of coding became truly extraordinary when I began to do it alongside John. John’s enthusiasm for coding is contagious. His ability to break down complex problems into manageable pieces and his knack for explaining intricate concepts in simple terms have profoundly impacted my own coding journey. Every coding session with John feels like an adventure into uncharted territory. We approach challenges with curiosity and creativity, and his positive attitude makes even the most daunting bugs and errors seem like opportunities for growth. What sets John apart is not just his technical expertise but his genuine love for teaching and sharing knowledge. His mentorship is a blend of patience, encouragement, and insightful guidance. I have learned so much from him, not only about coding but also about problem-solving, perseverance, and the importance of a collaborative spirit. John’s ability to make coding sessions enjoyable and productive has turned what could have been a solitary task into a collaborative and enriching experience. Working with John has also highlighted the power of community in coding. The camaraderie we share during our sessions, the brainstorming, the laughter, and the collective triumphs when we solve a particularly tough problem-these moments have made me appreciate the value of working together. John has shown me that coding is not just about the end result but about the journey and the relationships built along the way. Our coding sessions often extend beyond the screen, as we discuss new technologies, share exciting ideas, and dream about future projects. These conversations inspire me to push my boundaries and explore new avenues in coding. John’s passion fuels my own, and together we drive each other to become better programmers and thinkers. In essence, coding with John has been an incredibly rewarding experience. It has turned a solitary pursuit into a shared passion and transformed the challenges of programming into opportunities for growth and discovery. John’s mentorship has enriched my coding journey in countless ways, and I am profoundly grateful for his guidance and companionship. **Smash Like for Coding With John!!!!!**
string templates was something I was wondering if Java had about 8 months ago when I started working on an android app using java. Glad it is finally a feature.
Hey John, another great video, thank you! I was wondering if you know something about Java Serialization? It is a topic I would love to see in a video, because it is very useful, but it feels like magic to me. I would love to see a good explanation of it so I know how to use it properly!
Just a heads up, most do not recommend java serialization (Serializable and so on) as it has had so many extremely bad security vulnerabilities forever. The recommended solution is to serialize the objects to json or whatever format you prefer and use that. Many great extremely fast libraries for most if not all formats you could think of
String Templates (which was a preview feature) have been removed in JDK 23. They got feedback and saw that it wasn't really great to work with. There will probably be a new proposal without "String Template Processors", because we can simply use methods to process a String Template and it's more composable this way.
Unnamed variables I will use occasionally, but String templates are really nice. I do sometimes use String.format() or printf() rather than concatenation, but they still feel kinda clunky in their syntax.
Looks like it's unfortunately being removed even as a preview feature in Java 23, but hopefully to return in an even better format in a future release.
String templating is a thing from other languges and it works qithout having to add that str thing. But it‘s still soo good that after such a long time, Java can actually use a feature from other languages that is actually super helpful, makes me have a lot less issues with Java again.
**Smash Like for Coding With John!!!!!** Coding is more than just a skill for me; it’s a passion that brings immense joy and satisfaction, particularly when shared with someone as inspiring as John. From the moment I first started coding, I knew it was something special. It was a way to bring ideas to life, solve complex problems, and create something tangible out of nothing but logic and creativity. However, the experience of coding became truly extraordinary when I began to do it alongside John. John’s enthusiasm for coding is contagious. His ability to break down complex problems into manageable pieces and his knack for explaining intricate concepts in simple terms have profoundly impacted my own coding journey. Every coding session with John feels like an adventure into uncharted territory. We approach challenges with curiosity and creativity, and his positive attitude makes even the most daunting bugs and errors seem like opportunities for growth. What sets John apart is not just his technical expertise but his genuine love for teaching and sharing knowledge. His mentorship is a blend of patience, encouragement, and insightful guidance. I have learned so much from him, not only about coding but also about problem-solving, perseverance, and the importance of a collaborative spirit. John’s ability to make coding sessions enjoyable and productive has turned what could have been a solitary task into a collaborative and enriching experience. Working with John has also highlighted the power of community in coding. The camaraderie we share during our sessions, the brainstorming, the laughter, and the collective triumphs when we solve a particularly tough problem-these moments have made me appreciate the value of working together. John has shown me that coding is not just about the end result but about the journey and the relationships built along the way. Our coding sessions often extend beyond the screen, as we discuss new technologies, share exciting ideas, and dream about future projects. These conversations inspire me to push my boundaries and explore new avenues in coding. John’s passion fuels my own, and together we drive each other to become better programmers and thinkers. In essence, coding with John has been an incredibly rewarding experience. It has turned a solitary pursuit into a shared passion and transformed the challenges of programming into opportunities for growth and discovery. John’s mentorship has enriched my coding journey in countless ways, and I am profoundly grateful for his guidance and companionship. **Smash Like for Coding With John!!!!!**
It's nice that Java devs are able to use these now. I feel blessed that we've not had to put up with these (and have a lot more loveliness) in Kotlin for years now. Going back to Java definitely feels like a step backwards
String templating is awesome. I was hoping for something like this for a long time. Though I wonder why they didn't go with backticks like JS with its string interpolation. STR is less appealing to my eye
I'm impressed by your knowledge of Java versions! Since Java 9 there have been many new features. Would it be possible to create a concise overview of the key features introduced in Java 9 through 22? This would be a valuable resource for developers, and I believe your ability to explain complex topics makes you well-suited for this task.
Hi John, I'm Anne and I have been programming for almost 5 months and I'm about to learn data structures, but I'm considering switching to js since it's really hard to do so in Java + I already know HTML and CSS so is it worth the switch? And I also get a bit overwhelmed after people talking about complex stuff, so any suggestion to avoiding that? BTW thanks for the generics tutorial it was awesome ❤ Btw I use vs code so sorry, I can't switch to jet brains.... Yet
Ha no worries! Well I don't know if javascript is heavily used for data structures work, particularly with HTML/CSS. Together those are mostly for the front ends of websites, and not so much for data structure work behind the scenes. Between those I would stay with Java, although there are definitely other options too. The tough part will be the concepts of data structures, and probably not so much the actual language you use to implement them. Just get started with the simplest stuff you can understand, and work from there. Try to go step by step, implementing something very simple and let it sink in, code it yourself and mess around with it, doing a lot of testing. Then take small steps forward, making it more complex as you get more familiar. If you have specific topics that others might be interested in as well, let me know and you might see a video about it!
if you know HTML and CSS, the next logical step is to learn JS without which web development is incomplete tbh. It is better to pause your Java for now, because it could get quite confusing from J to JS. Both are drastically different languages (why did they name it JAVAscript tho???) and once you try js, all the object oriented programming gets thrown out of the window, and you'll be needing to learn functional programming, which btw is waayyyyy easier than OOP approach. Once you feel like you're comfortable with it, you can decide whether to switch back, because honestly Java is mainly used in big enterprise companies and JS is used by lean and fast teams. So in conclusion, you either leave out web development and concentrate on Java, it has got its long term benefits or abandon Java(for now) and concentrate on JS which will speed up your programming skills itself and you can land a job quicker...
You can do data structure work in JavaScript but JavaScript doesn't have many built in data types for handling those sorts of objects and often you'll need to pull in a npm package or write your own, which will add a lot of complexity to your programs. Stick with Java or another back-end language more suited to data structure manipulation
A good possible alternative for Java would be C#. My first language was Java, and it can be a bit daunting to learn at first, but i'm very happy i stuck with it. It gives me a greater understanding of programming concepts than if i would have started to learn with Python for instance. Either way, whatever language you pick, learn the language thourough. Don't hop from one language to the other only learning a bit about each language, and don't worry about getting overwhelmed either. Programming can be difficult. So, take a breath, make a coffee, and take it one step at a time. Good luck!
This was great. Looking forward to New Java Version 23. I am too busy to check official page to learn about it, I need to complain about Java on Reddit.
Thank god, java finally got template strings bringing it into twenty first century. IMO, this is going to be the biggest quality of life improvement for JAVA devs out of all new features in Java 22.
Java has a long history of celebrating the overcoming of limitations that it imposed on itself through its own design decisions. Usually ten years after most other peer languages. It's the perfect language for people that don't know any other. They're the only ones that get excited when Java implements something that pretty much every other language has.
Honestly, as I code in Python most of the time nowadays and lost touch with Java, I'm always surprised how long it takes for Java to get the super basic features of a modern programming language. Groovy has had GStrings since forever, if we want to compare it to another JVM language.
Groovy is a real cool language. Way better designed language, way less verbose, multi file compilation and run been there since day 1, closures/lambda much more intuitive and easier to code, gstrings, multi line comments with variable substitution, a bunch of imports by default, and println "hello" instead of System.out.println('hello"), and a lot more.
Great video, but I'd make sure to caution against using template strings for HTML! If you're processing user input, you should always sanitize the values before putting them in your HTML, preferably using a trusted library.
Hey John, have you ever considered doing a few videos on jdbc and stuff like HikariCP? It seems to be a massive gap in the tutorial landscape when it comes to your level of quality.
The first feature is the same or similar as python, so i think knowing how underscore works in java would help for understanding how it works un java. The string template also seems similar as the fstrings in python,
00:01 Java 22 introduces new features for developers 01:46 Java 22 introduces unnamed variables 03:25 Using unnamed variables in Java 05:00 Java 22 introduces unnamed variables for unused exceptions and Lambda functions. 06:46 Java 22 makes running multiple file Java programs from the command line easier. 08:20 Java 22 brings multitfile program running and string templating as key features. 10:05 Java 22 allows string templating for cleaner concatenation 11:51 String templates simplify multi-line string manipulation
Your videos are the best! They are the only videos that help me fully understand object oriented programming! Please make more of the videos with those simple examples! Age: 14 😃😃😃
I feel like the odds of ending up in debug hell because someone use-feature-because-exists far outweighs the "clean" syntax of having an unnamed variable.
The string template is amazing but having to begin with STR to make it work is just so Java
I think it's technically needed for backward compatibility, since without it if some string literal happens to contain \{something}, it would break when they upgrade the Java version.
+++ This whole feature literally screams JAVA lol
Do you know why they couldn’t just put an f in front of the string, like python, to indicate a formatted string to the compiler?
@@CodingWithJohn How is it needed for backward compatibility? "\{" is not allowed by the compiler afaik.
@@CodingWithJohn It is a design decision as well, from what I could understand from their latest talks about these new features the reason is to give developers the ability to create their custom template processors that can have additional logic, they gave the example of creating a custom SQL template processor that would have sanitizing included in the template processor logic itself so you could just call SQL."query with parameters" in the database layer and not to worry about sanitizing because that will be centralized in the template processor itself. You could use it to adhere to formatting standards for the queries and greatly reduce boilerplate code. There are more use cases for sure but I cant come up with any from the top of my head :D
Java is older than many people using it, and it's amazing we are just now getting this String feature.
Yeah!
C#, Python, and JS had this for ages!
Not yet, they'll be iterating on it and is now removed.
I think java is now realizing that it will loose it's charm for new gen
Because java is trash and was developed by a kiddie diddler
@@adiveler C# is just a copy of Java, there is nothing special in it
Thanks for the tip! Told grandma about Java's new unnamed variables feature and she's finally considering upgrading from Java 8, her exact words were "About damn time."
Return of the GOAT
😂
An underscore in Java is elevated but not sports 😅
String templates sounds good but it needs a little work I feel. This is the same concept as string interpolation in C# and its a little more friendly, you just add a $ in front of a string and then use the same braces as with the preview here like: $"part1 {insert} part2". Its quick and easy to use. The "_" is also a thing called disposables I believe and it can be really useful. I am happy to see Java catching up a little and hopefully they work on asynchronous execution in the future.
The thing is that they decide to go with processors because programmers can create their custom ones, like custom HTML, YAML, JSON, SQL, ... processors that will sanitaze the variables
I think some frameworks like Hibernate will implement different SQL sanitizer processors, and Jackson will do JSON and YAML processors for example
Don't we already have string format? You just have to add all the variables in the correct order at the end. My first language was Python and string templates looks very good and comfortable
@@mukynas yes, Java does provide formatting for Strings. However this is about concatenation. Oftentimes in programming you just quickly wanna combine information, like in error messages. This should be as friendly and quick as possible. String Interpolation lets you do just that. Imagine you have a variable x. In C# you can write $"error occured while parsing {x}". Because you marked the string with a "$" C# knows curly braces will reference data and not be characters and inserts the value in the string. Javas proposal aims for the same functionality but it seems quiet cumbersome...
Why not just do both then. $ for the default and STL for custom implementation
.@@nakarukatoshi
In lieu of chapter markers:
* 1:43 - Unnamed variables
* 7:03 - Compile and execute multi-file Java programs from command line
* 9:14 - String templating (preview only)
I came from a JS background to a Java project and the lack of string templating drove me nuts. I started to use String.format which isn't that bad.
in java 17 and up you can do "Some random string with %s format".formatted("special"); which is more convenient imo
@@YouHaveTrouble thanks. I'll try it.
Unfortunately, the string templates feature has been removed for now from std. Lib since they want iterate on the design at bit further before releasing it to the public. Just good to be aware of.
Dang, thought we will finally get rid of that pain in the ass of concatenation! 😂
It has always been experimental in v21 and v22. It was not removed, because it was never standard.
@@davidc_ac9377 true, but people might still think they can experiment with it on their own in jdk 23 and that will currently be impossible 😊
Not to compare as I love Java too .. but the string template feature is something .Net has implemented a few years back and Unix operating system has it way way long back ..
I feel like Java is more moving towards like a scripting language like python or Java script and more of functional programming ofcourse
The current problem is it is always moving, I think it just shifting here and there to survive in the world of language wars. Java has been shifting it's programming style a lot lately. Which is not good
best java youtuber
Agreed
Thanks for the great intro to Java 22. Look forward to more !
For the third feature, I always used String.format because it's easier to read
“%s is even easier”.formatted(“This”);
Or just "my name is %s".formatted(myName)
They implemented my unreasonably favorite JavaScript feature, template literals, into Java. Finally!!!
String.format is pretty good, though.
My grandma was super excited about the unreferencable variables. This made her day, so thank you.
Using STR. String templates for Servlets. That's it. Thank you ORACLE gods. Writing Html in Java Servlet file has now became more easier
😂😂
Amazing i am learning dsa using Java and love to work on it further as well.
Those features are amazing, but... the '_' underscore variable discarding was in C# since 7.0 and they should definitely add more like from there :) The syntax sugar in C# makes it much much much better to use, so when java introduces something like this it interests me again in making things in Java
He missed the points of it, though. First, it is used to silence any "unused variable" warning (if Java has such a thing). Second, it saves the programmer from the need to come up with different distinct names for multiple unreferenced variables in the same scope.
Great to see you back! Like the new format and humor. Any updates planned for your bootcamp course? Would be great to see new modules added, or even a new advanced ‘part 2’ course
Miss your tutorial John ❤❤
**Smash Like for Coding With John!!!!!**
Coding is more than just a skill for me; it’s a passion that brings immense joy and satisfaction, particularly when shared with someone as inspiring as John. From the moment I first started coding, I knew it was something special. It was a way to bring ideas to life, solve complex problems, and create something tangible out of nothing but logic and creativity. However, the experience of coding became truly extraordinary when I began to do it alongside John.
John’s enthusiasm for coding is contagious. His ability to break down complex problems into manageable pieces and his knack for explaining intricate concepts in simple terms have profoundly impacted my own coding journey. Every coding session with John feels like an adventure into uncharted territory. We approach challenges with curiosity and creativity, and his positive attitude makes even the most daunting bugs and errors seem like opportunities for growth.
What sets John apart is not just his technical expertise but his genuine love for teaching and sharing knowledge. His mentorship is a blend of patience, encouragement, and insightful guidance. I have learned so much from him, not only about coding but also about problem-solving, perseverance, and the importance of a collaborative spirit. John’s ability to make coding sessions enjoyable and productive has turned what could have been a solitary task into a collaborative and enriching experience.
Working with John has also highlighted the power of community in coding. The camaraderie we share during our sessions, the brainstorming, the laughter, and the collective triumphs when we solve a particularly tough problem-these moments have made me appreciate the value of working together. John has shown me that coding is not just about the end result but about the journey and the relationships built along the way.
Our coding sessions often extend beyond the screen, as we discuss new technologies, share exciting ideas, and dream about future projects. These conversations inspire me to push my boundaries and explore new avenues in coding. John’s passion fuels my own, and together we drive each other to become better programmers and thinkers.
In essence, coding with John has been an incredibly rewarding experience. It has turned a solitary pursuit into a shared passion and transformed the challenges of programming into opportunities for growth and discovery. John’s mentorship has enriched my coding journey in countless ways, and I am profoundly grateful for his guidance and companionship.
**Smash Like for Coding With John!!!!!**
wow java finally coming out with basic features that have existed in other langiuages for years. i might actuially enjoy java in 5 years.
I'm pretty sure they wanted to find the most uncomfortable syntax possible to do string templating. Maybe they checked how the popular languages doing that and wanted to create something that worse.
If it wasn’t due to the possibility to create any custom string processor you want, I would agree. But Oracle looked at other languages and included an awesome feature. For instance, you can create a JSON string processor or a SQL processor that avoids SQL injection. It’s just amazing and sometimes a simple lambda.
Good tutorial there though I rather they ought to have used $ sign instead of \ for that String variable combination. A convention in number of languages. Besides, adding \ in xml with its cousin / already in abundance will bring more confusion.
Thank you for keeping us up to date.
**Smash Like for Coding With John!!!!!**
Coding is more than just a skill for me; it’s a passion that brings immense joy and satisfaction, particularly when shared with someone as inspiring as John. From the moment I first started coding, I knew it was something special. It was a way to bring ideas to life, solve complex problems, and create something tangible out of nothing but logic and creativity. However, the experience of coding became truly extraordinary when I began to do it alongside John.
John’s enthusiasm for coding is contagious. His ability to break down complex problems into manageable pieces and his knack for explaining intricate concepts in simple terms have profoundly impacted my own coding journey. Every coding session with John feels like an adventure into uncharted territory. We approach challenges with curiosity and creativity, and his positive attitude makes even the most daunting bugs and errors seem like opportunities for growth.
What sets John apart is not just his technical expertise but his genuine love for teaching and sharing knowledge. His mentorship is a blend of patience, encouragement, and insightful guidance. I have learned so much from him, not only about coding but also about problem-solving, perseverance, and the importance of a collaborative spirit. John’s ability to make coding sessions enjoyable and productive has turned what could have been a solitary task into a collaborative and enriching experience.
Working with John has also highlighted the power of community in coding. The camaraderie we share during our sessions, the brainstorming, the laughter, and the collective triumphs when we solve a particularly tough problem-these moments have made me appreciate the value of working together. John has shown me that coding is not just about the end result but about the journey and the relationships built along the way.
Our coding sessions often extend beyond the screen, as we discuss new technologies, share exciting ideas, and dream about future projects. These conversations inspire me to push my boundaries and explore new avenues in coding. John’s passion fuels my own, and together we drive each other to become better programmers and thinkers.
In essence, coding with John has been an incredibly rewarding experience. It has turned a solitary pursuit into a shared passion and transformed the challenges of programming into opportunities for growth and discovery. John’s mentorship has enriched my coding journey in countless ways, and I am profoundly grateful for his guidance and companionship.
**Smash Like for Coding With John!!!!!**
string templates was something I was wondering if Java had about 8 months ago when I started working on an android app using java. Glad it is finally a feature.
Hey John, another great video, thank you! I was wondering if you know something about Java Serialization? It is a topic I would love to see in a video, because it is very useful, but it feels like magic to me. I would love to see a good explanation of it so I know how to use it properly!
Just a heads up, most do not recommend java serialization (Serializable and so on) as it has had so many extremely bad security vulnerabilities forever. The recommended solution is to serialize the objects to json or whatever format you prefer and use that. Many great extremely fast libraries for most if not all formats you could think of
Java is becoming javascript but with types. I love it.
This video presentation was so cool am considering picking up java again.
String template looks so niceee
String Templates (which was a preview feature) have been removed in JDK 23. They got feedback and saw that it wasn't really great to work with. There will probably be a new proposal without "String Template Processors", because we can simply use methods to process a String Template and it's more composable this way.
Please make a play list for spring boot every body needs to hear from you 🙏
Great to have you back.
Unnamed variables I will use occasionally, but String templates are really nice.
I do sometimes use String.format() or printf() rather than concatenation, but they still feel kinda clunky in their syntax.
Looks like it's unfortunately being removed even as a preview feature in Java 23, but hopefully to return in an even better format in a future release.
Please make a series explaining the internal working of collection framework.
Start the series with HashMap and HashSet. Then arraylist, LL etc.
Looking forward to using this once we upgrade from Java 8 in 23 years
Hi John, Eagerly waiting for more videos especially on Spring Security 🙃
I bought your course for 47$, thanks for the course. Atleast this way I supported you. Also I got 100 times more than I paid for.
Java is finally catching up on basics features it was missing. About time!
String templating is a thing from other languges and it works qithout having to add that str thing. But it‘s still soo good that after such a long time, Java can actually use a feature from other languages that is actually super helpful, makes me have a lot less issues with Java again.
Unnamed variables have the big advantage of heap allocation.
The can write the result of a call to something like dev null heap.
Please make more videos John
**Smash Like for Coding With John!!!!!**
Coding is more than just a skill for me; it’s a passion that brings immense joy and satisfaction, particularly when shared with someone as inspiring as John. From the moment I first started coding, I knew it was something special. It was a way to bring ideas to life, solve complex problems, and create something tangible out of nothing but logic and creativity. However, the experience of coding became truly extraordinary when I began to do it alongside John.
John’s enthusiasm for coding is contagious. His ability to break down complex problems into manageable pieces and his knack for explaining intricate concepts in simple terms have profoundly impacted my own coding journey. Every coding session with John feels like an adventure into uncharted territory. We approach challenges with curiosity and creativity, and his positive attitude makes even the most daunting bugs and errors seem like opportunities for growth.
What sets John apart is not just his technical expertise but his genuine love for teaching and sharing knowledge. His mentorship is a blend of patience, encouragement, and insightful guidance. I have learned so much from him, not only about coding but also about problem-solving, perseverance, and the importance of a collaborative spirit. John’s ability to make coding sessions enjoyable and productive has turned what could have been a solitary task into a collaborative and enriching experience.
Working with John has also highlighted the power of community in coding. The camaraderie we share during our sessions, the brainstorming, the laughter, and the collective triumphs when we solve a particularly tough problem-these moments have made me appreciate the value of working together. John has shown me that coding is not just about the end result but about the journey and the relationships built along the way.
Our coding sessions often extend beyond the screen, as we discuss new technologies, share exciting ideas, and dream about future projects. These conversations inspire me to push my boundaries and explore new avenues in coding. John’s passion fuels my own, and together we drive each other to become better programmers and thinkers.
In essence, coding with John has been an incredibly rewarding experience. It has turned a solitary pursuit into a shared passion and transformed the challenges of programming into opportunities for growth and discovery. John’s mentorship has enriched my coding journey in countless ways, and I am profoundly grateful for his guidance and companionship.
**Smash Like for Coding With John!!!!!**
Hi Jon, your video was amazing.
Btw, is there any remote position in your company?
Please pleaseeee make a video about Comparable and Comparator coz i really like how simple and easy ur explanation is
Thank you for the elaborate, extensive, and down-to-earth explanations - it's a rarity nowadays but still quite invaluable to some of us.
It's nice that Java devs are able to use these now. I feel blessed that we've not had to put up with these (and have a lot more loveliness) in Kotlin for years now. Going back to Java definitely feels like a step backwards
Wait, you create these awesome videos AND play TBOI? Now I appreciate you even more!
I watched a lot of your videos and I benefited a lot from you in Java... I am from Algeria... Thank you and I hope we meet one day
String templating is awesome. I was hoping for something like this for a long time. Though I wonder why they didn't go with backticks like JS with its string interpolation. STR is less appealing to my eye
Thanks a lot for the overview!
Hey john love your content please make more videos
That in string variable thing is a game changer for sure
welcome back champion. thank for such a great tutorials.
LOVE YOU! YOUR VIDEOS ARE ACTUALLY SO HELPFUL
If you could talk about structured concurrency and stream gatherer, that's really great.
Grats on the sponsor!
C# has the underscore. it's useful in a try catch when u don't want to do anything with the exception
Hey man, your videos are absolutely the best java tutorials ever, thanks! Could you make a video (or multiple) about DSA? ;)
I'm impressed by your knowledge of Java versions! Since Java 9 there have been many new features. Would it be possible to create a concise overview of the key features introduced in Java 9 through 22? This would be a valuable resource for developers, and I believe your ability to explain complex topics makes you well-suited for this task.
Can you make a video about : How quickly adapt to new Java features from java 8 to 11/17/21/22. (what new features we can use over legacy features.)
most unecessary feature : unnamed variables, most useful and cool feature : String template
Please can u do a playlist on Data Structure and Algorihm
You explain better than anyone
Hi John, I'm Anne and I have been programming for almost 5 months and I'm about to learn data structures, but I'm considering switching to js since it's really hard to do so in Java + I already know HTML and CSS so is it worth the switch? And I also get a bit overwhelmed after people talking about complex stuff, so any suggestion to avoiding that? BTW thanks for the generics tutorial it was awesome ❤
Btw I use vs code so sorry, I can't switch to jet brains.... Yet
Ha no worries! Well I don't know if javascript is heavily used for data structures work, particularly with HTML/CSS. Together those are mostly for the front ends of websites, and not so much for data structure work behind the scenes. Between those I would stay with Java, although there are definitely other options too. The tough part will be the concepts of data structures, and probably not so much the actual language you use to implement them.
Just get started with the simplest stuff you can understand, and work from there. Try to go step by step, implementing something very simple and let it sink in, code it yourself and mess around with it, doing a lot of testing. Then take small steps forward, making it more complex as you get more familiar.
If you have specific topics that others might be interested in as well, let me know and you might see a video about it!
@@CodingWithJohn thanks you so much!!! Yeah I have a video idea: maven tutorial
if you know HTML and CSS, the next logical step is to learn JS without which web development is incomplete tbh. It is better to pause your Java for now, because it could get quite confusing from J to JS. Both are drastically different languages (why did they name it JAVAscript tho???) and once you try js, all the object oriented programming gets thrown out of the window, and you'll be needing to learn functional programming, which btw is waayyyyy easier than OOP approach. Once you feel like you're comfortable with it, you can decide whether to switch back, because honestly Java is mainly used in big enterprise companies and JS is used by lean and fast teams.
So in conclusion, you either leave out web development and concentrate on Java, it has got its long term benefits or abandon Java(for now) and concentrate on JS which will speed up your programming skills itself and you can land a job quicker...
You can do data structure work in JavaScript but JavaScript doesn't have many built in data types for handling those sorts of objects and often you'll need to pull in a npm package or write your own, which will add a lot of complexity to your programs. Stick with Java or another back-end language more suited to data structure manipulation
A good possible alternative for Java would be C#. My first language was Java, and it can be a bit daunting to learn at first, but i'm very happy i stuck with it. It gives me a greater understanding of programming concepts than if i would have started to learn with Python for instance. Either way, whatever language you pick, learn the language thourough. Don't hop from one language to the other only learning a bit about each language, and don't worry about getting overwhelmed either. Programming can be difficult. So, take a breath, make a coffee, and take it one step at a time. Good luck!
So basically what C# has since a long time ago
One thing is very good to Java that Java advances slowly but safely.
Please increase the frequency of you appearing with new video, we really wait eagerly.
Welcome Back John! ❤
Great video! every Java improvement Scala has it many yeas before 😮
Yes, they just are following that path after so many years. Poor java . However, Scala devolpers are taking now new languages, such as rust, Haskell.
This was great. Looking forward to New Java Version 23. I am too busy to check official page to learn about it, I need to complain about Java on Reddit.
Could you please explain different types of design patterns used in java as well? and when to use which one?
String template is lit!
could you please make a video about Dependency Injection!? please!
Unnamed variable seem to be idea of matching a pattern. If it does not match any pattern, then you can use an underscore. Example in F#.
Great video John. The new String concatenation is a game changer. The blank _ is a bit silly, but I welcome it, might be useful occasionally.
If you come from python, you know it's useful.
@alandoe6622, I'm planning to learn Python in the future so it's great to gain that extra knowledge.
Could you please create a video explaining double locks, volatile and synchronized keyword? It would be really helpful 🙏🏻
Thank god, java finally got template strings bringing it into twenty first century. IMO, this is going to be the biggest quality of life improvement for JAVA devs out of all new features in Java 22.
Java has a long history of celebrating the overcoming of limitations that it imposed on itself through its own design decisions. Usually ten years after most other peer languages. It's the perfect language for people that don't know any other. They're the only ones that get excited when Java implements something that pretty much every other language has.
Hi John! What is the plugin to autocomplete code? Thank you so much. Great video btw
I'm really really happy that you are not done with RUclips! Keep going John.❤
Hi John, will you start to teach us about Spring Boot material someday?
Thank you its very clear explained
Honestly, as I code in Python most of the time nowadays and lost touch with Java, I'm always surprised how long it takes for Java to get the super basic features of a modern programming language. Groovy has had GStrings since forever, if we want to compare it to another JVM language.
Groovy is a real cool language. Way better designed language, way less verbose, multi file compilation and run been there since day 1, closures/lambda much more intuitive and easier to code, gstrings, multi line comments with variable substitution, a bunch of imports by default, and println "hello" instead of System.out.println('hello"), and a lot more.
Hi John, I am thinking of doing 1Z0-819 or 1Z0-809. Which one is more relevant?
Great video, but I'd make sure to caution against using template strings for HTML! If you're processing user input, you should always sanitize the values before putting them in your HTML, preferably using a trusted library.
John could you talk about Java Modules please, i appreciate your content
Thanks for the update 🙏. Really appreciate it 👌👍
Please make a video on how to load all the project classes during runtime.
Yay, you’re back!
Hey John, have you ever considered doing a few videos on jdbc and stuff like HikariCP?
It seems to be a massive gap in the tutorial landscape when it comes to your level of quality.
The _ and string interpolation (f strings) are in Python too.
While PHP moves towards Java, Java implements features PHP has been having since long time ago. I find it funny yet interesting!
Worthful content from you as always!
string template is awesome, is similar to template stirng in javscript :D
Hi John, do you still have future videos planned for your online course?
The first feature is the same or similar as python, so i think knowing how underscore works in java would help for understanding how it works un java. The string template also seems similar as the fstrings in python,
00:01 Java 22 introduces new features for developers
01:46 Java 22 introduces unnamed variables
03:25 Using unnamed variables in Java
05:00 Java 22 introduces unnamed variables for unused exceptions and Lambda functions.
06:46 Java 22 makes running multiple file Java programs from the command line easier.
08:20 Java 22 brings multitfile program running and string templating as key features.
10:05 Java 22 allows string templating for cleaner concatenation
11:51 String templates simplify multi-line string manipulation
Can you please explain graphs, trees, nodes in java thnx
youre back!
Great content, as always
Your videos are the best! They are the only videos that help me fully understand object oriented programming! Please make more of the videos with those simple examples! Age: 14 😃😃😃
It took Java 22 major versions to implement Python3.6 f-string style format. Wow, that's so cool 😏
I feel like the odds of ending up in debug hell because someone use-feature-because-exists far outweighs the "clean" syntax of having an unnamed variable.