Other than coding, One of the crucial necessary talent of a programmer is debugging or troubleshooting. I’ve usually discovered that good programmers are additionally good drawback solver, troubleshooter and debugger. Any drawback come up in manufacturing or growth setting, programmer can look it rapidly, discover the foundation trigger and has resolution prepared to reduce the influence.
That is why I suggested all interviewers to pay extra consideration to the debugging abilities of Java programmers throughout interviews. A superb debugging talent reveals many issues, it reveals reasoning talent of candidate i.e. if one factor isn’t working the place to look, what may very well be incorrect, it additionally reveals general data and expertise.
Just like coding, You simply cannot pretend debugging talent. You be taught it the onerous means by doing and understanding what you might be doing. With the intention to be troubleshooter, you also needs to have sound data of OS, networking, programming fundamentals, Java, JVM and different merchandise, instruments, instructions and setting your course of is working.
Now, query is how do you check the debugging talent of Java programmers throughout interviews? Nicely, the normal means is to ask questions and analyze his solutions and cross query, as a result of that is the way you troubleshoot or debug issues. On this articles, I’m going to share some frequent debugging questions associated to core Java and Java Net functions working on Linux.
17 Java Debugging Interview Questions with Solutions for Rookies and Skilled Programmers
Right here is my listing of Java interview questions to check the debugging talent of any Java programmer or developer. The listing not solely deal with Java centric questions like take heap dump and thread dump of Java utility for debugging and troubleshooting but additionally options common drawback fixing questions which can be utilized to check debugging talent of any programmer like what’s going to you do if instantly your utility turn out to be gradual in manufacturing? what you’ll verify and the place you’ll verify and so on?
So what are we ready for let’s begin:
1) Suppose your program is a core Java utility e.g. a FIX engine, which listens on a port, how have you learnt that your program is working or not?
Reply : Assuming your Java utility is working on Linux or Home windows, you should use the telnet command to verify if its up or not. for those who hook up with the applying by way of given host and port than its up, in any other case its down.
2) How do you get the IP handle of host from DNS identify e.g. myJavaApplication.asia.com?
You may merely ping to that area identify or you should use the nslookup command to seek out the IP handle related to that area identify.
3) How do you discover all of the ports on which your Java utility is working?
You need to use netstat -nap command and grep with the PID of Java utility. It is going to listing all of the connections, from there you may see on which port it’s listening.
4) How do you’re taking the thread dump of Java course of?
In case your Java utility is working on UNIX than you should use kill -3 to take the thread dump. By the way in which, if you’re utilizing instruments like Visible VM or IBM Thread Dump Analyzer for Java then you may also use them to take thread dump of any JVM.
5) How do you ship the HTTP request from UNIX?
You need to use curl or wget command to ship the HTTP request from Linux.
6) How do you discover the command line arguments of your Java course of?
You may verify the config if you understand for certain in any other case do a ps -ef | grep “identifier” to see the command line arguments of your Java utility.
7) How do you discover all of the recordsdata associates along with your Java course of?
You need to use the lsof command to listing all of the recordsdata at present opened or related by your Java course of.
8) Suppose your Java utility is hosted on tomcat and its not responding to requests how do you troubleshoot?
First verify whether or not tomcat is up or not, than verify whether or not your utility is loaded efficiently or not. You may verify your utility log file and catalina.out log recordsdata. Than verify whether or not your request is reaching to server or not, if not then one thing is incorrect along with your request e.g. typo on host or port, additionally it may very well be drawback with firewall and community connection out of your shopper machine to server machine. In case your request is reaching to server then verify the place its getting caught e.g. does it set off a database hit and your request is getting caught there, or it triggers a file load. Step by Step tracing is the way in which to go.
9) What’s distant debugging in Eclipse or IntelliJIDEA?
distant debugging means that you can hook up with the Java program working on a distant host. In case your JVM is began in debug mode than you may hook up with it from Eclipse or IntelliJ Concept to distant debug it. Someday that is the one solution to debug a legacy utility which is troublesome to setup in your Home windows machine or have dependency on native libraries which isn’t accessible for Home windows.
10) How do you discover CPU and reminiscence utilized by your Java utility?
You need to use instructions like high, free in Linux to seek out CPU and reminiscence profile of Java utility. You can even use prstat command in Solaris to get the identical.
11) What’s distinction between ClassNotFoundException and NoClassDefFoundError?
Each the issues are related to lacking JAR recordsdata on classpath however ClassNotFoundException recommend that class is loaded dynamically e.g. by passing String identify e.g. JDBC driver which you load by calling Class.forName() methodology, whereas NoClassDefFoundError recommend that class is statically linked to a different class, was current at compile time however no longer accessible at runtime. It normally comes when a selected class was not loaded on account of error in static initializer block.
12) How do you’re taking heap dump throughout OutOfMemoryError of Java utility?
By specifying JVM possibility -XX:HeapDumpOnJavaOutOfMemoryError. You may later use instruments like Java Visible VM or Eclipse Reminiscence Analyzer to investigate heap dumps
13) Your Java utility hundreds information from database however is instantly getting caught whereas beginning up? how do you discover the foundation trigger and resolve?
You may first verify the log file to see at which step your utility is getting caught. If utility hundreds lot of information from database throughout startup and its getting caught there than verify if database is on the market or not. Typically if database isn’t accessible than you will note JDBC errors in log file, if you’re not seeing them it means you’ll be able to hook up with database however your question is blocked at DB finish. Test your DB for blocked SQL queries or ask DBAs.
14) How do you discover which object is taking many of the reminiscence allotted to your Java utility?
Take a heap dump and analyze it utilizing hprof device.
15) What’s breakpoint? How do you see the variable’s worth at breakpoint?
While you debug your Java utility in IDE’s like NetBeans, Eclipse and IntelliJ, you may setup breakpoints on any line of code. As soon as your utility that line of code it can cease, from there you may management the execution by execution one step at a time utilizing Step Into, Step Over and Step Return choices. You may both use Inspet or watch to see the values of variables.
16) How do you discover out if there’s a reminiscence leak in your Java utility?
Should you see the reminiscence repeatedly rising in your Java utility even after rubbish assortment than there’s good likelihood that your utility is protecting objects which isn’t wanted, therefore inflicting reminiscence leak. You may take heap dump or profile your utility get additional info e.g. which objects are usually not feeing up reminiscence. ThreadLocal variable usually trigger reminiscence leak in Java utility.
17) How do you profile your utility?
You may profile your utility by utilizing a profiler e.g. NetBeans profiles which comes with NetBeans IDE. There are additionally some business profilers like YourKit and JProbe, which you should use to profile your Java utility.
That is all about 17 Java debugging and troubleshooting interview questions for inexperienced persons and skilled programmers. You need to use these questions to check the debugging talent or a Java programmer who has to assist a Java utility working on Linux machine. You may effective tune questions to incorporate extra questions from JVM, Rubbish assortment, networking and your present utility structure.
- 10 Java Synchronization and Locking Interview questions (locking questions)
- Prime 5 Programs to be taught Multithreading and Concurrency in Java (programs)
- 25 DevOps Interview Questions with Solutions (devops questions)
- Prime 12 Java Concurrency Questions for Skilled Programmers (see right here)
- Prime 10 Programs to be taught Java in-depth (programs)
- Prime 15 Multithreading and Concurrency Questions from Funding banks (see right here)
- How unstable variable works in Java? (reply)
- Prime 5 Books to be taught Java Concurrency in-depth (books)
- Prime 10 Java Concurrency and multi-threading greatest practices (article)
- Distinction between begin() and run() methodology in Java? (reply)
- Prime 5 programs to Be taught Java Efficiency Tuning (programs)
- 10 Programs to Crack Java Interviews for Rookies (programs)
- What’s happens-before in Java Concurrency? (reply)
- 6 Books to be taught Multithreading and Concurrency in Java (books)
- 10 Superior Core Java Programs for Skilled programmers (course)
Thanks for studying this text. Should you like this submit then please share
it with your mates and colleagues. When you’ve got any recommendations or
suggestions then please drop a remark. Btw, for those who suppose that Java
Concurrency in Observe isn’t related within the period of Java 8, then
please learn this article earlier than making your judgment.