Java Strings are Immutable - Here's What That Actually Means

  Рет қаралды 601,586

Coding with John

Coding with John

Күн бұрын

Java String are Immutable - but what does that really mean?
We'll learn why Strings are immutable in Java, and what it means for your Java programs.
String immutability in Java means that String objects cannot be modified after they're created. Let's talk about why it matters that Strings are immutable, and why Java chose to make them immutable in this beginner video lesson tutorial.
Learn or improve your Java by watching it being coded live!
Hi, I'm John! I'm a Lead Java Software Engineer and I've been in the programming industry for more than a decade. I love sharing what I've learned over the years in a way that's understandable for all levels of Java learners.
Let me know what else you'd like to see!
Links to any stuff in this description are affiliate links, so if you buy a product through those links I may earn a small commission.
📕 THE best book to learn Java, Effective Java by Joshua Bloch
amzn.to/36AfdUu
📕 One of my favorite programming books, Clean Code by Robert Martin
amzn.to/3GTPVhf
🎧 Or get the audio version of Clean Code for FREE here with an Audible free trial
www.audibletrial.com/johnclean...
🖥️Standing desk brand I use for recording (get a code for $30 off through this link!)
bit.ly/3QPNGko
📹Phone I use for recording:
amzn.to/3HepYJu
🎙️Microphone I use (classy, I know):
amzn.to/3AYGdbz
Donate with PayPal (Thank you so much!)
www.paypal.com/donate/?hosted...
☕Complete Java course:
codingwithjohn.thinkific.com/...
codingwithjohn.com

