Java techniques