||This thesis investigates the pointer alias information in Java programs. The basic idea is to get the pointer alias information by generating and analyzing the trace of one-time-run of the target programs. A trace tracks the complete information of one-time-run of the target program with certain input. After analyzing a particular trace, we are sure to discover the portion of the pointer alias pairs related to that run. After collecting traces of different runs of the target programs with various inputs, we perform the analysis on the reference variables with the same type, which are equivalent to pointers. With different inputs, we can get different traces of the program approximating the complete behavior of the program. Our approach is different from the previous research in that it is a hybrid of static and dynamic analysis. We obtain the execution trace by running the program, and then we statically analyze the trace to discover the pointer alias information. To the best of our knowledge, this is the first to analyze the pointer alias information in Java programs by traces of unrolled program statements. The contribution of our work is that we systematically implement the algorithm to calculate and collect the dynamic points-to set information, which turns out to be useful for debugging and program slicing. We believe that with the development of computer hardware and the application of software testing techniques, our method shall be useful because of its preciseness.