my site map

Sunday, September 19, 2010

Задача головоломка 1

Когда учил вышку в универе часто ловил себя на мысли, что не хватает интересных задачек, тех что были в школе, решая которые приходилось думать головой, а не следовать шагам какого-то сложного алгоритма, в конце получив правильный ответ.

Так же сейчас не хватает интересных задачек по программированию, например как были по ассемблеру, когда учился у Олега Романовского.

Решил не пропускать интересные задачки и решать их в свободное время.

И так первая задача звучит так (услышал от Тумара Максима):
Дан массив размера N из целых чисел, принимающих значения от 1 до M, при этом одно
число в этом массиве повторяется два раза. Найти это число за время O(N).

Решение ниже.

Wednesday, June 23, 2010

Java аномальное поведение, при получении ClassLoader`а


Работая над одним проектом, наткнулся на интересное поведение ObjectInputStream jvm от Sun/Oracle.
Надеюсь все знают что в джава классы загружаются при помощи ClassLoader`а, специального класса такого. При запуске приложения и, соответственно, потока к нему (потоку) прикрепляется его ClassLoader, который можно получить/изменить при помощи Thread.currentThread().set/getContextClassLoader. Если хотите можно конечно использовать свой ClassLoader либо напрямую вызывая loadClass, далее получая объект загруженного класса и вызывая его методы либо Thread.currentThread().setContextClassLoader(myClassLoader).
Это вроде как работает, но оказывается есть ситуации когда нельзя понять какой ClassLoader будет использоваться.