Java serialization 🥣

Поделиться
HTML-код
  • Опубликовано: 28 сен 2024
  • Java serialization tutorial for beginners
    #Java #serialization #tutorial
    00:19 serialize
    08:47 deserialize
    13:40 advanced stuff
    Coding boot camps hate him! See how he can teach you to code with this one simple trick...
    Bro Code is the self-proclaimed #1 tutorial series on coding in various programming languages and other how-to videos in the known universe.

Комментарии • 144

  • @BroCodez
    @BroCodez  4 года назад +67

    Java Serialization
    import java.io.*;
    public class SerializeDemo {
    public static void main(String [] args) {

    //Serialization = The process of converting an object into a byte stream.
    // Persists (saves the state) the object after program exits
    // This byte stream can be saved as a file or sent over a network
    // Byte stream can be saved as a file (.ser) which is platform independent
    // (Think of this as if you're saving a file with the object's information)

    // Steps to Serialize
    // ---------------------------------------------------------------
    // 1. Your class should implement Serializable interface
    // 2. add import java.io.Serializable;
    // 3. FileOutputStream fileOut = new FileOutputStream(file path)
    // 4. ObjectOutputStream out = new ObjectOutputStream(fileOut);
    // 5. out.writeObject(objectName)
    // 6. out.close(); fileOut.close();
    // ---------------------------------------------------------------

    //Deserialization = The reverse process of converting a byte stream into an object.
    // (Think of this as if you're loading a saved file)

    // Steps to Deserialize
    // ---------------------------------------------------------------
    // 1. Your class should implement Serializable interface
    // 2. add import java.io.Serializable;
    // 3. FileInputStream fileIn = new FileInputStream(file path);
    // 4. ObjectInputStream in = new ObjectInputStream(fileIn);
    // 5. objectNam = (Class) in.readObject();
    // 6. in.close(); fileIn.close();
    // ---------------------------------------------------------------

    // important notes 1. children classes of a parent class that implements Serializable will do so as well
    // 2. static fields are not serialized (they belong to the class, not an individual object)
    // 3. Fields declared as "transient" aren't serialized, they're ignored
    // 4. the class's definition ("class file") itself is not recorded, cast it as the object type
    // 5. serialVersionUID is a unique version ID

    //SerialVersionUID = serialVersionUID is a unique ID that functions like a version #
    // verifies that the sender and receiver of a serialized object,
    // have loaded classes for that object that are compatible
    // Ensures object will be compatible between machines
    // Number must match. otherwise this will cause a InvalidClassException
    // A SerialVersionUID will be calculated based on class properties, members, etc.
    // A serializable class can declare its own serialVersionUID explicitly (recommended)

    User user = new User();

    user.name = "Bro";
    user.password = "I

    • @sudhanshu7115
      @sudhanshu7115 3 года назад +4

      I think you can even teach me rocket science & Quantum physics with your teaching skills ❤️

    • @joshuafrancisriin8078
      @joshuafrancisriin8078 2 года назад

      Bro i get error in deserialization.. In main class it says
      java.Lang.ClassNotFoundException:serializer.user
      I checked everything but i couldn't find out why i get this error..
      Pls help bro 😓😭

    • @lemaaaron9009
      @lemaaaron9009 Год назад

      Thanks 🤝

    • @phaustinanapunyi8057
      @phaustinanapunyi8057 Год назад +1

      @@joshuafrancisriin8078 Ensure that the classes for both the serializer and the desializer are organized in the same structure.
      E.g. if your serializer Main and User classes are in a package say org.example ensure you have the same package org.example for your deserializer Main and User classes. Secondly, contents of the User classes have to be identical.

    • @yunanistan2364
      @yunanistan2364 Год назад

      That is a hard working bro :)

  • @exxzxxe
    @exxzxxe 2 года назад +60

    By far, Bro Code has the most succinct, and clearest explanations of Java on RUclips! No more than needed, no less than required. Good job!

  • @haramrit09k
    @haramrit09k Год назад +16

    I have a Software Engineer interview in 2 days, and I never knew what Serializing and Deserializing actually meant in Java, until now. THANKS A TON Bro!

    • @connorwhitedik
      @connorwhitedik 3 месяца назад +1

      Get the job?

    • @haramrit09k
      @haramrit09k 3 месяца назад +5

      @@connorwhitedik yeah, got three interviews, and two offers :)

  • @mpelalidiko
    @mpelalidiko 2 года назад +5

    Hey bro, thanks a lot for your amazing videos!
    I just want to add another detail: if a class has fields that are other custom-made classes, then these classes ALSO have to implement Serializable

  • @chuanxinjin9301
    @chuanxinjin9301 Год назад +6

    Guys, make sure your package file need to be the same in both the serialization folder and deserialization, then you won't get ClassNotFoundExpection for this. And bro you your video is fantastic. Love from China

    • @st3v3cR0zz
      @st3v3cR0zz Год назад +1

      thank god for your comment!!!!

    • @Mohamed_MDJ
      @Mohamed_MDJ 7 месяцев назад +1

      I was looking for this for 30min

  • @renecabuhan1675
    @renecabuhan1675 3 года назад +7

    You explain it better than my teacher bro. Thank you.

  • @raderh2o
    @raderh2o Месяц назад +1

    Great tutorial series! I'm enjoying it

  • @alfredhitch9306
    @alfredhitch9306 3 года назад +19

    Legend. Solo carrying My Butt through advanced programming

    • @amreedoh
      @amreedoh 2 года назад +1

      I feel that in my soul

  • @seabass6106
    @seabass6106 3 года назад +5

    Bro, this is getting serioulized
    💕

  • @bitcoin1532
    @bitcoin1532 3 года назад +4

    wanted to learn this for a save function, tysm bro

  • @fantasy9960
    @fantasy9960 Год назад

    Absolute the best serialization tutorial video I have ever watched! Thank you

  • @Snowmanver2
    @Snowmanver2 2 года назад

    Came back to rewatch the video and brush up on that topic. Thanks, Bro!

  • @hansmuller9545
    @hansmuller9545 2 года назад

    You're a champ bro! Tried to create a savefile through parsing the objects variables and then reread them and create through it the new objects. This is way easier. Thanks!

  • @preraksemwal8768
    @preraksemwal8768 2 года назад +10

    This is the only channel on RUclips I literally feel I must comment on every time I watch , else I'm a bad guy XD
    Your videos are great ... Seriously !!

  • @kristijanlazarev
    @kristijanlazarev 7 месяцев назад

    Very complicated, good job

  • @tomhowlingmoon2962
    @tomhowlingmoon2962 11 месяцев назад

    great stuff, way more complete than what the teacher explained in class lmao

  • @sreeshakv5405
    @sreeshakv5405 2 года назад

    Nice

  • @ricardochica4339
    @ricardochica4339 3 года назад +1

    Thank you so much for these videos!

  • @razvanrusan9319
    @razvanrusan9319 2 года назад

    Dope tutorial! Helped me for an exam!

  • @shaynazoedeguzman7418
    @shaynazoedeguzman7418 2 года назад

    TYVM Bro code! You are superb!

  • @changlim-zp1sv
    @changlim-zp1sv 4 года назад +2

    I really want to get started into coding, but don’t know where to start! Could I get any pointers?

    • @BroCodez
      @BroCodez  4 года назад +6

      🤔Hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

  • @bix4400
    @bix4400 Год назад

    Need series on Android app development bro !

  • @sabermmirza
    @sabermmirza 3 года назад +2

    Great job bro:)

  • @NovaEngineer
    @NovaEngineer 5 месяцев назад +1

    13:42 (Part 2)

  • @usamanadeem145
    @usamanadeem145 3 года назад +1

    Great

  • @kemann3815
    @kemann3815 2 года назад +1

    Awesomely great

  • @mrwakacorp
    @mrwakacorp 2 года назад

    The perfect video for the topic!

  • @calebkrauter4027
    @calebkrauter4027 Год назад

    Helpful video, thank you.

  • @made4u363
    @made4u363 2 года назад

    very detail and easy to understand

  • @mikeyyy_xam
    @mikeyyy_xam Месяц назад

    BRO I LOVE YOU

  • @hippiestafarii
    @hippiestafarii 2 года назад

    Another great video as always

  • @dsdcp
    @dsdcp 3 года назад +1

    Thanks Bro.

  • @sector-selector
    @sector-selector 3 года назад +1

    great

  • @benderbg
    @benderbg Год назад

    Great video as the rest you've made.

  • @justswift_1213
    @justswift_1213 2 года назад +1

    I am getting java.lang.ClassCastException. It says that both the user classes are in an unnamed module of loader 'app'. What does it mean? A solution to my problem would be great. Thanks.

    • @leekbiel
      @leekbiel 2 года назад +1

      Hi JustSwift_ ;
      1.Check if the name of the 2 packages are the same;
      2.Check if the name of the 2 class are the same;
      The both has to be the same;

    • @justswift_1213
      @justswift_1213 2 года назад +1

      @@leekbiel I had already solved the issue. But thanks a lot as those are something to keep in mind.

    • @charanraj3180
      @charanraj3180 Год назад

      @@leekbiel Thanks alot man : )

  • @jasper5016
    @jasper5016 2 года назад

    Great video. All doubts clear.

  • @girl6994
    @girl6994 4 года назад +1

    Hey you. If you find this video helpful, pls make sure to like, comment,and subscribe if you want to become a fellow bro. Is that spells right? Because I can speak this sentence in my dream. It’s so familiar.

  • @amulyan1478
    @amulyan1478 3 года назад +1

    you are the besst!

  • @elkay7065
    @elkay7065 3 года назад +1

    Thanks mate

  • @marekmacku3526
    @marekmacku3526 2 года назад

    U re legend thanks so much 🙏

  • @babyskeleton7990
    @babyskeleton7990 Год назад

    Very helpful video, thanks. If I knew about this, i wouldn't have to create .txt files using damn FileWriter and split them using _ and . When I wanted to read them, I split the entire long character string using split() method, which resulted in countless problems and headaches, as you can imagine lol.

  • @st3v3cR0zz
    @st3v3cR0zz Год назад

    keep on getting ClassNotFoundException error.

  • @carloslozan856
    @carloslozan856 2 года назад

    good tutorial

  • @ASL-np1se
    @ASL-np1se Месяц назад

    I love you bro

  • @FukSN
    @FukSN 3 года назад +1

    Top video. Very informative, and easy to follow as usual.
    Thanks Bro.

  • @aryanmn1569
    @aryanmn1569 3 года назад

    when u get no thumbs down, u can be sure u did good

  • @honoredegg
    @honoredegg 2 года назад

    84th. Thank you, ma Bro Sensei

  • @archaeniac7846
    @archaeniac7846 3 года назад +1

    thankyouuuu

  • @sailorsaturn4693
    @sailorsaturn4693 11 месяцев назад

    حرفيا ابونا

  • @azmalshaik1295
    @azmalshaik1295 2 года назад

    hello Bro code Iam your Subscriber can you please upload a video on Annotations because of iam confusing about it

  • @8oniim622
    @8oniim622 11 месяцев назад

    beast 🫶

  • @pesterlig
    @pesterlig 3 года назад +1

    ywaah!

  • @Nates2823
    @Nates2823 2 года назад

    nc one

  • @dolevdo
    @dolevdo 2 года назад

    saved my life

  • @DamienRoyan
    @DamienRoyan 3 года назад

    *insert The prophecy is true meme clip*

  • @小江-j1i
    @小江-j1i 3 года назад

    what is the difference if i store data into json file farmat?
    i found another youtuber said that serialization is a process to convert data from RAM into string format like json, so that it can be stored and send to your friends, etc. Is he correct?

    • @Simon-yf7fo
      @Simon-yf7fo 3 года назад

      json isnt exactly the same. Json is more like an Object, that every Programming Language can interpret and is more readable for humans

  • @sachwinikumarkhatri1913
    @sachwinikumarkhatri1913 3 года назад

    why I am getting error = >Exception in thread "main" java.lang.ClassCastException

    • @helriskor
      @helriskor 3 года назад

      I have the same problem

    • @justswift_1213
      @justswift_1213 2 года назад

      I am having the same problem as well. Did you get any solution? If so, please let me know what it is. It would be really helpful.

    • @leekbiel
      @leekbiel 2 года назад +1

      Hi Sachwini Kumar Khatri;
      1.Check if the name of the 2 packages are the same;
      2.Check if the name of the 2 class are the same;
      The both has to be the same;

    • @gabecarmichael254
      @gabecarmichael254 Год назад

      @@leekbiel If I have all the classes in the same package, it won't let me name them the same thing (2 User classes and 2 Main classes)... What should I do?

  • @bogdan_bgp
    @bogdan_bgp 7 месяцев назад

    "something secure like... password123" 😆😆

  • @piotrjaga6929
    @piotrjaga6929 Год назад

    statistics

  • @puppeteer7929
    @puppeteer7929 Год назад

    : )

  • @imnithyn4447
    @imnithyn4447 2 года назад

  • @lucyl3552
    @lucyl3552 3 года назад +16

    such an amazing tutorial! I was having some trouble working with SQL databases and had to resort to serialization for my cs project, saved my life!

  • @FJ.Y
    @FJ.Y 3 года назад +1

    I love you bro

  • @noah77
    @noah77 4 года назад +5

    Please, please, please make a video on ML or Neural net, please teach how to make a very simple neural net in *JAVA*
    Even if you suck at those ML things, please figure it out, and make a tutorial on it, pleaseeeeeee

  • @joyceasante8292
    @joyceasante8292 Год назад +1

    NOTE
    Converting an object into a byte stream = serialization
    Converting a byte stream into an object = deserialization

  • @koppitent
    @koppitent 7 месяцев назад +1

    bro doesnt link git but pastes Code into comments. 👌💪

  • @codingletsdoit2746
    @codingletsdoit2746 3 года назад +5

    This is the guy who needs support! Thanks this tutorial was the best Bro!

  • @cannac6995
    @cannac6995 3 года назад +3

    13:12
    "To something secure such as *password123* "

  • @fanaha282
    @fanaha282 8 месяцев назад +1

    Your videos are very very helpful but its been a while that you did not post anything about Java, your community is waiting and thank you for that

  • @ahmadosama2652
    @ahmadosama2652 Год назад

    when i try to make deserialization i got this message( class libraryBook cannot be cast to class java.util.ArrayList)

  • @horssentc
    @horssentc Год назад

    great video thank you 👍

  • @lucyledezma709
    @lucyledezma709 4 года назад +1

    Thanks Bro!.. for the new video!

  • @ducare7218
    @ducare7218 Год назад +1

    Clear how-to and break down, still technical but not boring! Thanks Bro Code!

  • @nawfalnjm5699
    @nawfalnjm5699 3 года назад +1

    thanks for this amazing video !

  • @frankjuuh
    @frankjuuh 2 года назад +1

    Love you, bro

  • @Aditya-fu4jj
    @Aditya-fu4jj 8 месяцев назад

    Good work bro

  • @eugenezuev7349
    @eugenezuev7349 3 месяца назад

    good job

  • @wombozombo
    @wombozombo 8 месяцев назад

    Comment

  • @MukulAnand-er8ik
    @MukulAnand-er8ik Год назад

    bro code

  • @VeeGotThePower
    @VeeGotThePower Год назад

    I had a problem when I was doing this in VS Code. The software makes packages for both serialization and deserialization folder in the code, which if removed I couldn't run in the VS Code. But even after following Bro's code step by step, I faced the error :- Exception in thread "main" java.lang.ClassCastException: class broCode.Serialization.User cannot be cast to class broCode.Deserialization.User (broCode.Serialization.User and broCode.Deserialization.User are in unnamed module of loader 'app'). This was very annoying cause I followed step by step. So Stack said that I can change the medium of file I'm saving on to something like a JSON file. But if it can work for bro, it can for us. Thus did it without VS Code the manual way by notepad and cmd prompt (also removed the part of packages, even tho both the code lay in different folder) it worked. Typing all of this for anyone who faces Class Cast Exception.

    • @vuvanphuc6633
      @vuvanphuc6633 10 месяцев назад

      Hi @vishalrai,
      I guess your problem can be cause you're using different names for package and class names on 2 projects. It should be the same on 2 projects. You can solve this issue by that way.
      If you don't want they same the name or package. You can use InputStream instead of FileInputStream as below :
      InputStream is = new FileInputStream("your path file here...");
      ObjectInputStream ois = new ObjectInputStream(is);
      You can solve this issue.

  • @percivalgebashe4376
    @percivalgebashe4376 Год назад

    Nice

  • @matt-g-recovers
    @matt-g-recovers 3 года назад +1

    Nice!
    Thanks Bro!

  • @javierpesaresi311
    @javierpesaresi311 Год назад

    Tremendo!

  • @Jha_Aditya01
    @Jha_Aditya01 2 года назад +1

    Getting the Classcastexception in my Deserialization package... IDE says everything is correct tho it is not printing the values.. any solutions? Please🥺

    • @leekbiel
      @leekbiel 2 года назад +1

      Hi Aditya Kumar;
      1.Check if the name of the 2 packages are the same;
      2.Check if the name of the 2 class are the same;
      The both has to be the same;

    • @yunanistan2364
      @yunanistan2364 Год назад

      @@leekbiel thanks I was searching for it since hours

  • @MrLoser-ks2xn
    @MrLoser-ks2xn Год назад

  • @lukashusz7659
    @lukashusz7659 3 года назад +2

    doesn't work :(

    • @Simon-yf7fo
      @Simon-yf7fo 3 года назад +1

      If you‘d elaborate I might help

    • @mahirahman3838
      @mahirahman3838 3 года назад

      @@Simon-yf7fo I got class not found exception

    • @Simon-yf7fo
      @Simon-yf7fo 3 года назад

      @@mahirahman3838 You try to invoke a class that is not inside the classpath. This is a very common issue. Since you did not provide much information thats the only thing I can tell you.

    • @mahirahman3838
      @mahirahman3838 3 года назад

      @@Simon-yf7fo I serialized the objects In a project named 'Serialization' but when I created an different project(Deserialization) and try to read those serialize objects ,, that time ClassNotFoundException occured.. Though I did exactly same as bro code.

    • @Simon-yf7fo
      @Simon-yf7fo 3 года назад

      @@mahirahman3838 In this case I suspect that your filepath to the serialized Object is wrong (.ser file). Otherwise it could have sonething to do with your run configurations.

  • @annihae5939
    @annihae5939 2 года назад

    Oh no how do you know my password?:D Thanks for the video, helps so much with Java test prep:)

  • @gioele33
    @gioele33 3 года назад +1

    Is it possible to save the file as ".txt" instead of ".ser"?

    • @Simon-yf7fo
      @Simon-yf7fo 3 года назад

      Yes it is but there is no point in doing that

    • @frosty4513
      @frosty4513 3 года назад

      yes it is I just did that

    • @Simon-yf7fo
      @Simon-yf7fo 3 года назад

      @@frosty4513 obviosly it is possible but there is no difference in renaming file endings

  • @quachthetruong
    @quachthetruong 3 года назад

    Is there anyone here have this problem?
    "Exception in thread "main" java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "user" is null"
    When I try to separate serialize and deserialize into 2 projects like in the video, serialize project works fine but deserialize project gives this error. And when I put serialize and deserialize in the same file, it works perfectly. If you know how to fix this problem, please help me!

  • @gobikrishnasharma5041
    @gobikrishnasharma5041 Год назад

    thankz bro amazing way to teaching
    keep it up !!!

  • @cinemacat4108
    @cinemacat4108 2 года назад +1

    hey, thanks for the tutorial , however I have a little problem , whenever I use ObjectOutPutStream or InputStream I get an exception wether it was out.writeObject or in.readObject I imported everything and I made sure the error was from those statments when I surrounded them with a try statment please help

    • @Lukas-qy2on
      @Lukas-qy2on 2 года назад

      "ObjectOutPutStream" output is one word so put is not capitalized
      so its ObjectOutputStream*

    • @cinemacat4108
      @cinemacat4108 2 года назад +2

      @@Lukas-qy2on thanks, however this wasn't the problem, the class I was serializing didnt implement java.serializable thanks anyway

    • @joshuafrancisriin8078
      @joshuafrancisriin8078 2 года назад

      @@cinemacat4108 same problem! How did you solve it?

    • @cinemacat4108
      @cinemacat4108 2 года назад

      @@joshuafrancisriin8078 I forgot to implement Serializable in the class that needs to be saved

  • @suyashgupta1741
    @suyashgupta1741 3 года назад

    13:10 update the password to something secure 😂😂

  • @ikersantana7618
    @ikersantana7618 Год назад

    Bro, I need a teacher like him in my classes

  • @downhilldreamer5313
    @downhilldreamer5313 2 года назад

    liked
    commented
    subscribed

  • @shotx333
    @shotx333 2 года назад

    Nice tutorial

  • @srinicnu5283
    @srinicnu5283 3 года назад

    source code please !!!
    BRO

  • @danielmilewski7659
    @danielmilewski7659 2 года назад

    Best explanation I ever had for this topic! Thank you! Can't believe this is on youtube!

  • @KhuongNguyen-sw2ke
    @KhuongNguyen-sw2ke 2 года назад

    thank you bro

  • @developerjunior446
    @developerjunior446 3 года назад

    Where do you work Bro ?

  • @ibrahimylmaz8378
    @ibrahimylmaz8378 2 года назад

    thanks bro