Пікірлер: 745
@etainad0085
@etainad0085 2 жыл бұрын
Hey John! I do not leave comments often, so this is a special event. I am currently learning Java at university and at home, and I wanted to tell you how much your videos are helping me. Your simple way of teaching is amazing for new learners, and I find your channel criminally underrated. Keep on uploading, Im sure youll get big on KZbin, a 100%!
@CodingWithJohn
@CodingWithJohn 2 жыл бұрын
Thanks a ton! I'll keep working on it, glad it's helping you!
@cagan8
@cagan8 2 жыл бұрын
Was going to say the same, usually programming videos are either boring or not engaging and taught well. This is completely opposite, very clear and understandable. Thank you
@alexwatts1375
@alexwatts1375 2 жыл бұрын
The best creators bubble to the top!
@snowwhite2146
@snowwhite2146 2 жыл бұрын
@@CodingWithJohn Same here. I have a Java exam in June and your videos are a good revision for me. Many thanks.
@csgrinds
@csgrinds 2 жыл бұрын
Recommend if you're serious about mastering Java that you read e.g. Joshua Bloch rather than watching needlessly long youtube presentations. No criticism of this video intended.
@MrYourSalvation
@MrYourSalvation 2 жыл бұрын
Plus one interesting thing - due to String's immutability and presense of a string pool - the hashCode() method is calculated only the first time and saved as a value inside String object. Therefore when you call hashCode() method second time (e.g. on another variable with the same literal value) - it will just return stored value, no need to calculate hash code again.
@finmonster5827
@finmonster5827 2 жыл бұрын
ґалічєнин
@annaburdanova8307
@annaburdanova8307 2 жыл бұрын
Yura, thank you for sharing this interesting fact, the video itself and the comments are a real treasure for a Java learner!
@fabio.1
@fabio.1 6 ай бұрын
👍
@CodingWithJohn
@CodingWithJohn 2 ай бұрын
Really cool!
@mohitsanghai5455
@mohitsanghai5455 2 жыл бұрын
Thanks a lot for the crisp and clear video, John. Just to summarize String Immutability Benefits - 1) Usage of String pool, saving tons of memory and hashCode calculation 2) safe for multithreading 3) Removes any security threat by not allowing hackers to change referenced string values to cause security issues in the application
@bobfarker4001
@bobfarker4001 11 ай бұрын
You basically summarized the summary.
@Atarian6502
@Atarian6502 Ай бұрын
Thanks for summary. Question regarding #1: Do I understand this correctly: the String pool saves the memory ONLY if you have two or more identical string variables (they point to the same piece of memory), but it wastes memory EVERY time you are changing the strings (it uses new piece of memory for the whole new string even if you change only one letter)?
@swapode
@swapode 2 жыл бұрын
I think you're kinda missing the main reason why Strings are immutable: You can't really have sensible mutable Strings since you can't change their length without moving everything to newly allocated memory on the heap which is incredibly expensive. I absolutely see your points as benefits, in fact I think Rust has proven that the whole mutable by default approach is a mistake, but it might have been a good idea to go into the actual reason a bit.
@XD-nj7bc
@XD-nj7bc 2 жыл бұрын
I can think of multiple ways that you can change your String length during runtime without coping (at least most of the time). Lists, Allocating more than cou need and and only get new memory when you run out.
@watertrainer3992
@watertrainer3992 2 жыл бұрын
@@XD-nj7bc allocating more than you need doesn't really solve the problem though, as you'd then just use more than you need, making it more expensive than immutable Strings
@XD-nj7bc
@XD-nj7bc 2 жыл бұрын
@@watertrainer3992 of course it is not cheaper than not mutable strings but you can then change the size without the copying he mentionend.
@swapode
@swapode 2 жыл бұрын
@@XD-nj7bc I put the word "sensible" in there for a reason 🙂
@garybuttherissilent5896
@garybuttherissilent5896 2 жыл бұрын
@@XD-nj7bc yeah he put the word "sensible" in there for a reason bruh
@NuanDaa
@NuanDaa 2 жыл бұрын
Dude I’m in bootcamp now for 6 months and no coding background. I just watched your video and I can say you have a best teaching technique that super understandable. You just got a subscriber. Thanks.
@alexz4006
@alexz4006 2 жыл бұрын
I always had a question about this topic. I read in a book about java, that strings were immutable, but it never went so much into detail. This is a very good video. Thanks for sharing.
@Hufsa
@Hufsa 2 жыл бұрын
first time in this channel and it's absolutely great to dedicate a specific video to talk only about immutable objects in less than 10 minutes, perfectly clear!
@hanikhellafi4872
@hanikhellafi4872 Жыл бұрын
Man I just discovered your channel and I find your content amazing. This is the kind of depth I was looking for regarding string immutability.
@idkidkidk3333
@idkidkidk3333 2 жыл бұрын
Thank you! I will for sure be checking out more of your videos. You explained everything very clearly!
@Veganzza
@Veganzza Жыл бұрын
Man, you are so amazing. I've read many guides about immutable string but none of them is as clear as your explanation
@matthewharrison3921
@matthewharrison3921 Жыл бұрын
You have a talent for explaining things in a concise and easy to process manner. Thank you, sir!
@1dagmawi
@1dagmawi 2 жыл бұрын
You are easy to understand and always to the point. Glad I found you. Keep up the good work. Cheers.
@dmitriirodionov
@dmitriirodionov 2 жыл бұрын
Outstanding and easy to understand explanation! Thank you for this video!
@huseyinkadioglu
@huseyinkadioglu 8 ай бұрын
Simple and clear explanation John. I appreciate your work and effort. Amazing stuff!
@mirzaaqeel
@mirzaaqeel Жыл бұрын
Crystal clear with examples. Hats off to you.
@CuriousCyclist
@CuriousCyclist 2 жыл бұрын
Thank you for taking the time to make this video. I have liked, subscribed and am commenting. Cheers!
@hagnap
@hagnap 2 жыл бұрын
Such a simple topic explained so well, wish they explained it like this in my early CS courses
@matthewmoore1307
@matthewmoore1307 2 жыл бұрын
I love how you’re drawing out with examples as you explain
@herberthsu1495
@herberthsu1495 2 жыл бұрын
simple, clear and straightforward explanation. thanks for sharing
@arturillosmeriglia8029
@arturillosmeriglia8029 2 жыл бұрын
Great explanation! Easy to follow, clear and concise. You earned a new subscriber!
@arshandubey
@arshandubey 2 жыл бұрын
To the point , Every bit of information provided in just 7 minutes. SUBSCRIBED !!!
@alexandrprodan8794
@alexandrprodan8794 Жыл бұрын
Wow, it's great video! Informative, comprehensive and not boring. Thank you very much!
@Coccoutube
@Coccoutube Жыл бұрын
Excellent lesson John! I'm learning a lot with you :)
@jiro.nemo.1
@jiro.nemo.1 Жыл бұрын
Ive been using Java as a student for nearly 5 years now, and your content has been completely mind-blowing to me. Made me adopt the "I know nothing" attitude and relearn everything.
@codyprevatt
@codyprevatt 15 күн бұрын
You explain things extremely well.
@bonnydavis6730
@bonnydavis6730 10 ай бұрын
Beautifully explained. Very informative . Thank you !!
@LearnYouAndMe
@LearnYouAndMe Жыл бұрын
Loving your tutorial. Crystal clear explanation
@anluong8103
@anluong8103 Жыл бұрын
Thanks so much. I've just come up with an interview question about this subject this morning. Luckily I watched your video the night before :)
@Ali-cf5lm
@Ali-cf5lm 2 жыл бұрын
Thank you John.. That was the best explanation for understanding what immutable means
@vasundharachintha5037
@vasundharachintha5037 8 ай бұрын
Your videos are amazing!!You really do make the concepts clear!!Thanks for such an amazing content.
@drewbruggman
@drewbruggman 2 жыл бұрын
There was an error i was dealing with ages ago that i couldn't figure out and this video made that error make perfect sense, thank you!
@fantasy9960
@fantasy9960 Жыл бұрын
Wow, this is the best explanation I can find on youtube! thank you john
@rahulshetty9335
@rahulshetty9335 2 жыл бұрын
Never even used Java a lot but I have been asked this question in interview. But this is the first time I understood what I was telling the interviewer.
@StobbeTime
@StobbeTime Жыл бұрын
Your an awesome teacher! I remember studying this topic in my book and could not understand it till now. Thanks.
@boxerlobsters
@boxerlobsters Жыл бұрын
Kudos to you for explaining in such a short time. Cheers man
@codingweb3904
@codingweb3904 2 жыл бұрын
Knew all this but still his way of explaining held me till the end.... His way of teaching is just amazing
@h-girlradio4699
@h-girlradio4699 Жыл бұрын
Thank you so much for explaining this!! I never truly got a grasp on what was meant by Strings being immutable but you explained it perfectly!!
@rastkostajic5525
@rastkostajic5525 2 ай бұрын
Man! This is a mind blowing info for me. Never thought about this before! Thanks.
@rajeshchattopadhyaya2805
@rajeshchattopadhyaya2805 2 жыл бұрын
I am currently learning Java your videos give deeper understanding of Java thank you very much!
@pinkzombierabbit
@pinkzombierabbit Жыл бұрын
Thank you, very simple and clear explanation.
@undercovercoder
@undercovercoder Жыл бұрын
Thanks man!! Totally understood this concept :)
@raihanulalamhridoy4714
@raihanulalamhridoy4714 2 жыл бұрын
This video was really helpful. Thank you very much.
@prajwaltirpude8582
@prajwaltirpude8582 2 жыл бұрын
Great video. It is so clear now and books never explain it such great way
@JustinBieberFanSA
@JustinBieberFanSA Жыл бұрын
John, I love your videos. Thank you. Studying for the OCA at the moment and you explain these concepts so well that I do not need to study them after watching the video. I understand it, which means I remember it forever because I understand how it works. I really appreciate your help!
@syedirfanahmad9626
@syedirfanahmad9626 2 жыл бұрын
Good, quick description 👍
@alexeysytnikov6220
@alexeysytnikov6220 10 күн бұрын
Great video, John!
@perox1982
@perox1982 Жыл бұрын
Now Everything has sence. I know many teachers that needs THIS VIDEOS. You Rocks John.
@mesikamesika
@mesikamesika 2 жыл бұрын
You simplify it in an amazing way well done :)
@billwu7367
@billwu7367 Жыл бұрын
you are the best programmer combining teacher as i ever met!support!
@TheRealAnkitSharma
@TheRealAnkitSharma Жыл бұрын
John! You explained it very well. Completely understandable and with a really nice example.
@ChaseDetrick
@ChaseDetrick 7 ай бұрын
This was fantastic, thank you so much! I've been struggling a lot in my comp sci classes because the professor refuses to go over theory, so this is wonderful :) You've won a very very faithful subscriber haha.
@TG-ri3mu
@TG-ri3mu 2 жыл бұрын
Wow, wow, wow, FINALLY the explanation of immutable strings that l was looking for sooo long time! THANK YOU!
@praveen123ist
@praveen123ist Жыл бұрын
I think I'll never look back again at why string is immutable, you made it super clear 👌🙏 awesome!!!!
@supun_sandaruwan
@supun_sandaruwan 2 жыл бұрын
you are the best java teacher that i saw on the youtube because you are cleary explain what is the behind theory thank you very much 🤩💖
@amaanmohammad1190
@amaanmohammad1190 2 жыл бұрын
Simple Concise and to the point.
@pendago8484
@pendago8484 Жыл бұрын
You're a great teacher and a great help. Thanks.
@faizalimuhammadzoda4731
@faizalimuhammadzoda4731 2 жыл бұрын
Thanks for the effort you put in these videos. Thanks for sharing. I am learning a lot.
@hannahdlh1
@hannahdlh1 2 жыл бұрын
The best explanation for this topic that I've seen so far. Thank you!!
@krishnachaitu17
@krishnachaitu17 Жыл бұрын
perfect explanations john thanks for the content
@dylangovender
@dylangovender Жыл бұрын
This was awesome. Thanks, John!
@rajaaekant
@rajaaekant 2 жыл бұрын
Clear and concise. Thank you
@msampson3d
@msampson3d 2 жыл бұрын
Wow, this was great! Super clear explanation that makes me finally get it. Maybe you have a video that will finally make me understand static methods! I'll have to check.
@eiyukabe
@eiyukabe 2 жыл бұрын
Excellent video, and clearly explained.
@abhay12323
@abhay12323 2 жыл бұрын
Highly appreciate your efforts.
@levekbarel
@levekbarel 2 жыл бұрын
U are gifted!! Thanks for sharing!!
@officialismailshah
@officialismailshah 2 жыл бұрын
Love you man you got all my points clear about immutables....
@chidambaramvalliappan9069
@chidambaramvalliappan9069 Жыл бұрын
Amazing and Awesome Explanation of the concepts.
@haoshecn
@haoshecn 2 жыл бұрын
Hi, John. Love your tutorials, but I think there is a little thing you didn’t explain in details here. When you new a string “John”, the object is indeed created in the heap, but “John” is still crated inside string pool. There is a reference inside the object pointing towards “John”. So, you actually created two objects when you use ‘new’ keyword to create a string.
@shankar7435
@shankar7435 Жыл бұрын
Perfect explanation. Thanks.
@learnjavaprogramming7132
@learnjavaprogramming7132 2 жыл бұрын
I don't have a words John sir, you are a real teacher I've ever seen , iam very lucky becouse of i found your vedio ☺️☺️
@AmongUs-qt3uo
@AmongUs-qt3uo Жыл бұрын
Thank you sir! brilliant tutorial!
@fightinggold7674
@fightinggold7674 Жыл бұрын
flawless explanation. subscribed
@rrroman870
@rrroman870 2 жыл бұрын
Crystal clear. Thanks!
@Atharva_kathiyawadi
@Atharva_kathiyawadi 2 жыл бұрын
your videos really awesome. i found late but awesome contents 👍🏻
@241sanchita
@241sanchita Жыл бұрын
Hello John, your videos are incredibly helpful. I have learnt a lot from your videos. Do keep up the good work, you will go big on KZbin one day.
@JessePoage
@JessePoage 2 жыл бұрын
Again, thank you for explaining concepts better than most professors
@AlshehriAhmed
@AlshehriAhmed Жыл бұрын
Excellent! Thank you for the explanation, outstanding!
@suneetlimkar
@suneetlimkar 2 жыл бұрын
Love how the KZbin recommendations algo work.glad i came across this video.. so well explained.. thank you
@alexmercer8984
@alexmercer8984 2 жыл бұрын
Loved your video mate, you have a new subscriber 🍻
@kingfatpig3512
@kingfatpig3512 2 жыл бұрын
easy to understand thank you john
@sebon11
@sebon11 Жыл бұрын
AMAZING video, thanks!
@sourav5449
@sourav5449 4 ай бұрын
This is the best explanation of Immutability on youtube You are a gem 💎
@xuansong4795
@xuansong4795 2 жыл бұрын
Excellent video, Thank you John.
@thunderstruck2727
@thunderstruck2727 2 жыл бұрын
Love your concise, clear, and informative videos! I normally try to read Oracle Tutorial Trails, but these videos are faster on certain topics. Plus you include great examples. Thank you!
@CodingWithJohn
@CodingWithJohn 2 жыл бұрын
Those are good too (as they should be, coming directly from Oracle) and I've used them to do some research on various topics I've done videos for. But yeah, often it's easier to watch a video on it. Thanks!
@thunderstruck2727
@thunderstruck2727 2 жыл бұрын
@@CodingWithJohn thanks for the reply! I’m a Comp Sci graduate who just finished my first year working a software job.
@PradumTiwari28
@PradumTiwari28 2 жыл бұрын
Really your teaching of every concept is legendary keep Doing good work
@JoelAguilarCerna
@JoelAguilarCerna 2 жыл бұрын
I learnt something valuable today! Thanks a lot!
@user-lx9nk7vf8c
@user-lx9nk7vf8c 2 жыл бұрын
Yesterday I had this question in my mind and today I saw this video. Thanks!
@rhitamdutta1996
@rhitamdutta1996 2 жыл бұрын
Holy shit the way you explain things is so simple and lucid, subbed!!!
@jayskieeee
@jayskieeee 2 жыл бұрын
i wasn't aware of the benefits of immutability, even though i knew exactly what immutability means. thanks for the tid bits!
@r_majka
@r_majka 2 жыл бұрын
It's very interesting to know what's happening behind the scenes. Very nice explanation :)
@humairanaeempasha2362
@humairanaeempasha2362 2 жыл бұрын
You are amazing at teaching stuff hats off!
@lankanathdiaspitawalage7783
@lankanathdiaspitawalage7783 Жыл бұрын
Excellent teaching . Thank you so much. please upload more videos on Java Generics.
@OREH88
@OREH88 2 жыл бұрын
thanks a lot! very clear explanation!
@jamesrussell-ui6gd
@jamesrussell-ui6gd Жыл бұрын
Thank you - really great explanation
@marcosfraguela
@marcosfraguela 2 жыл бұрын
Very well explainded, thanks
2 жыл бұрын
Damn such a nice work John, instant Sub!
@vishnukartha6270
@vishnukartha6270 2 жыл бұрын
Such a crisp and clear explanation! Thank you John!
@ns8928
@ns8928 2 жыл бұрын
Really great explanation! Thank you.
@Bersling
@Bersling 2 жыл бұрын
just completing the trifecta: yay, somebody does cool java videos about interesting topics in 2021 - subscribed!
@hrf4711
@hrf4711 2 жыл бұрын
Wow I didn't aware of this.thanks a lot John
Static vs Non-Static Variables and Methods In Java - Full Simple Tutorial
11:29
.equals() vs. == in Java - The Real Difference
8:48
Coding with John
Рет қаралды 176 М.
CAN YOU HELP ME? (ROAD TO 100 MLN!) #shorts
00:26
PANDA BOI
Рет қаралды 36 МЛН
100😭🎉 #thankyou
00:28
はじめしゃちょー(hajime)
Рет қаралды 32 МЛН
College Website Using NextJs
2:48
Soumojit Shome
Рет қаралды 35
Set and HashSet in Java - Full Tutorial
20:43
Coding with John
Рет қаралды 191 М.
Lambda Expressions in Java - Full Simple Tutorial
13:05
Coding with John
Рет қаралды 696 М.
#35 Mutable vs Immutable String in Java
6:23
Telusko
Рет қаралды 92 М.
5 New AI Tools You Should Try
9:18
Skill Leap AI
Рет қаралды 9 М.
Generics In Java - Full Simple Tutorial
17:34
Coding with John
Рет қаралды 1 МЛН
Learn React Hooks: useCallback - Simply Explained!
17:15
Cosden Solutions
Рет қаралды 69 М.
New Java Version 22 - The 3 Best New Features You'll ACTUALLY Use
13:15
Coding with John
Рет қаралды 83 М.
Why Are All The Best Java YouTubers Bald? - John Answers Your Comments
13:17
CAN YOU HELP ME? (ROAD TO 100 MLN!) #shorts
00:26
PANDA BOI
Рет қаралды 36 МЛН