Presentation on theme: "Advanced Java Concepts Dr. Jeyakesavan Veerasamy"— Presentation transcript:
Advanced Java Concepts Dr. Jeyakesavan Veerasamy
Dr. V. Jeyakesavan: Academia, Industry & Personal Dad was a school teacher B.E. (ECE) in CEG Guindy, Anna University – UNIX System Software Engineer, HCL Limited, Chennai, MS Computer Science, University of Texas at Dallas (UTD),
Dr. V. Jeyakesavan: Academia, Industry & Personal … Telecom Software Engineer, Northern Telecom, Dallas, Ph.D. Computer Science (part-time), University of Texas at Dallas (UTD), Technical Lead, Samsung Telecom, Got married in 1998 Adjunct Faculty, UTD CS department, Online Adjunct Faculty in several online universities from 2000
Dr. V. Jeyakesavan: Academia, Industry & Personal … Adjunct Faculty, Southern Methodist University, 2010 Sr. Lecturer (full-time), UTD Computer Science, 2010-present 2 daughters: Nila (8) and Chinmayee (4) Passionate about teaching – happy to share ideas to improve teaching quality in colleges
Dr. V. Jeyakesavan: Summary 18 years experience as Software Engineer 12 years of teaching experience
Get started… Introduction Classes & Objects Garbage collection & other differences compared to C++ Inheritance
Logistics & Goals Interactive & enjoyable Classroom Call me as Jey – no formalities - Treat me like a friend & co-worker! Show & play with hands-on examples Enhance your Java skills and knowledge I do not know everything, but I do have resources to get answers Questions?
Advanced Topics TopicDescription Standard Template Library (STL)Complex Data Structures ExceptionsUnique mechanism to pass the control around & help in debugging RecursionCore CS concept – less about Java Applets, GUI based gamesEvent based programming Multi-threadingParallelization and Synchronization Design PatternsAdvanced Software Design concepts JUnit testingUnique testing ideas for Java programs JDBC connectivityDatabase connectivity GreenfootEnjoyable IDE to learn advanced Java RMI, Enterprise Java, JavaBeans, Java ServLets, Java Packages
C++ vs. Java: differences C++Java Write once, compile everywhere unique executable for each target Write once, run anywhere same class files will run above all target-specific JREs. No strict relationship between class names and filenames. Typically, a header file and implementation file are used for each class. Strict relationship is enforced, e.g. source code for class PayRoll has to be in PayRoll.java I/O statements use cin and cout, e.g. cin >> x; cout << y; I/O input mechanism is bit more complex, since default mechanism reads one byte at a time (System.in). Output is easy, e.g. System.out.println(x); Pointers, References, and pass by value are supported. No array bound checking. Primitive data types always passed by value. Objects are passed by reference. Array bounds are always checked. Explicit memory management. Supports destructors. Automatic Garbage Collection. Supports operator overloading.Specifically operator overloading was left out.