3.12.2015 / 14:51 | |
Oak Пользователь Сейчас: Offline
Имя: Коля Откуда: Москва Регистрация: 02.06.2010
| 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 Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Доброй ночи Хочу достать id записи в рмс. Набросал такой метод, но он даже нормально не компилится Открыть спойлер Закрыть спойлер public int getId(String name) {
int id;
String[] names = RecordStore.listRecordStores();
for (int i = 0; i < names.length; i ++) {
if (names[i] == name) id = i + 1;
else if (i == names.length) id = 0;
}
return id;
}
Помогите, это вылечить и сделать все правельно. |
6.12.2015 / 03:34 | |
Oak Пользователь Сейчас: Offline
Имя: Коля Откуда: Москва Регистрация: 02.06.2010
| Alexandr, строчка 2 int id = -1;
Локальные переменные никаким значением по умолчанию не инициализируются, а в твоем коде, возможно, что ей никакое значение не присвоится, но никакое значение вернуть нельзя. Поэтому локальной переменной при инициализации необходимо самостоятельно присвоить значение.
__________________
Эль Презеденте |
8.12.2015 / 15:20 | |
lightro Пользователь Сейчас: Offline
Имя: Лайтро Василевски Регистрация: 13.09.2014
| Можно ли прогуарду скормить готовый jar? Если да, как?
|
8.12.2015 / 16:15 | |
aNNiMON Супервизор Сейчас: Online
Имя: Витёк Регистрация: 11.01.2010
| lightro, можно. Он умеет и jar, и zip, и папки с классами, даже apk. Параметр -injars __________________
let live Изменено aNNiMON (8.12 / 16:17) (всего 1 раз) |
8.12.2015 / 20:55 | |
lightro Пользователь Сейчас: Offline
Имя: Лайтро Василевски Регистрация: 13.09.2014
| aNNiMON, а как им вообще пользоваться? Ява установлена, а как запустить прогуард ума не приложу. Может батник есть готовый?
|
8.12.2015 / 21:00 | |
HeWeD Пользователь Сейчас: Offline
Регистрация: 11.10.2015
| |
8.12.2015 / 21:46 | |
aNNiMON Супервизор Сейчас: Online
Имя: Витёк Регистрация: 11.01.2010
| lightro, а как тебе удобнее? Можно к NetBeans прикрутить, можно из командной строки, можно при помощи гуишки - но там неудобно. Создаёшь конфиг: config.pro. Куча примеров есть, как на сайте, так и в папке с proguard. -injars program.jar
-outjars program_out.jar
-libraryjars D:/Program Files/Java/jre/lib/rt.jar
# -libraryjars ещё какие-либо зависимости
-keep public class com.example.Main {
public static void main(java.lang.String[]);
}
И запускаешь: java -jar proguard @config.pro
Вот пример конфига от Naik для JavaFX. __________________
let live Изменено aNNiMON (8.12 / 21:46) (всего 1 раз) |
11.12.2015 / 13:37 | |
Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Прочитал что в 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 Пользователь Сейчас: Offline
Имя: Макс Откуда: Белгород Регистрация: 06.04.2011
| Не обязательнл int занимает в памяти 32 бита . JVM во вреямя выполнения выделяет нужное кол-во памяти исходя из значения переменной .
|