Із радістю повідомляю, що з під мого пера вийшла програма-настільний клієнт для on-line перекладача від Google. Перш за все вона цікава двома можливостями: Вам більше не потрібно йти на сторінку Google Translate для перекладу, крім цього, ви можете перекладати виділений текст у будь-якому вікні, що підтримує копіювання за допомогою комбінації клавіш Ctrl+C.
Основні можливості цієї програми такі:
переклад текстів із однієї мови на іншу;
автоматичне визначення мови тексту;
переклад виділеного фрагменту тексту за допомогою натиснення комбінації клавіш Ctrl+C+C
підтримка великої кількості мов;
програма згортається в системний лоток;
можливість роботи через проксі-сервер;
автозавантаження;
мова інтерфейсу користувача: англійська та українська;
Більш детально ознайомитися із цим продуктом можна тут.Там же ви зможете знайти посилання для завантаження, а також розташування початкових кодів програми. Буду радий відгукам та побажанням щодо роботи.
Стів Джобс (виконавчий директор компанії Apple) відомий своєю майстерністю проведення презентацій. У цьому відео аналізуються принципи, які дозволяють робити його презентації успішними.
In English:
Apple CEO Steve Jobs is well known for his electrifying presentations. Communications coach Carmine Gallo discusses the various techniques Jobs uses to captivate and inspire his audience — techniques that can easily be applied to your next presentation.
Вітаю всіх!
Хочу сповістити приємну новину: відкрився новий розділ на сайті – відео уроки!
Я вважаю, що вивчення нового матеріалу спрощується, коли його можна побачити своїми очима у дії. Тому я вирішив зайнятися збором відео уроків на різноманітні теми в одному місці. Всі вони категоризовані по розділам.
Всі уроки ви можете знайти по адресі: http://bytes.org.ua/category/vtutorials/
Даний розділ буде постійно поповнюватися та розширюватись. Якщо Ви хочете допомогти у створенні колекції – пишіть мені, буду дуже вдячний.
Надіюся, цей розділ принесе користь читачам
Вітаю всіх!
Давненько я вже не писав нічого, і ось настав момент наявності часу і натхнення .
В цій статті я хочу дати вичерпний опис різниці між перевизначенням та перевантаженням в Java.
Далі…
Сьогодні хочу написати про ще декілька нюансів при роботі із шаблоном проектування Одинак (англ. Singleton). У статті про деякі проблеми при його реалізації наведено найпоширеніший підхід за допомогою використання приватного поля із модифікатором final та статичної фабрики (static factory).
Зазначу, що існує ще також подібний метод реалізації – за допомогою публічного final-поля:
// Singleton with public final fieldpublicclass Singleton{publicstaticfinal Singleton INSTANCE =new Singleton();private Singleton(){ ... }}
Але виграшу цей метод майже не дає: сучасні віртуальні машини Java вміють робити inline-виклики методи статичних фабрик (static factory methods)
Але дана реалізація може не виконувати своєї основної функції – не дозволяти створення більше одного екземпляру класу. Це може статися у двох випадках. На них і зупинимося Далі…
Незмінні об’єкти – (англ.: immutable objects) це просто об’єкти, стан яких (їх внутрішні дані) не може змінюватися після його конструювання. Прикладами таких класів у JDK є String та Integer.
Значення незмінних об’єктів
Незмінні об’єкти мають дуже переконливий список позитивних якостей. Без сумніву, вони відносяться до числа найбільш простих і надійних класів, які програміст може створити. При використанні незмінних класів зникає цілий ряд проблем при створенні програм (наприклад, скорочуються затрати на синхронізацію і забезпечення цілісності даних).Незмінні об’єкти виявляються особливо корисними для паралельних програм. Оскільки вони не можуть змінити стан, вони не можуть бути пошкоджені якимось потоком і перебувати у нецілісному стані.Програмісти часто неохоче використовують такі класи, оскільки вважають, що затрати на створення нового об’єкта не дадуть виграшу в порівнянні із модифікацією об’єкта на місці. Хоча затрати на створення об’єкта часто переоцінюють і забувають, що це може бути з лихвою компенсовано ефективнішою роботою із незмінними об’єктами – сюди входить зниження накладних витрат на збирання сміття (garbage collection) і зменшення кількості коду, необхідного для забезпечення цілісності змінюваних об’єктів.Далі…
Захисне копіювання об’єктів застосовується тоді, коли клас містить об’єктні поля, стан яких може модифікуватися тільки даним класом. Наприклад, розглянемо приклад:
packagedefencivecopyingsample;importjava.util.Date;class NotImmutable {privateDate dt =newDate();publiclong getTime(){return dt.getTime();}publicDate getDate(){return dt;}}publicclass Main {/**
* @param args the command line arguments
*/publicstaticvoid main(String[] args){
NotImmutable obj =new NotImmutable();Date d = obj.getDate();System.out.println(obj.getTime());
d.setTime(1);System.out.println(obj.getTime());}}
Результат виконання:
1261782744531
1
В цьому прикладі маємо клас NotImmutable, яки має приватний член Date dt. За допомогою методу getDate() можна отримати доступ до приватного поля dt, оскільки метод повертає посилання на об’єкт dt, а не його копію. Клієнтський код створює об’єкт типу NotImmutable, отримує посилання на приватний член і модифікує його. Оскільки це посилання,зміни зачіпають і приватне поле. Програміст, який пише клієнтський код навіть може і не знати того, що він змінив стан об’єкта obj (він просто працював із іншим об’єктом). Це може призвести до неузгодженості даних та помилок в роботі програми.
Щоб цього уникнути, потрібно використовувати так зване захисне копіювання. Розглянемо це на прикладі:
packagedefencivecopyingsample;importjava.util.Date;class NotImmutable {privateDate dt =newDate();publiclong getTime(){return dt.getTime();}publicDate getDate(){returnnewDate(dt.getTime());}publicvoid setDate(Date dt){this.dt=newDate(dt.getTime());}}publicclass Main {/**
* @param args the command line arguments
*/publicstaticvoid main(String[] args){
NotImmutable obj =new NotImmutable();Date d = obj.getDate();System.out.println(obj.getTime());
d.setTime(1);System.out.println(obj.getTime());}}
Виведення даного прикладу:
1261783307000
1261783307000
Зверніть увагу на реалізацію методів getDate() та setDate(Date dt). Замість копіювання посилань на об’єкти і створюються нові об’єкти. Це гарантуватиме те, що приватні члени ваших класів не будуть змінені із назовні.
Останні коментарі