Size: a a a

2020 August 08

i

ilya in learn.java
かたかわ
А если эта имплементация должна меняться периодично? Опять пойдёшь переписывать? А если проект гигантский и у тебя тупо на это ресурсов нет?
Ну если если если, а если нет нет и нет ?))) я за подход такой где можно умножить на 0,10 не стоит делить на 10 )
источник

DC

Denis Chikanov in learn.java
かたかわ
Что ты будешь делать, если тебе нужно будет в стринге найти число, которое следует после определённой последовательности символов? Хуячить ещё 10 строчек кода для парсинга?
Однако человек этого очевидно не делает...
источник

i

ilya in learn.java
Но ребят я в жаве нуб )
источник

かたかわ in learn.java
ilya
Ну если если если, а если нет нет и нет ?))) я за подход такой где можно умножить на 0,10 не стоит делить на 10 )
Это извечный холивар на тему неэфективных регексов, тошнит уже
источник

i

ilya in learn.java
かたかわ
Это извечный холивар на тему неэфективных регексов, тошнит уже
Я просто как пример без холиваров )
источник

かたかわ in learn.java
ilya
Я просто как пример без холиваров )
У нас был паренёк на работе на позиции тимлида, он ради одного регекса захерачил свой finite state machine
Он эфективно работал, я не спорю
источник

かたかわ in learn.java
Но каждый раз, когда я представляю лицо человека, который этот код потом поддерживать будет
источник

かたかわ in learn.java
Меня на хихи пробивает
источник

かたかわ in learn.java
Если через этот код не проходят миллионы данных в день, я предлагаю забить хер и не париться
источник

A

Anton in learn.java
かたかわ
У нас был паренёк на работе на позиции тимлида, он ради одного регекса захерачил свой finite state machine
Он эфективно работал, я не спорю
Конечно своя стейт машина максимально эффективна, но править такой код похлеще регулярок)
А регулярки в Java можно иногда спасти заменой реализации.
Есть либа dk.brics.automaton, она на базе конечных автоматов и решает ряд проблем встроенных регулярок. На каких-то кейсах на порядки быстрее и не настолько зависима от размера входных данных и регрессивных конструкций регулярки, как встроенная.
источник

かたかわ in learn.java
Anton
Конечно своя стейт машина максимально эффективна, но править такой код похлеще регулярок)
А регулярки в Java можно иногда спасти заменой реализации.
Есть либа dk.brics.automaton, она на базе конечных автоматов и решает ряд проблем встроенных регулярок. На каких-то кейсах на порядки быстрее и не настолько зависима от размера входных данных и регрессивных конструкций регулярки, как встроенная.
Звучит здорово
источник

A

Anton in learn.java
Для поиска числа в строке цикл наверное и есть та самая своя  стейтмашина?  Или чего-то еще хватает?
источник

かたかわ in learn.java
Anton
Для поиска числа в строке цикл наверное и есть та самая своя  стейтмашина?  Или чего-то еще хватает?
А при чём тут вышеприведённый кейс и стейт-машина?
источник

かたかわ in learn.java
ну, технически, этот луп -- это тоже примитивная стейт-машина 😐
источник

A

Anton in learn.java
かたかわ
А при чём тут вышеприведённый кейс и стейт-машина?
Просто одно дело вместо регулярки тупо цикл простой написать из трёх  строк и совсем другое, если стейт-машину для частного случая. Совсем другое качество абстракции в голове у новичка, даже если это всё тот же цикл )
источник
2020 August 09

A

Anton in learn.java
ek man
хай
а почему у массива есть свойство length, а у String метод, почему не свойство?
Строка использует массив символов внутри и можно было бы длину массива выставить свойством для чтения наружу. Я думаю, что этого не сделали по следующим причинам:

Во-первых это бы нарушило инкапсуляцию - невозможно было бы создать реализацию иммутабельной строки, доступной только для чтения. Т.к свойство length было бы доступно для записи в клиентском коде, использующем строку. При этом любая запись в свойство length, была бы неконтролируемой для внутренней логики String и приводила бы к расхождению с длинной внутреннего массива char[].
В самом массиве, который в Java считается объектом (и создается new), запись в поле length закрыта на уровне компиляции. Если данное решение распространять на более сложные объекты типа строки - компилятор сильно и бессмысленно усложнится.
Причина того, почему в самом массиве length сделана полем, а не методом, предполагаю, в производительности вызовов методов на тот момент или так было удобнее для программистов JVM.

Во-вторых JavaBeans Spec, с которой работает много библиотек, требует обернуть свойство в метод. На ту же JSP страничку или в мэпинге json свойство бина вытягивается по JavaBeans Spec. И String.length() - одно из таких свойств.
источник

НЗ

Николай Заонов... in learn.java
подскажите плз как правильно реализовать...
источник

НЗ

Николай Заонов... in learn.java
java web на томкате, мне нужно чтобы при запуске приложения создавался объект который будет содержать в себе мапу всех активных http сессий чтобы  жил до тех пор пока не перестанет работать томкат
источник

НЗ

Николай Заонов... in learn.java
почитал про session listener но моет есть более интересные решения?
источник

AA

Albert Abdullin in learn.java
Anton
Не туда смотрел. Не путай АПИ с докой Вот тут читай - Overview, Core и затянет
https://docs.spring.io/spring/docs/5.2.7.RELEASE/spring-framework-reference/
Благодарочка🤗
источник