Java版实现