It’s not true that the eigenvalue \lambda must be an integer. What is true is that the “multiplicity” of the eigenvalue is a positive integer m. So the basis will consist of an eigenvector plus m-1 generalized eigenvectors. The elements of the basis form a chain of vectors u_1, u_2, \ldots, u_m that satisfy
Au_1=\lambda u_1 (meaning that u_1 is the eigenvector) (u_1 is stretched by \lambda)
Au_2=\lambda u_2 + u_1 (meaning u_2 is a generalized eigenvector) (u_2 is stretched by \lambda and sheared by u_1)
Au_3=\lambda u_3 + u_2 (meaning u_3 is a generalized eigenvector) (u_3 is stretched by \lambda and sheared by u_2)
…
Au_m=\lambda u_m + u_{m-1} (meaning u_m is a generalized eigenvector) (u_m is stretched by \lambda and sheared by u_{m-1})
When you use basis u_1, u_2, \ldots, u_m, the matrix A is the Jordan matrix J(m, \lambda). For example when m=4, the matrix J(4, \lambda) is
\begin{matrix} \lambda & 1 & 0 & 0 \\ 0 & \lambda & 1 & 0 \\ 0 & 0 & \lambda & 1 \\ 0 & 0 & 0 & \lambda \end{matrix}
with \lambda's along the diagonal, 1’s above the diagonal, and 0’s everywhere else.
You can also have blocks of Jordan matrices. For example, for n=4, you could have
J(\lambda,1)\oplus J(\lambda,1) \oplus J(\lambda,1) \oplus J(\lambda,1), which is \begin{matrix} \lambda & 0 & 0 & 0 \\ 0 & \lambda & 0 & 0 \\ 0 & 0 & \lambda & 0 \\ 0 & 0 & 0 & \lambda \end{matrix}
or J(\lambda,1)\oplus J(\lambda,3) , which is \begin{matrix} \lambda & 0 & 0 & 0 \\ 0 & \lambda & 1 & 0 \\ 0 & 0 & \lambda & 1 \\ 0 & 0 & 0 & \lambda \end{matrix}
or J(\lambda,2)\oplus J(\lambda,2) , which is \begin{matrix} \lambda & 1 & 0 & 0 \\ 0 & \lambda & 0 & 0 \\ 0 & 0 & \lambda & 1 \\ 0 & 0 & 0 & \lambda \end{matrix}
or J(\lambda,4) , which is \begin{matrix} \lambda & 1 & 0 & 0 \\ 0 & \lambda & 1 & 0 \\ 0 & 0 & \lambda & 1 \\ 0 & 0 & 0 & \lambda \end{matrix}
Again all this is for complex matrices. The story is a bit more complicated for real matrices.