Перечислите методы класса Object
Sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE wait() меняет состояние потока на WAITING может быть вызвано только у объекта владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку. в случае wait(int) с аргументом состояние будет TIMED_WAITING
Если ты помнишь, то finalize() – это специальный метод, который вызывается у объекта перед тем, как сборщик мусора его уничтожит. Основная цель этого метода – освободить используемые внешние не-Java ресурсы: закрыть файлы, потоки ввода-вывода и т.п. finalize() работает нестабильно. Этот метод не оправдывает возложенных на него надежд. Java-машина может отложить уничтожение объекта, как и вызов метода finalize на сколько угодно. Более того, она вообще не гарантирует, что этот метод будет вызван. В куче ситуаций ради «оптимизации» он не вызывается.
Два типа клонирования. Для клонирования объекта по умолчанию нужно: а) Добавить интерфейс Cloneable своему классу б) Переопределить метод clone и вызвать в нем базовую реализацию. Или можно написать реализацию метода clone самому.
Иногда в программе может оказаться такая ситуация, что нить вошла в блок кода synchronized, заблокировала монитор и не может работать дальше, т.к. каких-то данных еще не хватает: например, файл который она должна обработать еще не загрузился или что-нибудь в таком духе. Для решения этой проблемы и был придуман метод wait(). Вызов этого метода приводит к тому, что нить освобождает монитор и «становится на паузу». Для снятия с паузы используются методы notify, notifyAll. Метод notify «размораживает» одну случайную нить, метод notifyAll – все «замороженные» нити данного монитора.
Final — модификатор Поля не могут быть изменены, методы переопределены Классы нельзя наследовать Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным) Аргументы методов, обозначенные как final, предназначены только для чтения, при попытке изменения будет ошибка компиляции Переменные final не инициализируются по умолчанию, им необходимо явно присвоить значение при объявлении или в конструкторе, иначе – ошибка компиляции Если final переменная содержит ссылку на объект, объект может быть изменен, но переменная всегда будет ссылаться на тот же самый объект Также это справедливо и для массивов, потому что массивы являются объектами, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции Так как final класс не может наследоваться, его методы никогда не могут быть переопределены finally — блок в связке try-catch-finally, код в котором выполнится независимо от того вылетело ли исключение в блоке try или нет. Используется для освобождения ресурсов…
Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются объекты. Эти объекты можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось или было исключение, для объекта, созданного внутри круглых скобок (), будет вызван метод close();
изначально hashCode — случайное число. Коллекции в Java перед тем как сравнить объекты с помощью equals всегда ищут/сравнивают их с помощью метода hashCode(). И если у одинаковых объектов будут разные hashCode, то объекты будут считаться разными — до сравнения с помощью equals просто не дойдет.
используются для сравнения объектов. Цель метода equals – определить идентичны ли объекты внутри, сравнив внутреннее содержание объектов. Тк equals работает медленно, сначала сравниваются хэш коды объектов, и, в том случае, если хэш коды равны, идет проверка по equals
++i, I сначала увеличивается на 1, затем участвует в выражении. i++, I сначала участвует в выражении, затем увеличивается на 1.
Equals() hashCode() toString() getClass() notify() notifyAll() wait() wait(long timeOut) wait(long timeOut, int nanos)
Зачем нужны методы equals & hashCode?
Sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE wait() меняет состояние потока на WAITING может быть вызвано только у объекта владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку. в случае wait(int) с аргументом состояние будет TIMED_WAITING
Если ты помнишь, то finalize() – это специальный метод, который вызывается у объекта перед тем, как сборщик мусора его уничтожит. Основная цель этого метода – освободить используемые внешние не-Java ресурсы: закрыть файлы, потоки ввода-вывода и т.п. finalize() работает нестабильно. Этот метод не оправдывает возложенных на него надежд. Java-машина может отложить уничтожение объекта, как и вызов метода finalize на сколько угодно. Более того, она вообще не гарантирует, что этот метод будет вызван. В куче ситуаций ради «оптимизации» он не вызывается.
Два типа клонирования. Для клонирования объекта по умолчанию нужно: а) Добавить интерфейс Cloneable своему классу б) Переопределить метод clone и вызвать в нем базовую реализацию. Или можно написать реализацию метода clone самому.
Иногда в программе может оказаться такая ситуация, что нить вошла в блок кода synchronized, заблокировала монитор и не может работать дальше, т.к. каких-то данных еще не хватает: например, файл который она должна обработать еще не загрузился или что-нибудь в таком духе. Для решения этой проблемы и был придуман метод wait(). Вызов этого метода приводит к тому, что нить освобождает монитор и «становится на паузу». Для снятия с паузы используются методы notify, notifyAll. Метод notify «размораживает» одну случайную нить, метод notifyAll – все «замороженные» нити данного монитора.
Final — модификатор Поля не могут быть изменены, методы переопределены Классы нельзя наследовать Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным) Аргументы методов, обозначенные как final, предназначены только для чтения, при попытке изменения будет ошибка компиляции Переменные final не инициализируются по умолчанию, им необходимо явно присвоить значение при объявлении или в конструкторе, иначе – ошибка компиляции Если final переменная содержит ссылку на объект, объект может быть изменен, но переменная всегда будет ссылаться на тот же самый объект Также это справедливо и для массивов, потому что массивы являются объектами, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции Так как final класс не может наследоваться, его методы никогда не могут быть переопределены finally — блок в связке try-catch-finally, код в котором выполнится независимо от того вылетело ли исключение в блоке try или нет. Используется для освобождения ресурсов…
Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются объекты. Эти объекты можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось или было исключение, для объекта, созданного внутри круглых скобок (), будет вызван метод close();
изначально hashCode — случайное число. Коллекции в Java перед тем как сравнить объекты с помощью equals всегда ищут/сравнивают их с помощью метода hashCode(). И если у одинаковых объектов будут разные hashCode, то объекты будут считаться разными — до сравнения с помощью equals просто не дойдет.
используются для сравнения объектов. Цель метода equals – определить идентичны ли объекты внутри, сравнив внутреннее содержание объектов. Тк equals работает медленно, сначала сравниваются хэш коды объектов, и, в том случае, если хэш коды равны, идет проверка по equals
++i, I сначала увеличивается на 1, затем участвует в выражении. i++, I сначала участвует в выражении, затем увеличивается на 1.
Equals() hashCode() toString() getClass() notify() notifyAll() wait() wait(long timeOut) wait(long timeOut, int nanos)
Что будет, если переопределить equals, но не переопределить hashCode?
Sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE wait() меняет состояние потока на WAITING может быть вызвано только у объекта владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку. в случае wait(int) с аргументом состояние будет TIMED_WAITING
Если ты помнишь, то finalize() – это специальный метод, который вызывается у объекта перед тем, как сборщик мусора его уничтожит. Основная цель этого метода – освободить используемые внешние не-Java ресурсы: закрыть файлы, потоки ввода-вывода и т.п. finalize() работает нестабильно. Этот метод не оправдывает возложенных на него надежд. Java-машина может отложить уничтожение объекта, как и вызов метода finalize на сколько угодно. Более того, она вообще не гарантирует, что этот метод будет вызван. В куче ситуаций ради «оптимизации» он не вызывается.
Два типа клонирования. Для клонирования объекта по умолчанию нужно: а) Добавить интерфейс Cloneable своему классу б) Переопределить метод clone и вызвать в нем базовую реализацию. Или можно написать реализацию метода clone самому.
Иногда в программе может оказаться такая ситуация, что нить вошла в блок кода synchronized, заблокировала монитор и не может работать дальше, т.к. каких-то данных еще не хватает: например, файл который она должна обработать еще не загрузился или что-нибудь в таком духе. Для решения этой проблемы и был придуман метод wait(). Вызов этого метода приводит к тому, что нить освобождает монитор и «становится на паузу». Для снятия с паузы используются методы notify, notifyAll. Метод notify «размораживает» одну случайную нить, метод notifyAll – все «замороженные» нити данного монитора.
Final — модификатор Поля не могут быть изменены, методы переопределены Классы нельзя наследовать Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным) Аргументы методов, обозначенные как final, предназначены только для чтения, при попытке изменения будет ошибка компиляции Переменные final не инициализируются по умолчанию, им необходимо явно присвоить значение при объявлении или в конструкторе, иначе – ошибка компиляции Если final переменная содержит ссылку на объект, объект может быть изменен, но переменная всегда будет ссылаться на тот же самый объект Также это справедливо и для массивов, потому что массивы являются объектами, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции Так как final класс не может наследоваться, его методы никогда не могут быть переопределены finally — блок в связке try-catch-finally, код в котором выполнится независимо от того вылетело ли исключение в блоке try или нет. Используется для освобождения ресурсов…
Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются объекты. Эти объекты можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось или было исключение, для объекта, созданного внутри круглых скобок (), будет вызван метод close();
изначально hashCode — случайное число. Коллекции в Java перед тем как сравнить объекты с помощью equals всегда ищут/сравнивают их с помощью метода hashCode(). И если у одинаковых объектов будут разные hashCode, то объекты будут считаться разными — до сравнения с помощью equals просто не дойдет.
используются для сравнения объектов. Цель метода equals – определить идентичны ли объекты внутри, сравнив внутреннее содержание объектов. Тк equals работает медленно, сначала сравниваются хэш коды объектов, и, в том случае, если хэш коды равны, идет проверка по equals
++i, I сначала увеличивается на 1, затем участвует в выражении. i++, I сначала участвует в выражении, затем увеличивается на 1.
Equals() hashCode() toString() getClass() notify() notifyAll() wait() wait(long timeOut) wait(long timeOut, int nanos)
Зачем нужны методы wait, notify, notifyAll?
Sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE wait() меняет состояние потока на WAITING может быть вызвано только у объекта владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку. в случае wait(int) с аргументом состояние будет TIMED_WAITING
Если ты помнишь, то finalize() – это специальный метод, который вызывается у объекта перед тем, как сборщик мусора его уничтожит. Основная цель этого метода – освободить используемые внешние не-Java ресурсы: закрыть файлы, потоки ввода-вывода и т.п. finalize() работает нестабильно. Этот метод не оправдывает возложенных на него надежд. Java-машина может отложить уничтожение объекта, как и вызов метода finalize на сколько угодно. Более того, она вообще не гарантирует, что этот метод будет вызван. В куче ситуаций ради «оптимизации» он не вызывается.
Два типа клонирования. Для клонирования объекта по умолчанию нужно: а) Добавить интерфейс Cloneable своему классу б) Переопределить метод clone и вызвать в нем базовую реализацию. Или можно написать реализацию метода clone самому.
Иногда в программе может оказаться такая ситуация, что нить вошла в блок кода synchronized, заблокировала монитор и не может работать дальше, т.к. каких-то данных еще не хватает: например, файл который она должна обработать еще не загрузился или что-нибудь в таком духе. Для решения этой проблемы и был придуман метод wait(). Вызов этого метода приводит к тому, что нить освобождает монитор и «становится на паузу». Для снятия с паузы используются методы notify, notifyAll. Метод notify «размораживает» одну случайную нить, метод notifyAll – все «замороженные» нити данного монитора.
Final — модификатор Поля не могут быть изменены, методы переопределены Классы нельзя наследовать Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным) Аргументы методов, обозначенные как final, предназначены только для чтения, при попытке изменения будет ошибка компиляции Переменные final не инициализируются по умолчанию, им необходимо явно присвоить значение при объявлении или в конструкторе, иначе – ошибка компиляции Если final переменная содержит ссылку на объект, объект может быть изменен, но переменная всегда будет ссылаться на тот же самый объект Также это справедливо и для массивов, потому что массивы являются объектами, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции Так как final класс не может наследоваться, его методы никогда не могут быть переопределены finally — блок в связке try-catch-finally, код в котором выполнится независимо от того вылетело ли исключение в блоке try или нет. Используется для освобождения ресурсов…
Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются объекты. Эти объекты можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось или было исключение, для объекта, созданного внутри круглых скобок (), будет вызван метод close();
изначально hashCode — случайное число. Коллекции в Java перед тем как сравнить объекты с помощью equals всегда ищут/сравнивают их с помощью метода hashCode(). И если у одинаковых объектов будут разные hashCode, то объекты будут считаться разными — до сравнения с помощью equals просто не дойдет.
используются для сравнения объектов. Цель метода equals – определить идентичны ли объекты внутри, сравнив внутреннее содержание объектов. Тк equals работает медленно, сначала сравниваются хэш коды объектов, и, в том случае, если хэш коды равны, идет проверка по equals
++i, I сначала увеличивается на 1, затем участвует в выражении. i++, I сначала участвует в выражении, затем увеличивается на 1.
Equals() hashCode() toString() getClass() notify() notifyAll() wait() wait(long timeOut) wait(long timeOut, int nanos)
Как правильно клонировать объект?
Sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE wait() меняет состояние потока на WAITING может быть вызвано только у объекта владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку. в случае wait(int) с аргументом состояние будет TIMED_WAITING
Если ты помнишь, то finalize() – это специальный метод, который вызывается у объекта перед тем, как сборщик мусора его уничтожит. Основная цель этого метода – освободить используемые внешние не-Java ресурсы: закрыть файлы, потоки ввода-вывода и т.п. finalize() работает нестабильно. Этот метод не оправдывает возложенных на него надежд. Java-машина может отложить уничтожение объекта, как и вызов метода finalize на сколько угодно. Более того, она вообще не гарантирует, что этот метод будет вызван. В куче ситуаций ради «оптимизации» он не вызывается.
Два типа клонирования. Для клонирования объекта по умолчанию нужно: а) Добавить интерфейс Cloneable своему классу б) Переопределить метод clone и вызвать в нем базовую реализацию. Или можно написать реализацию метода clone самому.
Иногда в программе может оказаться такая ситуация, что нить вошла в блок кода synchronized, заблокировала монитор и не может работать дальше, т.к. каких-то данных еще не хватает: например, файл который она должна обработать еще не загрузился или что-нибудь в таком духе. Для решения этой проблемы и был придуман метод wait(). Вызов этого метода приводит к тому, что нить освобождает монитор и «становится на паузу». Для снятия с паузы используются методы notify, notifyAll. Метод notify «размораживает» одну случайную нить, метод notifyAll – все «замороженные» нити данного монитора.
Final — модификатор Поля не могут быть изменены, методы переопределены Классы нельзя наследовать Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным) Аргументы методов, обозначенные как final, предназначены только для чтения, при попытке изменения будет ошибка компиляции Переменные final не инициализируются по умолчанию, им необходимо явно присвоить значение при объявлении или в конструкторе, иначе – ошибка компиляции Если final переменная содержит ссылку на объект, объект может быть изменен, но переменная всегда будет ссылаться на тот же самый объект Также это справедливо и для массивов, потому что массивы являются объектами, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции Так как final класс не может наследоваться, его методы никогда не могут быть переопределены finally — блок в связке try-catch-finally, код в котором выполнится независимо от того вылетело ли исключение в блоке try или нет. Используется для освобождения ресурсов…
Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются объекты. Эти объекты можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось или было исключение, для объекта, созданного внутри круглых скобок (), будет вызван метод close();
изначально hashCode — случайное число. Коллекции в Java перед тем как сравнить объекты с помощью equals всегда ищут/сравнивают их с помощью метода hashCode(). И если у одинаковых объектов будут разные hashCode, то объекты будут считаться разными — до сравнения с помощью equals просто не дойдет.
используются для сравнения объектов. Цель метода equals – определить идентичны ли объекты внутри, сравнив внутреннее содержание объектов. Тк equals работает медленно, сначала сравниваются хэш коды объектов, и, в том случае, если хэш коды равны, идет проверка по equals
++i, I сначала увеличивается на 1, затем участвует в выражении. i++, I сначала участвует в выражении, затем увеличивается на 1.
Equals() hashCode() toString() getClass() notify() notifyAll() wait() wait(long timeOut) wait(long timeOut, int nanos)
Зачем нужен метод finalize() и как он работает?
Sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE wait() меняет состояние потока на WAITING может быть вызвано только у объекта владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку. в случае wait(int) с аргументом состояние будет TIMED_WAITING
Если ты помнишь, то finalize() – это специальный метод, который вызывается у объекта перед тем, как сборщик мусора его уничтожит. Основная цель этого метода – освободить используемые внешние не-Java ресурсы: закрыть файлы, потоки ввода-вывода и т.п. finalize() работает нестабильно. Этот метод не оправдывает возложенных на него надежд. Java-машина может отложить уничтожение объекта, как и вызов метода finalize на сколько угодно. Более того, она вообще не гарантирует, что этот метод будет вызван. В куче ситуаций ради «оптимизации» он не вызывается.
Два типа клонирования. Для клонирования объекта по умолчанию нужно: а) Добавить интерфейс Cloneable своему классу б) Переопределить метод clone и вызвать в нем базовую реализацию. Или можно написать реализацию метода clone самому.
Иногда в программе может оказаться такая ситуация, что нить вошла в блок кода synchronized, заблокировала монитор и не может работать дальше, т.к. каких-то данных еще не хватает: например, файл который она должна обработать еще не загрузился или что-нибудь в таком духе. Для решения этой проблемы и был придуман метод wait(). Вызов этого метода приводит к тому, что нить освобождает монитор и «становится на паузу». Для снятия с паузы используются методы notify, notifyAll. Метод notify «размораживает» одну случайную нить, метод notifyAll – все «замороженные» нити данного монитора.
Final — модификатор Поля не могут быть изменены, методы переопределены Классы нельзя наследовать Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным) Аргументы методов, обозначенные как final, предназначены только для чтения, при попытке изменения будет ошибка компиляции Переменные final не инициализируются по умолчанию, им необходимо явно присвоить значение при объявлении или в конструкторе, иначе – ошибка компиляции Если final переменная содержит ссылку на объект, объект может быть изменен, но переменная всегда будет ссылаться на тот же самый объект Также это справедливо и для массивов, потому что массивы являются объектами, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции Так как final класс не может наследоваться, его методы никогда не могут быть переопределены finally — блок в связке try-catch-finally, код в котором выполнится независимо от того вылетело ли исключение в блоке try или нет. Используется для освобождения ресурсов…
Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются объекты. Эти объекты можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось или было исключение, для объекта, созданного внутри круглых скобок (), будет вызван метод close();
изначально hashCode — случайное число. Коллекции в Java перед тем как сравнить объекты с помощью equals всегда ищут/сравнивают их с помощью метода hashCode(). И если у одинаковых объектов будут разные hashCode, то объекты будут считаться разными — до сравнения с помощью equals просто не дойдет.
используются для сравнения объектов. Цель метода equals – определить идентичны ли объекты внутри, сравнив внутреннее содержание объектов. Тк equals работает медленно, сначала сравниваются хэш коды объектов, и, в том случае, если хэш коды равны, идет проверка по equals
++i, I сначала увеличивается на 1, затем участвует в выражении. i++, I сначала участвует в выражении, затем увеличивается на 1.
Equals() hashCode() toString() getClass() notify() notifyAll() wait() wait(long timeOut) wait(long timeOut, int nanos)
В чем отличие final, finally, finalize?
Sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE wait() меняет состояние потока на WAITING может быть вызвано только у объекта владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку. в случае wait(int) с аргументом состояние будет TIMED_WAITING
Если ты помнишь, то finalize() – это специальный метод, который вызывается у объекта перед тем, как сборщик мусора его уничтожит. Основная цель этого метода – освободить используемые внешние не-Java ресурсы: закрыть файлы, потоки ввода-вывода и т.п. finalize() работает нестабильно. Этот метод не оправдывает возложенных на него надежд. Java-машина может отложить уничтожение объекта, как и вызов метода finalize на сколько угодно. Более того, она вообще не гарантирует, что этот метод будет вызван. В куче ситуаций ради «оптимизации» он не вызывается.
Два типа клонирования. Для клонирования объекта по умолчанию нужно: а) Добавить интерфейс Cloneable своему классу б) Переопределить метод clone и вызвать в нем базовую реализацию. Или можно написать реализацию метода clone самому.
Иногда в программе может оказаться такая ситуация, что нить вошла в блок кода synchronized, заблокировала монитор и не может работать дальше, т.к. каких-то данных еще не хватает: например, файл который она должна обработать еще не загрузился или что-нибудь в таком духе. Для решения этой проблемы и был придуман метод wait(). Вызов этого метода приводит к тому, что нить освобождает монитор и «становится на паузу». Для снятия с паузы используются методы notify, notifyAll. Метод notify «размораживает» одну случайную нить, метод notifyAll – все «замороженные» нити данного монитора.
Final — модификатор Поля не могут быть изменены, методы переопределены Классы нельзя наследовать Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным) Аргументы методов, обозначенные как final, предназначены только для чтения, при попытке изменения будет ошибка компиляции Переменные final не инициализируются по умолчанию, им необходимо явно присвоить значение при объявлении или в конструкторе, иначе – ошибка компиляции Если final переменная содержит ссылку на объект, объект может быть изменен, но переменная всегда будет ссылаться на тот же самый объект Также это справедливо и для массивов, потому что массивы являются объектами, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции Так как final класс не может наследоваться, его методы никогда не могут быть переопределены finally — блок в связке try-catch-finally, код в котором выполнится независимо от того вылетело ли исключение в блоке try или нет. Используется для освобождения ресурсов…
Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются объекты. Эти объекты можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось или было исключение, для объекта, созданного внутри круглых скобок (), будет вызван метод close();
изначально hashCode — случайное число. Коллекции в Java перед тем как сравнить объекты с помощью equals всегда ищут/сравнивают их с помощью метода hashCode(). И если у одинаковых объектов будут разные hashCode, то объекты будут считаться разными — до сравнения с помощью equals просто не дойдет.
используются для сравнения объектов. Цель метода equals – определить идентичны ли объекты внутри, сравнив внутреннее содержание объектов. Тк equals работает медленно, сначала сравниваются хэш коды объектов, и, в том случае, если хэш коды равны, идет проверка по equals
++i, I сначала увеличивается на 1, затем участвует в выражении. i++, I сначала участвует в выражении, затем увеличивается на 1.
Equals() hashCode() toString() getClass() notify() notifyAll() wait() wait(long timeOut) wait(long timeOut, int nanos)
Что такое try-with-resources?
Sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE wait() меняет состояние потока на WAITING может быть вызвано только у объекта владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку. в случае wait(int) с аргументом состояние будет TIMED_WAITING
Если ты помнишь, то finalize() – это специальный метод, который вызывается у объекта перед тем, как сборщик мусора его уничтожит. Основная цель этого метода – освободить используемые внешние не-Java ресурсы: закрыть файлы, потоки ввода-вывода и т.п. finalize() работает нестабильно. Этот метод не оправдывает возложенных на него надежд. Java-машина может отложить уничтожение объекта, как и вызов метода finalize на сколько угодно. Более того, она вообще не гарантирует, что этот метод будет вызван. В куче ситуаций ради «оптимизации» он не вызывается.
Два типа клонирования. Для клонирования объекта по умолчанию нужно: а) Добавить интерфейс Cloneable своему классу б) Переопределить метод clone и вызвать в нем базовую реализацию. Или можно написать реализацию метода clone самому.
Иногда в программе может оказаться такая ситуация, что нить вошла в блок кода synchronized, заблокировала монитор и не может работать дальше, т.к. каких-то данных еще не хватает: например, файл который она должна обработать еще не загрузился или что-нибудь в таком духе. Для решения этой проблемы и был придуман метод wait(). Вызов этого метода приводит к тому, что нить освобождает монитор и «становится на паузу». Для снятия с паузы используются методы notify, notifyAll. Метод notify «размораживает» одну случайную нить, метод notifyAll – все «замороженные» нити данного монитора.
Final — модификатор Поля не могут быть изменены, методы переопределены Классы нельзя наследовать Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным) Аргументы методов, обозначенные как final, предназначены только для чтения, при попытке изменения будет ошибка компиляции Переменные final не инициализируются по умолчанию, им необходимо явно присвоить значение при объявлении или в конструкторе, иначе – ошибка компиляции Если final переменная содержит ссылку на объект, объект может быть изменен, но переменная всегда будет ссылаться на тот же самый объект Также это справедливо и для массивов, потому что массивы являются объектами, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции Так как final класс не может наследоваться, его методы никогда не могут быть переопределены finally — блок в связке try-catch-finally, код в котором выполнится независимо от того вылетело ли исключение в блоке try или нет. Используется для освобождения ресурсов…
Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются объекты. Эти объекты можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось или было исключение, для объекта, созданного внутри круглых скобок (), будет вызван метод close();
изначально hashCode — случайное число. Коллекции в Java перед тем как сравнить объекты с помощью equals всегда ищут/сравнивают их с помощью метода hashCode(). И если у одинаковых объектов будут разные hashCode, то объекты будут считаться разными — до сравнения с помощью equals просто не дойдет.
используются для сравнения объектов. Цель метода equals – определить идентичны ли объекты внутри, сравнив внутреннее содержание объектов. Тк equals работает медленно, сначала сравниваются хэш коды объектов, и, в том случае, если хэш коды равны, идет проверка по equals
++i, I сначала увеличивается на 1, затем участвует в выражении. i++, I сначала участвует в выражении, затем увеличивается на 1.
Equals() hashCode() toString() getClass() notify() notifyAll() wait() wait(long timeOut) wait(long timeOut, int nanos)
Чем отличаются методы wait(1000) и sleep(1000)?
Sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE wait() меняет состояние потока на WAITING может быть вызвано только у объекта владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку. в случае wait(int) с аргументом состояние будет TIMED_WAITING
Если ты помнишь, то finalize() – это специальный метод, который вызывается у объекта перед тем, как сборщик мусора его уничтожит. Основная цель этого метода – освободить используемые внешние не-Java ресурсы: закрыть файлы, потоки ввода-вывода и т.п. finalize() работает нестабильно. Этот метод не оправдывает возложенных на него надежд. Java-машина может отложить уничтожение объекта, как и вызов метода finalize на сколько угодно. Более того, она вообще не гарантирует, что этот метод будет вызван. В куче ситуаций ради «оптимизации» он не вызывается.
Два типа клонирования. Для клонирования объекта по умолчанию нужно: а) Добавить интерфейс Cloneable своему классу б) Переопределить метод clone и вызвать в нем базовую реализацию. Или можно написать реализацию метода clone самому.
Иногда в программе может оказаться такая ситуация, что нить вошла в блок кода synchronized, заблокировала монитор и не может работать дальше, т.к. каких-то данных еще не хватает: например, файл который она должна обработать еще не загрузился или что-нибудь в таком духе. Для решения этой проблемы и был придуман метод wait(). Вызов этого метода приводит к тому, что нить освобождает монитор и «становится на паузу». Для снятия с паузы используются методы notify, notifyAll. Метод notify «размораживает» одну случайную нить, метод notifyAll – все «замороженные» нити данного монитора.
Final — модификатор Поля не могут быть изменены, методы переопределены Классы нельзя наследовать Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным) Аргументы методов, обозначенные как final, предназначены только для чтения, при попытке изменения будет ошибка компиляции Переменные final не инициализируются по умолчанию, им необходимо явно присвоить значение при объявлении или в конструкторе, иначе – ошибка компиляции Если final переменная содержит ссылку на объект, объект может быть изменен, но переменная всегда будет ссылаться на тот же самый объект Также это справедливо и для массивов, потому что массивы являются объектами, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции Так как final класс не может наследоваться, его методы никогда не могут быть переопределены finally — блок в связке try-catch-finally, код в котором выполнится независимо от того вылетело ли исключение в блоке try или нет. Используется для освобождения ресурсов…
Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются объекты. Эти объекты можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось или было исключение, для объекта, созданного внутри круглых скобок (), будет вызван метод close();
изначально hashCode — случайное число. Коллекции в Java перед тем как сравнить объекты с помощью equals всегда ищут/сравнивают их с помощью метода hashCode(). И если у одинаковых объектов будут разные hashCode, то объекты будут считаться разными — до сравнения с помощью equals просто не дойдет.
используются для сравнения объектов. Цель метода equals – определить идентичны ли объекты внутри, сравнив внутреннее содержание объектов. Тк equals работает медленно, сначала сравниваются хэш коды объектов, и, в том случае, если хэш коды равны, идет проверка по equals
++i, I сначала увеличивается на 1, затем участвует в выражении. i++, I сначала участвует в выражении, затем увеличивается на 1.
Equals() hashCode() toString() getClass() notify() notifyAll() wait() wait(long timeOut) wait(long timeOut, int nanos)
В чем отличие i++ и ++i ?
Sleep() приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLE wait() меняет состояние потока на WAITING может быть вызвано только у объекта владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку. в случае wait(int) с аргументом состояние будет TIMED_WAITING
Если ты помнишь, то finalize() – это специальный метод, который вызывается у объекта перед тем, как сборщик мусора его уничтожит. Основная цель этого метода – освободить используемые внешние не-Java ресурсы: закрыть файлы, потоки ввода-вывода и т.п. finalize() работает нестабильно. Этот метод не оправдывает возложенных на него надежд. Java-машина может отложить уничтожение объекта, как и вызов метода finalize на сколько угодно. Более того, она вообще не гарантирует, что этот метод будет вызван. В куче ситуаций ради «оптимизации» он не вызывается.
Два типа клонирования. Для клонирования объекта по умолчанию нужно: а) Добавить интерфейс Cloneable своему классу б) Переопределить метод clone и вызвать в нем базовую реализацию. Или можно написать реализацию метода clone самому.
Иногда в программе может оказаться такая ситуация, что нить вошла в блок кода synchronized, заблокировала монитор и не может работать дальше, т.к. каких-то данных еще не хватает: например, файл который она должна обработать еще не загрузился или что-нибудь в таком духе. Для решения этой проблемы и был придуман метод wait(). Вызов этого метода приводит к тому, что нить освобождает монитор и «становится на паузу». Для снятия с паузы используются методы notify, notifyAll. Метод notify «размораживает» одну случайную нить, метод notifyAll – все «замороженные» нити данного монитора.
Final — модификатор Поля не могут быть изменены, методы переопределены Классы нельзя наследовать Этот модификатор применяется только к классам, методам и переменным (также и к локальным переменным) Аргументы методов, обозначенные как final, предназначены только для чтения, при попытке изменения будет ошибка компиляции Переменные final не инициализируются по умолчанию, им необходимо явно присвоить значение при объявлении или в конструкторе, иначе – ошибка компиляции Если final переменная содержит ссылку на объект, объект может быть изменен, но переменная всегда будет ссылаться на тот же самый объект Также это справедливо и для массивов, потому что массивы являются объектами, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив Если класс объявлен final и abstract (взаимоисключающие понятия), произойдет ошибка компиляции Так как final класс не может наследоваться, его методы никогда не могут быть переопределены finally — блок в связке try-catch-finally, код в котором выполнится независимо от того вылетело ли исключение в блоке try или нет. Используется для освобождения ресурсов…
Это специальная конструкция try, называемая try-with-resources, в которой Обрати внимание – после try следуют круглые скобки, где объявляются переменные и создаются объекты. Эти объекты можно использовать внутри блока try, обозначенного скобками {}. Когда выполнение команд блока try закончится, независимо от того – нормально оно закончилось или было исключение, для объекта, созданного внутри круглых скобок (), будет вызван метод close();
изначально hashCode — случайное число. Коллекции в Java перед тем как сравнить объекты с помощью equals всегда ищут/сравнивают их с помощью метода hashCode(). И если у одинаковых объектов будут разные hashCode, то объекты будут считаться разными — до сравнения с помощью equals просто не дойдет.
используются для сравнения объектов. Цель метода equals – определить идентичны ли объекты внутри, сравнив внутреннее содержание объектов. Тк equals работает медленно, сначала сравниваются хэш коды объектов, и, в том случае, если хэш коды равны, идет проверка по equals
++i, I сначала увеличивается на 1, затем участвует в выражении. i++, I сначала участвует в выражении, затем увеличивается на 1.
Equals() hashCode() toString() getClass() notify() notifyAll() wait() wait(long timeOut) wait(long timeOut, int nanos)
{"name":"Перечислите методы класса Object", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Перечислите методы класса Object, Зачем нужны методы equals & hashCode?","img":"https://www.quiz-maker.com/3012/images/ogquiz.png"}
Powered by: Quiz Maker