Static Analysis of aliases is needed for High-Performance Computing in Java. However, existing alias analyses regarding * operator for C/C++ have dificulties in applying to Java and are even imprecise and unsafe. In this paper, we propose an alias analysis in Java that is more eficient, at least equivalent, and precise than previous analyses in C++. In the beginning, the differences between C/C++ and Java are explained and a reference-set alias representation is proposed. Second, we present flow-sensitive intraprocedural and context-insensitive interprocedural rules for the reference-set alias representation. Third, for the type determination, we build the type table with reference variables and all possible types of the reference variables. Fourth, a static alias analysis algorithm is proposed with a popular iterative loop method with a structural traverse of a CFG. Fifth, we show that our reference-set representation has better performance for the alias analysis algorithm than the existing object-pair representation. Finally, we analyze the experimental results.