Something to add here......UML is a type of diagram notations that can be used to represent the Software development process such as Rational Unified Process or Extreme Programming. On the other hand, OO is a concept that is used in OO programming languages like Java. Hence, I would say that UML is not a pre-requisite of Java, but knowing OO concepts can certainly make more sense for one....when he/she is learning UML. Simply, because OO concepts can be well represented by the UML notations.....
