Вниз  Java-программирование (1-ые посты)
- 3.12.2015 / 14:51
Oak
  Пользователь

Oak 
Сейчас: Offline
RooMeN, лучший вариант — скопировать из String реализацию split (или свою написать, будет тоже самое), которая будет принимать в аргументы список и опустошать, а затем наполнять его

Далее, если писать свой split, то можно обнаружить, что в восьмой яве substring создает новую строку, что не всегда нужно, поэтому если размеры подстрок превышают примерно 10 символов, то лучше написать свой класс-обертку для String, который будет хранить указатель на оргинальную строку и начало+конец подстроки, чтобы память утекала поменьше. Тебе, как я понимаю, это не нужно.

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

В четвертых, System.out.println — довольно долгая операция, поэтому строку для вывода лучше построить заранее в каком-нибудь StringBuilder и потом разово выводить, это, кстати, избавит еще и от кучи строк в памяти.

Ну, все вроде.
__________________
 Эль Презеденте

Изменено Oak (3.12 / 14:52) (всего 1 раз)
- 6.12.2015 / 02:41
Alexandr
  Пользователь

Alexandr 
Сейчас: Offline
Доброй ночи
Хочу достать id записи в рмс.
Набросал такой метод, но он даже нормально не компилится
Открыть спойлер
Помогите, это вылечить и сделать все правельно. :gg:
- 6.12.2015 / 03:34
Oak
  Пользователь

Oak 
Сейчас: Offline
Alexandr, строчка 2 int id = -1;

Локальные переменные никаким значением по умолчанию не инициализируются, а в твоем коде, возможно, что ей никакое значение не присвоится, но никакое значение вернуть нельзя. Поэтому локальной переменной при инициализации необходимо самостоятельно присвоить значение.
__________________
 Эль Презеденте
- 8.12.2015 / 15:20
lightro
  Пользователь

lightro 
Сейчас: Offline
Можно ли прогуарду скормить готовый jar? Если да, как?
- 8.12.2015 / 16:15
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
lightro, можно. Он умеет и jar, и zip, и папки с классами, даже apk. Параметр -injars
__________________
 let live

Изменено aNNiMON (8.12 / 16:17) (всего 1 раз)
- 8.12.2015 / 20:55
lightro
  Пользователь

lightro 
Сейчас: Offline
aNNiMON, а как им вообще пользоваться? Ява установлена, а как запустить прогуард ума не приложу. Может батник есть готовый?
- 8.12.2015 / 21:00
HeWeD
  Пользователь

HeWeD 
Сейчас: Offline
lightro, http://proguard.sourceforge.net/manual/usage.html может тут есть? :girl:
- 8.12.2015 / 21:46
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
lightro, а как тебе удобнее? Можно к NetBeans прикрутить, можно из командной строки, можно при помощи гуишки - но там неудобно.

Создаёшь конфиг: config.pro. Куча примеров есть, как на сайте, так и в папке с proguard.
  1. -injars program.jar
  2. -outjars program_out.jar
  3. -libraryjars  D:/Program Files/Java/jre/lib/rt.jar
  4. # -libraryjars ещё какие-либо зависимости
  5.  
  6. -keep public class com.example.Main {
  7.     public static void main(java.lang.String[]);
  8. }
И запускаешь:
  1. java -jar proguard @config.pro

Вот пример конфига от Naik для JavaFX.
__________________
 let live

Изменено aNNiMON (8.12 / 21:46) (всего 1 раз)
- 11.12.2015 / 13:37
Alexandr
  Пользователь

Alexandr 
Сейчас: Offline
Прочитал что в JVM, boolean типа нет как такового, вместо него используется int! А это означает, что для хранения значения типа да\нет, используется ровно 32 бита.
Что лучше для логических операций, несколько boolean'ов или один интегер?
boolean jumpLeft, jumpUp, jumpRight; // несколько boolean'ов
int jump; // интегер, хранящий значения от 0 до 3
Или вобще лучше массив boolean'ов?
boolean[] jump = new boolean[3];
- 11.12.2015 / 14:03
Korvin
  Пользователь

Korvin 
Сейчас: Offline
Не обязательнл int занимает в памяти 32 бита . JVM во вреямя выполнения выделяет нужное кол-во памяти исходя из значения переменной .
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)