Комментарии (17)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Нямка28 уровень, Зажопинск
9 октября, 08:41
Обычная жесткая ссылка – любая переменная ссылочного типа. Очистится сборщиком мусора не раньше, чем станет неиспользуемой (перестанет быть доступной из GC roots, подробнее в следующих постах). SoftReference – мягкая ссылка. Объект не станет причиной израсходования всей памяти – гарантированно будет удален до возникновения OutOfMemoryError. Может быть раньше, зависит от реализации сборщика мусора. WeakReference – слабая ссылка. Слабее мягкой. Не препятствует утилизации объекта, сборщик мусора игнорирует такие ссылки. PhantomReference – фантомная ссылка. Используется для «предсмертной» обработки объекта: объект доступен после финализации, пока не очищен сборщиком мусора.
Нямка28 уровень, Зажопинск
9 октября, 07:30
SOLID Принцип единственной ответственности (single responsibility principle) Для каждого класса должно быть определено единственное назначение. Все ресурсы, необходимые для его осуществления, должны быть инкапсулированы в этот класс и подчинены только этой задаче. Принцип открытости/закрытости (open–closed principle) «программные сущности … должны быть открыты для расширения, но закрыты для модификации». Принцип подстановки Лисков (Liskov substitution principle) «объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы». Наследующий класс должен дополнять, а не изменять базовый. Принцип разделения интерфейса (interface segregation principle) «много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения». Принцип инверсии зависимостей (dependency inversion principle) «Зависимость на Абстракциях. Нет зависимости на что-то конкретное».
Нямка28 уровень, Зажопинск
25 сентября, 12:21
Алгоритм поиска полей, которые надо пометить как volatile: 1) Вычислить ,сколько в программе будет работать нитей 2) Посмотреть методы run каждой нити 3) В методах run найти поля , общие для всех нитей
Нямка28 уровень, Зажопинск
19 августа, 20:18
Запускаешь через консоль java Test input.txt output.txt, где Test — имя твоего класса. Если выполняете в ИДЕА, то меню Run -> Edit Configuration -> Application в поле Program Arguments указываете аргументы через пробел. Потом в main эти параметры получаешь String fileNameIn = args[0]; String fileNameOut = args[1];
Нямка28 уровень, Зажопинск
14 августа, 11:31
Date and Time Formatting Note: Using the formatting characters with “%T” instead of “%t” in the table below makes the output uppercase. FLAG NOTES %tA Full name of the day of the week, e.g. “Sunday“, “Monday“ %ta Abbreviated name of the week day e.g. “Sun“, “Mon“, etc. %tB Full name of the month e.g. “January“, “February“, etc. %tb Abbreviated month name e.g. “Jan“, “Feb“, etc. %tC Century part of year formatted with two digits e.g. “00” through “99”. %tc Date and time formatted with “%ta %tb %td %tT %tZ %tY” e.g. “Fri Feb 17 07:45:42 PST 2017“ %tD Date formatted as “%tm/%td/%ty“ %td Day of the month formatted with two digits. e.g. “01” to “31“. %te Day of the month formatted without a leading 0 e.g. “1” to “31”. %tF ISO 8601 formatted date with “%tY-%tm-%td“. %tH Hour of the day for the 24-hour clock e.g. “00” to “23“. %th Same as %tb. %tI Hour of the day for the 12-hour clock e.g. “01” – “12“. %tj Day of the year formatted with leading 0s e.g. “001” to “366“. %tk Hour of the day for the 24 hour clock without a leading 0 e.g. “0” to “23“. %tl Hour of the day for the 12-hour click without a leading 0 e.g. “1” to “12“. %tM Minute within the hour formatted a leading 0 e.g. “00” to “59“. %tm Month formatted with a leading 0 e.g. “01” to “12“. %tN Nanosecond formatted with 9 digits and leading 0s e.g. “000000000” to “999999999”. %tp Locale specific “am” or “pm” marker. %tQ Milliseconds since epoch Jan 1 , 1970 00:00:00 UTC. %tR Time formatted as 24-hours e.g. “%tH:%tM“. %tr Time formatted as 12-hours e.g. “%tI:%tM:%tS %Tp“. %tS Seconds within the minute formatted with 2 digits e.g. “00” to “60”. “60” is required to support leap seconds. %ts Seconds since the epoch Jan 1, 1970 00:00:00 UTC. %tT Time formatted as 24-hours e.g. “%tH:%tM:%tS“. %tY Year formatted with 4 digits e.g. “0000” to “9999“. %ty Year formatted with 2 digits e.g. “00” to “99“. %tZ Time zone abbreviation. e.g. “UTC“, “PST“, etc. %tz Time Zone Offset from GMT e.g. “ -0800 “.
Нямка28 уровень, Зажопинск
14 августа, 11:22
Обозначение Тип %s String %d целое число: int, long, … %f вещественное число: float, double %b boolean %c char %t Date %% Символ % %3$s треться строка
Нямка28 уровень, Зажопинск
14 июня, 17:27
имеются в виду параметры которые подаются в main при запуске программы. Чтобы их установить в IDEA, тыкаем: Run - Edit Configurations и вписываем аргументы через пробел в поле Program arguments. Для этой задачи у нас один аргумент - имя файла, т.е. пишем в это поле например: 123.txt Далее в программе, используем этот аргумент, у нас он первый, поэтому будет args[0]. FileInputStream fileReader = new FileInputStream(args[0]);
Нямка28 уровень, Зажопинск
13 июня, 16:41
interface Невозможно создать объект интерфейса, потому что это не класс. У интерфейса нет конструкторов. Access modifier у всех топ-левел интерфейсов или public, или default. Если не указать самостоятельно, то компилятор добавит в определение интерфейса слово abstract. Интерфейс не может быть final. Если не указать самостоятельно, то компилятор добавит в определение всех non-default (не access modifier) и non-static методов слова abstract и public. Из переменных в интерфейсе могут быть только константы, которые должны быть в нём инициализированны. Если не указать самостоятельно, то компилятор добавит в определение всех переменных слова public, final и static. Если класс, который имплементировал интерфейс не перезаписал все его методы, то этот класс должен объявляться abstract. Методы интерфейса не могут быть final.
Нямка28 уровень, Зажопинск
13 июня, 16:40
abstract классы и abstract методы abstract class Figura{ public void abc() { some code } abstract int ploshad(); } У abstract методов не бывает тела. abstract класс может содержать, а может и не содержать abstract методы. Если в классе есть abstract метод, то этот класс тоже должен быть abstract. Невозможно создать объект abstract класса. Дочерний класс должен перезаписать все abstract методы родительского класса или тоже быть abstract. Можно использовать reference variable типа abstract класса чтобы ссылаться на объект дочернего класса, который не является abstract . abstract класс не может быть final. Переменные не могут быть abstract. У abstract классов есть конструктор. Любой перезаписанный метод может быть как abstract, так и не abstract. Для методов недопустимо сочетание: final abstract, private abstract, static abstract Интерфейс – это конструкция языка программирования, которую часто сравнивают с контрактом. В этом контракте указанно, что класс сможет делать, т.е. какие методы в нём будут присутствовать, если он имплементирует данный интерфейс. Когда класс имплементирует какой либо интерфейс, он обязуется снабдить методы этого интерфейса телами (перезаписать абстрактные методы); в противном случае класс должен стать абстрактным. Т.о. если известно, что класс имплементировал какой либо интерфейс, то в этом классе гарантированно будут методы из интерфейса.
Нямка28 уровень, Зажопинск
13 июня, 16:36
Обращение к элементам super класса с помощью keyword “super” С помощью keyword “super” можно обращаться как к методам, так и к переменным родительского класса. Keyword “super” означает обращение к объекту родительского класса. Невозможно использование keyword “super” в static методах и переменных. Для того чтобы обратиться к элементам родительского класса с помощью keyword “super”, эти элементы должны быть видны в дочернем классе. При обращение к методу родительского класса, выражение “super” не обязательно должно быть первой строкой тела метода.