Is it necessary to apply some window method, to obtain the FFT? Java
As you can see; When a sinusoidal signal of arbitrary frequency is input to the ‘N’ point DFT, the spectral response of the signal will not be a Delta function (impulse) because when we take into account of the missing end point to be the same as the beginning of the next period of the periodic extension of the sequence, the periodic extension of the signal is no more a sinusoid. One way to solve this problem is to ensure Coherent Sampling as shown in figure 1

But coherent sampling can be done only if the DFT engine receives pure monotone signals. So in a real world application, Coherent sampling is not feasible.

SO, just diminish the magnitude of the discontinuities by multiplying the whole signal with some function.

So, when you multiply by window function, it eliminates the jump discontinuities and removes the false frequency that is introduced when coherent sampling is not done (see Figure 3.



The length of the window should be the length of your signal.
Selection of your window could be depending on how much side-lobe height do you tolerate.



Image Source: http://electronicdesign.com/analog/choose-right-fft-window-function-when-evaluating-precision-adcs