• ,

Уровень 20: план уровня и доп. материалы

План уровня:
  • Сериализация
  • Сериализация/Десериализация
  • transient
  • Serializable, Externalizable

Курс Java

Что еще можно посмотреть на досуге:
Сериализация обьектов
Сериализация — как она есть
Еще полезный материал

«Привет, мир!» или не засиделся ли ты в учениках?



Первые 20 уровней — это обзор Java. И ты их успешно прошел. Думаю, ты уже прочел "Head First Java", которую я рекомендовал тебе начать читать на 4 уровне. Пришло время начать читать книгу "Thinking in Java" (Философия Java). Думаю, ты знаешь, где ее взять.

Главное — не сдавайся! Прочти повторно эту мотивирующую статью. Каждое прочтение даст тебе новое понимание прогресса твоего обучения.



Нашли классную ссылку к материалу данной темы? Добавьте ее сюда в виде комментария.
Возможно, именно Ваша ссылка поможет другому человеку стать программистом и улучшить свою жизнь!

Вернуться к плану обучения

Вернуться к обучению java онлайн на JavaRush

17 комментариев

Timur
первый пример выбросит NumberFormatException при загрузке значений из файла?
Timur
Первый коммент это не вопрос) И еще мне кажется это предложение не корректно
args
Diana
все неточности, опечатки и баги пости сюда — vk.com/topic-43948962_28499309
В одном месте легче их найти, чтобы править
Timur
Diana Извиняюсь просто подумал вдруг кто доп. материал полезет читать)
Т.е. на helpdesk.tpondemand.com лучше не постить опечатки и баги а только конкретные предложения?
Diana
Хелпдеск — это больше для предложений, багов в работе приложения, каких-то эксепшенов, т.е. разработчики учитывают таски в хелпдеске в своих спринтах. А тема ВК — это для верстальщика, также туда заглядывает разработчик задач, когда планируется багфикс задач и улучшение тестов.
Groomsh
А неточности, опечатки и баги в задачах правятся когда бывает новое обновление, вроде новой порции задач, или в порядке накопления?
Diana
обычно добавляются к какому-то релизу, который происходит примерно раз в 2 недели, чаще по понедельникам. Если фиксов задач мало, то их обновление может быть перенесено на следующий релиз.
panser
по-моему задача из первого урока неработоспособна(буду признателен, если переубедите).

вот начало тревог info.javarush.ru/JavaRush_tasks_discussion/2013/10/27/level20-lesson02-task01.html#comment8700, после вбил в среду код первого примера, не работает. Сам код github.com/panser/JavaRushHomeWork/tree/master/src/ua/org/gostroy/test/level20/lesson1 (для упрощения оставил лишь класс Dog). Спасибо IvanDurov , пришел к выводу «InputStream нормально виден второму классу, но все данные из него уже считаны BufferedReader-ом в первом»

если возможно, выложите рабочий пример первого урока этого уровня.
panser
неужели никто не ответит? как можно разобраться в теме, если примеры из урока не работают. hubert , , уделите внимания.
Diana
import java.io.BufferedReader;
import java.io.PrintWriter;

public class Dog {
    public String name;
    public int age;

    public void save(PrintWriter printWriter) throws Exception {
        printWriter.println(name);
        printWriter.println(age);
        printWriter.flush();
    }

    public void load(BufferedReader bufferedReader) throws Exception {
        name = bufferedReader.readLine();
        age = Integer.parseInt(bufferedReader.readLine());
    }
}


import java.io.*;

public class Human {
    public Dog dog;

    public void save(OutputStream outputStream) throws Exception {
        PrintWriter printWriter = new PrintWriter(outputStream);

        String isDogPresent = dog != null ? "yes" : "no";
        printWriter.println(isDogPresent);
        printWriter.flush();

        if (dog != null) {
            dog.save(printWriter);
        }
    }

    public void load(InputStream inputStream) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

        String isDogPresent = reader.readLine();
        if (isDogPresent.equals("yes")) {
            dog = new Dog();
            dog.load(reader);
        }
    }
}


import java.io.*;

public class Solution {
    public static void main(String[] args) {
        try {
            OutputStream outputStream = new FileOutputStream("file1.bin");
            InputStream inputStream = new FileInputStream("file1.bin");

            Human human = new Human();
            human.dog = new Dog();
            human.dog.name = "Dog1";
            human.dog.age = 2;

            human.save(outputStream);

            Human humanNew = new Human();
            humanNew.load(inputStream);
            System.out.println(humanNew.dog.name);

        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("Oops, something wrong with my file");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Oops, something wrong with save/load method");
        }
    }
}
panser
спасибо. все работает отлично!
terranum
werru
  • werru
  • +1
  • Комментарий отредактирован 2015-09-08 13:35:43 пользователем werru
первая ссылка неправильная
верная ссылка
Roman_kh
вот ссылка поможет понять как решать задачу 20.07.05 ))
Joysi
  • Joysi
  • 0
  • Комментарий отредактирован 2016-03-08 21:43:33 пользователем Joysi
Мне при решении задач по данной лекции помогло:
www.ccfit.nsu.ru/~deviv/courses/oop/java_ser_rus.html
Murat
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.