Ответы пользователя по тегу Java
  • Существуют ли НЕ видеоуроки по различным ЯП?

    @Ix_Didicus
    Лично я делаю так: нахожу какую-нибудь книгу (тут же, на тостере, можно найти десятки, если не сотни рекомендаций), и по мере того, как там описываются языковые конструкции, функции, библиотеки, примеры и т.п., тут же открываю блокнот/ИДЕ и пишу какой-нибудь код, синтетический пример с их использованием, иногда экспериментирую, компилирую и смотрю, что получилось.

    А лучше всего написать что-нибудь своё, какую-нибудь простенькую программку (сначала консольную, потом можно и за ГУИ взяться), которая, например, парсит файлы или веб-страницы, или автоматизирует какую-нибудь рутину, или даже простенькую игру — короче говоря, пишите то, что интересно лично вам. Гарантирую, тогда будет и веселье, и грусть, и пасмур...
    Если задумка окажется неподъёмной, попробуйте найти опенсорсные аналоги своей будущей программы и изучайте их исходный код, учитесь по образцу.
    Никакие онлайн-курсы, задания и т.п. не заменят опыта настоящей разработки. Я не утверждаю, что они совсем не нужны, но необходимо параллельно заниматься и самостоятельной работой.
    Ответ написан
    Комментировать
  • Как получить физический адрес файла средствами Java(не смонтированного раздела)?

    @Ix_Didicus
    Посмотрите в сторону пакета java.nio.file.
    Например, в классе Files есть интересный метод isSameFile. Я по-быстрому набросал вот такой код:
    import java.nio.file.Files;
    import java.nio.file.FileSystem;
    import java.nio.file.FileSystems;
    import java.nio.file.Path;
    
    public class UnixPath{
    	public static void main(String[] args) throws Exception {
    		Path path1 = FileSystems.getDefault().getPath(args[0]);
    		Path path2 = FileSystems.getDefault().getPath(args[1]);
    		System.out.println(Files.isSameFile(path1, path2));
    	}
    }

    Мне пока лень перезагружаться в Линукс, но на винде он отработал как надо (я передал в качестве параметров настоящее имя папки и хардлинк, ведущий на неё же, выдало true). Даже если это не то, попробуйте внимательно изучить пакет java.nio, если где-то есть ответ на ваш вопрос, то, скорее всего, он там.
    edit: Проверил в Линуксе на симлинке, тоже true.
    Ответ написан
    Комментировать
  • Как в Java делать byte b; b++ и b-- правильно?

    @Ix_Didicus
    К сожалению, в Java нет unsigned типов, но можно перед выводом или использованием значения наложить на него битовую маску:

    public class bytes{
    	public static void main(String[] args){
    		byte b = (byte) 200;
    		System.out.println(b & 0xFF);
    		b+=100;
    		System.out.println(b & 0xFF);
    	}
    }


    Этот код выведет 200 и 44.

    >>Пример: 200 + 100 = 44
    К слову, это называется не "дополнительным кодом" (доп. код — это представление отрицательных чисел, см. ту же Википедию), а переполнением, т.е., попыткой записать в переменную число большее, чем допустимо типом переменной, в результате чего старшие биты попросту утрачиваются.
    Ответ написан
    Комментировать
  • Примеры задач для программирования?

    @Ix_Didicus
    В принципе, до меня уже всё сказали, я лишь добавлю, что стоит не только писать код самому, но и смотреть, как пишут другие. Ищите опен-сорсные проекты, интересные вам, загружайте, изучайте. Возможно, вам понравится такой вариант: написать небольшую програмку самому (напр., тот же блокнот), затем поискать опен-сорсный аналог (а лучше не один) и посмотреть, как к решению той же задачи подошли другие люди, сравнить со своим, возможно, что-то поправить у себя, перенести какие-либо идеи оттуда и т.д.
    Ответ написан
    Комментировать
  • Сборка java-программы для windows, защита программы?

    @Ix_Didicus
    Насколько я понимаю, в тех же Eclipse, NetBeans и т.д., exe-шник — это не более, чем запускалка, JAR-ники просто спрятаны от глаз пользователя в каталогах программы, т.о., JRE всё равно требуется для запуска программы, exe-шник берёт на себя поиск Java-машины, подключает JAR-ники в classpath и запускает программу со всеми необходимыми для её работы ключами. С тем же успехом можно использовать даже простейший (или не очень) батник или shell-скрипт (можно подсмотреть примеры в папке bin/ Ceylon'а).
    Если же цель именно в избавлении пользователя от необходимости качать JRE, смотрите в сторону Avian: oss.readytalk.com/avian

    Что касается второго вопроса — насколько я знаю, самым распространённым методом защиты от исследования исходного кода в мире Java является обфускация. К примеру, её применяли в Minecraft. К сожалению (или счастью), это не очень надёжный метод.
    Ответ написан
    Комментировать