|
|
||||||||||||||||
Java FAQ: для тех кто знает (учил) С/С++13.03.2013, 11:27. Показов 46798. Ответов 16
1. Строки сравниваются не при помощи оператора == а при помощи метода equals
3. Нельзя перегрузить стандартные операторы 4. Нет деструкторов (для тех кому сильно хочется - по завершении использования объекта, явно присваивайте ему null, это гарантирует что у вас не будет утечки памяти и гарбаж коллектор удалит объект из памяти в одном из проходов) 4.1 нельзя форсировать сборку мусора как бы не хотелось5. Нет глобальных переменных 5.1 модификаторы static делает переменную глобальной в рамках класса, а final делает эту переменную константой6. Нет мультинаследования по классам, но есть по интерфейсам Кликните здесь для просмотра всего текста
6.1 В абстрактных тоже нет мультинаследования 7. Нельзя выскочить за границы массива, будет ArrayIndexOutOfBoundsException (HotSpot может эту проверку в рантайме удалить) 8. Если приложение не в фокусе, то не будут обрабатываться листенеры (аналог хука) с клавиатуры и мыши, в том числе когда приложение в виде иконки в трее (обход только через JNI) 9. Нельзя никак закрыть код от декомпиляции, можно затруднить обфускацией или шифровать/дешифровать нативными либками через JNI 10. Нет поддержки unsigned integer 11. byte это -128 .. 127, а не 0 .. 255 12. Символ десятичного разделителя в double и float на вводе с консоли или из потоков, зависит от локали (в русской и украинской это символ запятой, а не точки), в коде в явном виде всегда точка 13. Многомерный массив это массив ссылок на массивы, таким образом в случае с 2-мерным можно получить например треугольный массив, так как нет ограничения на размерность внутренних массивов. 14. Внутреннее представление String всегда в кодировке UTF-16, при работе с БД обычно требуется явное преобразование 15. JDK или JRE не требует установки как типичные программы и может быть копипастнуто в любое место, в таком случае для запуска ява программы требуется полный путь к исполняемому файлу JVM Кликните здесь для просмотра всего текста
например:
16. Нельзя сделать полностью нативный (без обёрток эмуляторов и JVM) exe или бинарный файл из java программы в случае если в коде использована одна из технологий основанная на Reflection или манипуляции с байткодом. Кликните здесь для просмотра всего текста
например: Spring DI, AOP или ASM, нет никакой возможности конвертировать такое поведение в нативный бинарник 17. На этапе компиляции технология Generics позволяет осуществлять контроль за типами, но в рантайме информация о типах стирается и всё превращается в Object. Варианты получить информацию о объекте в рантайме - аннотации. Кликните здесь для просмотра всего текста
18. В остальных вопросах поможет литература
19
|
||||||||||||||||
| 13.03.2013, 11:27 | |
|
Ответы с готовыми решениями:
16
Для тех кто знает и паскаль и с++ Для тех, кто знает DBMS_SQL Для тех кто знает рогалики |
|
|
|
| 13.03.2013, 14:52 [ТС] | |
|
полноценный: это когда один exe и всё (ну и без всякой эмуляции и врапперов), тоесть полностью нативный код, например такой генерит компилятор gcj из состава gcc
теперь к рефлекшену - если у вас заюзано чёт типа AOP или DI, я уже не говорю про трюки с ASM, то всё приехали, нет ни одного способа превратить динамические вызовы рантайма в нативный аналог.
0
|
|
|
|
|||||||
| 01.07.2013, 00:07 [ТС] | |||||||
В общем после долгого серфинга в гугле и неудачных попыток нашлось таки решение. Опишу весь процесс создания (работоспособного) exe файла. 1) Качаем прогу для создания exe launch4j - http://sourceforge.net/project... 1.0-beta1/ 2) Качаем прогу для создания иконки - http://archive.nbuv.gov.ua/libdoc/bmp2ico.rar 3) У вас должна быть готовая программа - файл с расширением .java или txt 4) Cоздайте папку на диске C. Должно получиться - C:\mypackage 5) Откройте вашу программу (файл с расширением .java или txt) и в самом вверху допишите: package mypackage; (если ваша программа состоит не из одного файла - package mypackage; пишем во ВСЕХ файлах) 6) На диске C создайте файл MANIFEST.MF (текстовый файл с измененным расширением - MF) 7) Внутри MANIFEST.MF напишите: Manifest-Version: 1.0 Created-By: 1.6.0_19 (Sun Microsystems Inc.) Main-Class: mypackage.MyProgram После последней строки(Main-Class: mypackage.MyProgram) оставьте одну пустую. MyProgram - название вашей программы - файл с расширением .java или txt. Расширение файла в манифесте указывать ненужно 8) Переместите вашу программу в папку mypackage 9) Пуск>Выполнить - cmd(если семерка то вбивайте cmd прямо в строку поиска) Шаги 10 11 12 пишем в командной строке 10) cd c:\mypackage 11) javac MyProgram.java 12) cd c:\ 13) Теперь в папке mypackage удалите все кроме MyProgram.class (будем создавать jar файл) Если ваша программа консольная то в командной строке напишите: 14) jar cvmf MANIFEST.MF prog.jar mypackage Если же программа оконная возможно вам понадобится вложить в jar необходимые библиотеки. Чтобы узнать какие именно выполните шаг 14, затем в консоли напишите java -jar prog.jar Получите ошибку что не найдены конкретные библиотеки. К примеру если вы использовали менеджер расположения компонентов swing miglayout, тогда будет нужно из архива miglayout15-swing.jar (если вы используете eclipse, архив находится в папке вашего проекта) выдрать папку net и положить ее на диск C и вместо шага 14 выполнить шаг 15 15) jar cvmf MANIFEST.MF prog.jar mypackage net 16) запускаем launch4j в поле output file указываем где создать и имя exe. 17) В поле jar выбираем созданный нами на диске C prog.jar 18) переходим во вкладку JRE в поле Min JRE Version пишем 1.6.0, в поле Max JRE Version пишем 1.7.0 19) нажимаем на шестеренку(build) сверху. В окне log получаем сообщение об успешном создании exe файла. Чтобы создать иконку, в фотошопе создайте холст размерами 32 на 32 или 48 на 48 Потом это изображение в painte сохраните в формате .bmp и в проге bmp2ico сохраните картинку в формате ico Чтобы приделать иконку к exe файлу в launch4j во вкладке basic в поле Icon: укажите на ваш файл .ico
11
|
|||||||
|
136 / 67 / 27
Регистрация: 18.06.2014
Сообщений: 216
|
|
| 19.06.2014, 18:21 | |
|
Зачем портить переносимость программ? Лучше компилировать нормально без всяких там exe и запускать обычной командой: java -jar program.jar.
0
|
|
|
0 / 3 / 0
Регистрация: 30.03.2019
Сообщений: 194
|
|||
| 06.04.2019, 09:10 | |||
0
|
|||
| 06.04.2019, 09:56 | |
|
0
|
|
|
0 / 3 / 0
Регистрация: 30.03.2019
Сообщений: 194
|
||
| 06.04.2019, 10:23 | ||
|
0
|
||
|
19528 / 11065 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|||
| 06.04.2019, 12:41 | |||
![]()
1
|
|||
|
0 / 3 / 0
Регистрация: 30.03.2019
Сообщений: 194
|
||
| 06.04.2019, 12:50 | ||
|
0
|
||
|
19528 / 11065 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
||
| 06.04.2019, 13:32 | ||
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 06.04.2019, 14:38 | |
|
1Vitaliy, екзешники кроме студентов никому не нужны. На джава почти не пишут десктопных аппликаций.
0
|
|
|
0 / 3 / 0
Регистрация: 30.03.2019
Сообщений: 194
|
||
| 06.04.2019, 15:04 | ||
|
0
|
||
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
| 06.04.2019, 16:06 | |
|
1Vitaliy, Вы не находите противоречия? Java "классная" потому что кроссплатформленная и Java "не классная" потому что проявляется ее кросплатформленность?
1
|
|
|
0 / 3 / 0
Регистрация: 30.03.2019
Сообщений: 194
|
|||
| 06.04.2019, 16:21 | |||
- А я смотрю с точки зрения среднестатистического (возможно чуточку продвинутого) пользователя ПК.
0
|
|||
| 06.04.2019, 17:29 | |
|
Не по теме: 1Vitaliy, Хорошо, тогда я буду руководствоваться вашей логикой. :)
0
|
|
| 06.04.2019, 17:46 | |||||||
0
|
|||||||
| 06.04.2019, 17:46 | |
|
Помогаю со студенческими работами здесь
17
По известным результатам сравнения трех чисел расположить их в порядке возрастания для тех кто знает что такое МАН Сортировка вектора сложного класса (Просто для тех кто знает)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
||||
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub
Примеры вызова:
# Указанная валюта 'EUR'
floatrates-rub -Code 'EUR'
# Список имеющихся кодов валют
floatrates-rub -Available
function floatrates-rub {
|
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5
Примеры вызова
Get-WeatherRP5rss
с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
|
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr
Примеры вызова:
Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
|
|
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют
function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) {
$url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js'
$data = Invoke-RestMethod -Uri $url
$esc = 27
. . .
|
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений
Всем привет. А вот мой компьютер, переделанный из ноутбука.
Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
|
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
|
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца:
Хочу еще Симбу взять, очень нравится. . .
|
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
|