Как стать автором
Обновить
0
0
Александр @theff

Пользователь

Отправить сообщение

Малоизвестные особенности Java

Время на прочтение4 мин
Количество просмотров141K
Готовясь к собеседованию, я решил освежить память да и вообще поискать каверзные и малоизвестные нюансы языка Java. Выборку пяти наиболее интересных на мой взгляд моментов я вам и предлагаю.

Вот уже подоспела и вторая часть статьи.


1. Нестатические блоки инициализации.

Всем, я думаю, известно, что в Java существуют статические блоки инициализации (class initializers), код которых выполняется при первой загрузке класса.

class Foo {
	static List<Character> abc;
	static {
		abc = new LinkedList<Character>();
		for (char c = 'A'; c <= 'Z'; ++c) {
			abc.add( c );
		}
	}
}


Но существуют также и нестатические блоки инициализации (instance initializers). Они позволяют проводить инициализацию объектов вне зависимости от того, какой конструктор был вызван или, например, вести журналирование:

class Bar {
	{
		System.out.println("Bar: новый экземпляр");
	}
}


Такой метод инициализации весьма полезен для анонимных внутренних классов, которые конструкторов иметь не могут. Кроме того, вопреки ограничению синтаксиса Java, используя их, мы можем элегантно инициализировать коллекцию:

Map<String, String> map = new HashMap<String, String>() {{
	put("паук",  "арахнид");
	put("птица", "архозавр");
	put("кит",   "зверь");
}};


Очень даже мощное средство, не находите?

JFrame frame = new JFrame() {{
	add(new JPanel() {{
		add(new JLabel("Хабрахабр?") {{
			setBackground(Color.BLACK);
			setForeground(Color.WHITE);
		}});

		add(new JButton("Торт!") {{
			addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent event) {
					System.out.println("Хабрахабр - торт!");
				}
			});
		}});
	}});
}};


Остальные четыре пункта под катом.
Читать дальше →
Всего голосов 163: ↑150 и ↓13+137
Комментарии75

Английский для айтишника? Легко!

Время на прочтение2 мин
Количество просмотров181K
Эта тема не относится к IT напрямую, но все знают, что без нее никуда. К сожалению, далеко не у всех есть возможность изучать английский с преподавателями. Ну что ж, попробуем заняться этим дома и с максимальной отдачей!
Читать дальше →
Всего голосов 165: ↑137 и ↓28+109
Комментарии187

Подготовка к экзамену Oracle Certified Professional Java Programmer — Часть 1

Время на прочтение8 мин
Количество просмотров57K

Предисловие



Хочу продолжить делиться приобретенными знаниями и своими впечатлениями от подготовки к экзамену. Огромное спасибо всем тем, кто дал рекомендации к нулевой части этой серии! Сегодня я поговорю еще немножко о модификаторах доступа и их взаимоотношениях с наследованием и пакетами, рассмотрю varargs и перечисления, а также массивы и способы их инициализации. Я надеюсь, что хабражители снова откликнутся и дополнят то, о чем я забыл упомянуть или попросту не знал.

Продолжаем готовиться к экзамену под катом.

Читать дальше →
Всего голосов 45: ↑38 и ↓7+31
Комментарии30

Как работает ConcurrentHashMap

Время на прочтение5 мин
Количество просмотров169K
В октябре на хабре появилась замечательная статья про работу HashMap. Продолжая данную тему, я собираюсь рассказать о реализации java.util.concurrent.ConcurrentHashMap.
Итак, как же появился ConcurrentHashMap, какие у него есть преимущества и как он был реализован.
Читать дальше →
Всего голосов 105: ↑100 и ↓5+95
Комментарии14

ERP? Для начала целостное понимание бизнес-системы

Время на прочтение3 мин
Количество просмотров2.4K
В песочнице уже писал эту тему, только там, к сожалению, не вышли картинки, поэтому повторяю )
Компании сегодня развиты фрагментарно, цели бизнеса, процессы, результаты зачастую мало связаны между собой. Бизнес работает по инерции, мало кто задумывается над высокоуровневым пониманием своей компании. Но когда приходит время автоматизации — внедрить CRM или даже ERP систему всё таки нужно начинать с самого верха. Автоматизация часто выступает в качестве толчка к выстраиванию целостной системы.
Предлагаю чек-лист для проверки готовности компании к автоматизации:
1. Стратегия
2. Бизнес-модель
3. Социальная архитектура
4. Бизнес-процессы
5. Техническая архитектура
6. Результаты

Читать дальше →
Всего голосов 8: ↑5 и ↓3+2
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность