11 Top full-stack developer interview questions

A full-stack developer is someone with knowledge of all aspects of building an application, i.e., both the front-end and back-end parts of development. As a one-man army, any full-stack developer has to write front-end code in HTML, CSS, Javascript, create APIs, create backend code in languages like PHP, Java, Python, Java, and Ruby and also work on hardware and OS. Further, understanding the design and query databases is an important part of their job.

Here is the list of 11 top full stack developer interview questions that will help you land a job.

1. What is MEAN Stack?

The MEAN stack is a JavaScript-based framework for developing web applications. The stack is named after four technologies that make up the layers of the stack:
MongoDB as the database
Express.js is the web framework
AngularJS as the frontend framework
Node.js as the server platform

2. What is the difference between a directive and a component?

Directives are added to an existing component, while components have their own view i.e., HTML and Styles.
There can only be one component in one element, while one element can have multiple directives.

3. What is the main difference between REST and GraphQL? 

GraphQL is an application layer server-side technology while REST is a software architectural style. While the former is used for executing queries with existing data, REST defines a set of constraints for creating Web services.

4. Explain the difference between “resetting” and “normalizing” CSS?

  • Resetting CSS removes all the built-in browser styling. Also, there are no bug fixes in resetting.
  • Normalizing CSS makes integrated browser styling in the code consistent across all browsers. It also includes bug fixes.

5. What is the difference between Nodejs, AJAX, And JQuery?

  • Nodejs allows an application to run JavaScript without a browser.
  • AJAX is a way for JavaScript to run a function or request data from a server without blocking an application or refreshing a page.
  • JQuery is a JS library that was built to automate common JavaScript tasks like AJAX and simplify the language. 

6. What is Two-phase Commit (2PC) in the database? 

Two-phase Commit (2PC) is an atomic process that ensures that in a transaction processing system either all the databases are updated or none of them is updated. This feature enables databases to return to their pre-transaction state if an error condition occurs. Simply put, Two-phase Commit (2PC) keeps databases synchronized.

7. How can you categorize databases? 

As a full-stack developer, you need to be familiar with two or more databases.
As a document-type database, MongoDB is the most widely used for internet products. While for performance improvement, memory databases such as Redis can be used. If you are developing large-scale projects, MySQL or commercial Oracle as the back-end database is recommended.

 8. What will be the output of the following code?

var x = { foo : 1};
var output = (function() {
delete x.foo;
return x.foo;
})();
console.log(output);


The result of the above code will be the output.
output. delete operator is used to delete a property from an object. In this example, x is the object with foo as a property. We are deleting foo property from a self-invoking function and in the next call (return x.foo;) trying to reference the deleted property “foo”, this will result undefined.

9. What’s an Event Loop?

Event loop is a function that allows Node.js to perform non-blocking I/O operations even when JavaScript is single-threaded. It achieves so by offloading operations to the system kernel whenever possible.

10. How can you prevent a bot from scraping a publicly accessible API?

It is not entirely possible to prevent data scraping if the data within the API is publicly accessible. However, some measures can be taken to deter most bots.
Rate-limiting or throttling is one such measure that can prevent a specific device from making too many requests within a defined time. When the specified number of requests is reached, it will throw a ‘429 Too Many Attempts HTTP error’.
Other possible solutions can be blocking requests based on the user agent string or generating temporary “session” access tokens at the front end.

11. How rolling deployment differs from blue-green deployment?

A rolling development involves replacing an application version gradually with a newer version. In this process, system upgrade takes a while and both old and new versions will coexist without affecting user experience or functionality.
In blue-green deployment, there exist two identical production environments in parallel. The blue environment is the one that receives all the user traffic running the production environment while the green environment is the one that you will upgrade. Both these environments share the same app configurations, database, and backend. When the upgrade is done, you swap the environments, redirecting traffic from the blue to the green environment.

These questions provide an overview of what questions you can expect during an intermediate full-stack developer position interview. You are not expected to know it all, but awareness of all aspects of application development is mandatory. 

Join Talent500’s global network of developers and position yourself for success by being in reach of recruiters from Fortune500 companies. Sign up today!

How AI is changing DevOps

While humans are capable of many unthinkable and often impossible feats, there are limitations. One particular area is in data handling, its management, analysis, and interpretation. With the sheer magnitude of incoming raw data, thanks to rapid digitalization, adoption of automation, and several other such factors, relying on human resources alone is inefficient. In a field like DevOps, where high efficiency, accuracy, and speed are all underpinning elements, it seems only natural that artificial intelligence models and technology are a perfect fit. 

In fact, DevOps is now a critical piece of the enterprise IT environment, and both AI and ML are readily adopted to increase efficiency. Around 75% use AI and ML for testing and in some cases, this has caused an uptick in new code released by nearly 10X! Considering the nature of the job, it would be near-impossible to do it without the use of advanced technologies. Moreover, AI improves several key DevOps practices and allows teams to leverage their potential to the maximum. It reduces waste by handling large computing scenarios that would otherwise overwhelm human-led operation cycles.

However, recently AI’s application in the DevOps space has brought about rapid change. Several new advancements are afoot, and you should know about them to stay ahead. Read on to know how AI is transforming DevOps.

Improved security and tracking capabilities

A key prowess of AI and ML models is their ability to analyze volumes of data and do it at remarkable speeds with accuracy. As such, its application in tracking and security is undeniable. In a DevOps setting, this advantage comes in handy when analyzing threats and usage data for better optimizations. Since models can be designed to inspect and track user data at every touchpoint, DevOps teams can leverage to deliver a better user experience simply based on data collected by modules doing the heaviest lifting. 

On to security, improved tracking capabilities can pinpoint areas in systems that are most vulnerable to breaches. AI better defense against DDOS attacks and can even lend a hand in fraud detection. Since AI models can be designed to spot unusual data patterns and can do this in real-time, tracking and stopping fraudulent acts is a lot more reliable.

Increased reliance on automation 

DevOps inherently includes complex systems, run on distributed application environments and operational models. Keeping up and effectively absorbing information isn’t a simple undertaking, especially if it is completely manual. While DevOps does bring some level of automation to the table, AI betters it in every way. With AI, DevOps professionals can leverage the full power of automation to streamline tedious tasks in the operational cycle that were otherwise error-prone due to human involvement.

In fact, this reliance on AI-backed automation has gone so far as to institute systems that can self-heal without requiring external intervention. Essentially, AI can not only jump into the driver’s seat but can get the team there too! However, stubborn DevOps teams are resilient to this level of independent function, but it is only a matter of time until it becomes standard practice.  

Swifter, more reliable pattern and anomaly detection

Complex application systems bring with them another problem area — error tracking and analysis. For instance, in an IoT environment with several microservices in use along with its numerous touchpoints, pinpointing failures with accuracy and speed simply isn’t possible. There are troves of raw data to go through and AI models can easily handle these without nearly as much effort. ML and AI models can be designed to look for abnormalities that trigger failure events and even suggest optimizations. 

Naturally, when exposed to such analysis over time, these models can be trained to recognize patterns and employ predictive analysis. This lends itself to anomaly detection, which can be vital to DevOps cycles as teams can then address these directly in the development pipeline and ensure they make it out to the live version. 

Better and refined access to data

An ever-present challenge to DevOps is the lack of access to complex data streams. With data gushing through every stream and data point in the system, professionals often struggle to keep up. AI models can address such a problem and deliver refined data from various sources and collate them for easy access. In fact, data trapped in siloed operations can also be harnessed to ensure that insight are meaningful.

Enhanced resource management

Certain AI tools lend themselves to non-technical business users, normally in charge of operations. With AI, data mapping and integration can be simplified, and this frees up the IT department for more high-value tasks. In fact, with better data integration, teams are in a better position to innovate, customize, optimize, and grow as the mundane and uninspiring tasks are no longer taking away time and effort. While it may seem like it could result in reduced collaboration, this isn’t the case. Unburdened by technical challenges, the focus is shifted to more big-picture undertakings, which often involve teams across departments to collaborate.

The integration of AI into DevOps is the natural cycle of advancement within the field of software development. There was a time when the traditional development life cycle distinguished development from operations, but in just a few years, it evolved into what we now know as DevOps. Similarly, a new acronym, AIOps, is taking hold and in this new model, the ‘Developer’ is no longer part of the equation. Is this the future of AI? It may still be too soon to tell, but developers would do well to upskill and branch out into other fields that work in line with this technology.

Those with skills that can leverage AI and drive development are sure to find themselves amongst the changemakers in the industry.

If you fit the bill and are looking to work at the bleeding edge of technology at some of the best Fortune 500 companies in the world, sign up on Talent500. The platform can help you take the next crucial step in your career and lay the foundation for your dream career amongst the best of the best.

Top 13 programmers and developers to follow on Twitter

Every second, there are around 6,000 tweets going live on Twitter, making it one of the many hotspots on the internet. While social media is a great tool to connect with friends and acquaintances and share experiences, it can be quite a useful tool to educate yourself too. Twitter is an excellent platform to find information, but one of its main benefits is networking. As a programmer or software developer, you can connect with various industry-based experts and gurus via this micro-blogging site. 

Whether you’re an aspiring developer, a seasoned programmer, or someone looking to branch out into coding, there’s a world of opportunity here. With the right information, you can hone your skills and follow in the footsteps of industry leaders and trailblazers. If coding, programming, software development, and modern technology excite you, consider following these 13 programming and software development experts on Twitter.

Jason Fried – 289.7K followers 

https://twitter.com/jasonfried

Jason is the co-author of the book ‘Rework’, a New York Times bestseller. He has also co-founded 37signals, a web application company that builds tools like Basecamp, Highrise, Backpack, Ta-da List, and Writeboard. He is currently the founder and CEO of Basecamp, the makers of HEY. He identifies himself as a non-serial entrepreneur and a serial author having given a Ted talk on his revolutionary ‘rework’ ideas. Apart from valuable blogs, his tweets contain practical advice for developers.

Jeff Atwood – 281.5K followers 

https://twitter.com/codinghorror

Jeff Atwood is an American software developer and co-founder of Discourse, Stack Exchange, and Stack Overflow, an online community for developers to grow. He is also an author, blogger, and entrepreneur. He writes for his popular blog, Coding Horror, where he discusses software programs and their users. His coding anecdotes are insightful, interesting, and quirky, offering a unique perspective of this cutting-edge profession.

Scott Hanselman – 268.1K followers

 https://twitter.com/shanselman

Scott Hanselman is a programmer, teacher, and speaker with experience of over two decades in coding. He is an expert in coding, writing, speaking, promoting, braiding, learning, and listening. He’s maintained a blog for over 10 years and continues to spread coding and OSS knowledge. The blog is a treasure chest of information for both novice and expert developers. He works at the Web Platform Team at Microsoft and has been podcasting for the last 5 years. The open web is what interests him the most among his list of other pursuits including community, social equity, media, and entrepreneurship.

Addy Osmani – 264.3K followers

 https://twitter.com/addyosmani

An engineering manager at Google Chrome, Addy Osmani works as a leader of the Speed team with an aim to make the web faster. He has created various open-source projects including TodoMVC, Yeoman, and Material Design Lite. He has also authored the book ‘JavaScript Design Patterns’. He shares helpful tips on JavaScript and web development and provides great solutions for improving page speed and web performance. 

John Resig – 259.3K followers 

https://twitter.com/jeresig

A JavaScript expert, John Resig is the creator of the JavaScript Evangelist for Mozilla, the JQuery JavaScript framework, and the jQuery JavaScript library. He currently works as a Chief Software Architect at Khan Academy and co-authored the book ‘The GraphQL guide’. With over 125 informative talks under his belt since 2006 and an impressive number of followers, he is definitely worth following, especially if you are a budding JavaScript developer. He shares tips and links to resources that can make a big difference in your approach.

Joel Spolsky – 176.9K followers

 https://twitter.com/spolsky

Joel Spolsky is currently the CEO and founder of Stack Overflow. He also founded Fog Creek, Trello, Glitch, and HASH. He is the mind behind some of the favorite tools of the developer community. He has been associated with projects including Microsoft Excel, Visual Basic, and Fog Creek Software. Besides authoring ‘Joel on Software’, he shares interesting blogs and links for developers and programmers.

Amanda Rousseau – 159.6K followers 

https://twitter.com/malwareunicorn

Amanda Rousseau runs a Twitter account with the name ‘Malware Unicorn’. She is an Offensive Security Professional at the Facebook Red team. She has worked as a Senior Malware Engineer at Endgame, Inc. and has been a speaker at some of the biggest cyber security conferences around the world. Security, malware, reverse engineering, and fashion are the fields that interest her. Her Twitter handle is the account to follow if you’re looking to learn about the growing field of cyber security and reverse engineering tools.

Brendan Eich – 152.3K followers

 https://twitter.com/BrendanEich

Brendan Eich is the creator of the famous JavaScript language. He is presently the co-founder and CEO of Brave Software and Basic Attention Token. Besides this, he is the co-founder of Mozilla and Firefox. His experience and contributions to the tech world are reason enough to follow him. There’s a lot to learn from legends like Brendan, so make sure you don’t miss out!  

Rasmus Lerdorf – 55.4K followers

 https://twitter.com/rasmus

Well-known as the creator of the PHP coding language, Rasmus Lerdorf has affiliations with the eCommerce company, Etsy. He has previously worked at Yahoo! for seven years as an infrastructure architect and contributed to many open-source projects. His tweets are motivating for budding developers, and link back to ground-breaking technology that can easily put you ahead of the rest. 

Sara Ownbey Chipps – 49.5K followers

 https://twitter.com/SaraJChipps

Sara Ownbey Chipps is a co-founder of ‘Girl Develop It’, a non-profit organization aimed at encouraging and helping women become software developers. She co-founded and was the CEO of Jewelbots, which focuses on and uses hardware to surge the number of girls opting for STEM fields. Having been in the software and open-source community for two decades, she worked as an engineering manager at Stack Overflow, a leading Q&A resource for software developers around the world. A New York-based developer, she now works with LinkedIn and is a role model for women programmers and all those looking to make a difference in the world.

Chris DiBona – 40.2K followers

 https://twitter.com/cdibona

Chris DiBona is the director of Open Source and Science Outreach at Google. He also contributed to the game ‘Fractured Veil’. Prior to his stint at Google, he was a writer/editor at Slashdot and had co-founded Damage Studios. He specializes in many fields including open source and related methodologies, C++, Python, game development, marketing, and public relations. 

Bryan O’Sullivan – 11.7K followers

 https://twitter.com/bos31337

Bryan O’Sullivan is the engineering director leading the Developer Infrastructure team at Facebook. He builds teams by promoting collaboration, team spirit, setting bold goals, and executing them to build responsive and delightful products. He also lectures at Stanford University and has authored a book ‘Real World Haskell’ besides co-authoring in ‘Mercurial: The Definitive Guide’ and ‘The Jini Specification.’ 

Jennifer Dewalt – 10.9k followers 

https://twitter.com/jenniferdewalt

Jennifer Dewalt is the techie who built 180 websites in 180 days – a feat of pure skill and intelligence that very few are equipped to do! She has immense knowledge in coding and is an inspiring personality for any coder. She founded multiple startups including ‘Zube’, a project management platform for agile development teams. 

There is no dearth of influential and innovative tech-wizards on Twitter, but these 13 should inspire you to think big. Many of them started small and are now impacting real-world change. Following these frontrunners and learning from them is a proactive approach to growth, which is a necessity to stay ahead of the competition. Another way to give yourself an edge is to achieve your potential with Talent500

Our skill assessment algorithms align your profile with the right job opportunities at Fortune500 companies across the globe. With our assistance, you can work with the best in the world, contribute to innovation, and maybe someday, even feature on a list like this one! To get #twostepsahead and take control of your career, sign up today.

Is SvelteJS the next big framework in web development?

For end-users, Svelte equals speed. For coders, Svelte is radical, lighter, more performant, plain vanilla, yet truly remarkable! Though today, not many go agog over a new JavaScript UI framework, Svelte, the disappearing, disruptive framework gives you the tools to build apps in a component-driven and declarative way. It is now gaining popularity for being extremely lightweight and fast. Early reactions to Svelte described the experience as “playing with the best Legos in the world”. The open-source framework, in fact, enjoys a satisfaction ratio of 88%, evenly sandwiched between React’s 89% and Vue’s 87%, according to The State of JavaScript 2019

Here’s why the features Svelte offers is a gamechanger in the JavaScript universe.

Rethinking the future of JS frameworks

The presentation by Richard Harris, Svelte’s creator, at the JSConf 2018, titled Computer, build me an app, exhibited some pretty novel philosophy. From ‘frameworks aren’t tools for organizing your code, they are tools for organizing your mind’ to ‘virtual DOM is pure overhead’ and ‘React is not reactive’, Harris was pointing the JS community to what lies beyond the likes of ReactJS.

Virtual DOM, for instance, involves rendering and reconciliation steps, and if the browser could get rid of those, you’d have a programming model that would be leaner and faster –  rather svelte! Svelte’s genius is that it is a compiler, not an ordinary framework running in the browser. It takes your components, compiles them into JS modules during the build process, and rather than bank on virtual DOM diffing, or similar techniques, it ‘surgically updates the DOM’ when your app’s state changes. With the advent of the Svelte v3, one gets a glimpse of the future of JS frameworks: Svelte is a language that ‘extends JavaScript by making reactivity a language primitive’.

Less code, less boilerplate, smaller bundles, more speed, better performance

When Jesse Skinner, a freelance web developer, decided to give Svelte a shot, he was blown away by its simplicity. Moreover, the Tic Tac Toe game he developed, including runtime, was all of 2.4kb. But, there’s no sorcery here. Svelte is a compiler and reduces your script to the bare minimum with very little boilerplate – <script> and <style> tags. 

With Svelte you’re writing fewer lines of code, and therefore, less buggy programs, with a React component, typically being 40 % larger than its Svelte equivalent. While on the topic of size, it’s worth noting that smaller codebases make frameworks more performant and while React weighs about 121kb, a basic Svelte app is minuscule, just 2.95kb, as per analysis by Areknawao. Even so, when you pit React’s implementation of TodoMVC against Svelte’s, you’re looking at zipped sizes of 45kb vs 3.6kb. 

If you’re a web developer then this is probably music to your ears; with the average web page being 2MB in size, Svelte has the potential to clear out a lot of unnecessary heft. Shawn Wang, a web developer downsized his website from 187kb to 9kb by moving from React to Svelte, reports WIRED; and Wang compares this to traveling through a space elevator instead of rocket ships padded with massive fuel tanks. To conclude, lightweight code means that downloads are faster and there’s less to parse through. So, if you’re looking for faster and smaller web apps, Svelte could be your answer.

Beginner-friendly, with simple syntax

As opposed to mainstream JS frameworks like Angular or even React, Svelte has a small learning curve. In fact, developers feel that one hardly needs to read the documentation to get started –  everything feels so natural. The magic of course is in Svelte’s simplicity. It works with the grain and you’re good to go with plain JavaScript, CSS, and HTML (with some syntax additions).

Its reactivity is simple to use and with built-in CSS scoping, you don’t have any odd CSS-in-JS syntax issues to grapple with. The Co-Founder and CEO at Softermii, Slava Vaniukov acknowledges that “you’re not forced to manipulate the DOM [and] you don’t have to grasp framework-specific state wrappers, either… With Svelte, developers can learn the basic principles of a component state without getting too confused by the details.” All of this means that with Svelte you can get started and build apps expediently.

Senior Angular developer and contributor to codeburst.io, Armen Vardanyan describes his experience: “I just love how you can simplify passing attributes to HTML elements in Svelte. Instead of <img src={src} /> you can just do <img {src} />, and it is awesome. And you can also bubble up native events from child components without declaring dispatchers at all, the same way! This is some next level (good) magic I’d love to see in Angular and React.”

Easy integration and interoperability

Since Svelte is a compiler, you have standalone components and the framework script isn’t a dependency. This means that you can start bundling it with your other projects today! Svelte works at the component level and so, even if your project already uses Vue or React, you can simply integrate Svelte components at will. 

So, if your project uses Angular and you want to add a widget built-in React to it, it wouldn’t be possible. With Svelte, you can just drop-in components and such integrations are possible. Further, with the way Svelte works, code splitting is a lot easier too.

The future of embedded is here 

With small file sizes and fast performance, Svelte is actually perfect for apps that run on, say, a smartwatch, smart TV, or even a POS device. In Brazil, Stone, a Fintech firm that offers POS devices, found that frameworks like React and Vue couldn’t provide a good enough user experience. They were simply not fast enough. Svelte, however, did the trick. Mustlab.io, an app developer in Russia, did the same for their smart TV apps and is expanding its use of Svelte to home automation. According to Richard Harris, the next frontier the world is looking at is the embedded web: things like IoT, in-car entertainment, and wearables. All this is prime hunting ground for Svelte.

You even have mobile and application frameworks powered by Svelte, Native, and Sapper, in the suite of tools you can use to build powerful apps with small footprints.

So, are you ready to give Svelte a try?

16 Tricky Java Developer Interview Questions And How to Answer Them

Java is one of the most famous programming languages owing to its platform independence. Its functions around a ‘write once, run anywhere’ philosophy and is useful for companies looking to write code for Windows, macOS, smartphones, and Linux alike. Skilled Java developers are much sought after and while entry-level Java developers earn about Rs.2.7 lakh per annum, those with 1-4 years’ experience earn about Rs.4.1 lakh annually and those with 5-9 years of experience earn an annual compensation of about Rs.8.3 lakh as per data by PayScale.

Analytical thinking is key to scaling the rungs and so, interviewers frequently ask tough and tricky questions to test your understanding of basic concepts. To help you prepare for your next interview, here is a list of 16 tricky Java questions and their answers that both entry level and experienced Java developers should master.

1. What is Liskov Substitution Principle?

Liskov’s Substitution Principle prescribes that you can replace an object with an instance of its subtype without corrupting the program. Practically, you can replace a class with its subclass and Java’s inheritance mechanism follows this principle.

2. Distinguish between JDK and JRE

Java Runtime Environment (JRE) provides the requirements for Java programs to be executed and contains the JVM, Java class libraries and Java class loader. Conversely, the Java Development Kit (JDK) is a Software Development Kit, allowing one to develop, compile and execute applications and applets with Java. It includes the JRE and tools like JavaDoc and Java Debugger.

3. In OOP, how does abstraction differ from encapsulation?

While abstraction focuses on an object’s behavior, encapsulation focusses on the implementation of an object’s behavior. Abstraction hides unwanted information whereas encapsulation hides the data into a single unit, protecting the information from outside influence.

4. Why does Java not support multiple inheritances?

With multiple inheritances, one can run into the ‘diamond of death problem’. Here ambiguity arises when classes B and C inherit from class A; and class D inherits from B and C. This can lead to compiler errors and since Java was designed to be simple, multiple inheritances are not supported.

5. Will finally block execute if you put System.exit () in catch or try block?

The finally block will not execute and after System.exit () the program will be terminated. In other words, the finally block will be bypassed if there is no catch on the way to exit. The exception here is when a block that catches exceptions prompts the finally block to get executed.

6. How can you ensure that N threads can access N resources without deadlock?

Firstly, impose an ordering on the locks. Then, force the threads to keep to that ordering. Zero deadlocks will arise if the threads lock and unlock the mutexes in the same order. In other words, one must acquire resources in one order and release them in the reverse order.

7. Is Java pass-by-reference or pass-by-value?

In Java one can pass a parameter by value only; pass-by-reference does not exit. So, Java follows pass-by-value, even though in passing an object’s value one passes the reference to it.

8. What’s the difference between fail-fast and fail-safe?

Fail-fast iterators throw an exception when they detect that the collection is modified structurally since the start of the iteration. Fail-safe iterators do not throw an exception; here, the iterator works with a clone of the collection and is not affected by modifications to it. 

9. Can you store null keys/ values and duplicate keys/values in a Java HashMap?

One can store only 1 null key (bucket 0) and multiple null values in a Java HashMap. The HashMap, does not allow for duplicate keys but duplicate values are permitted.

10. What do System.gc() and Runtime.gc() methods do?

These suggest to JVM that garbage collection can be started; however, the JVM may finally run the garbage collector at a later time. System.gc() is a class method and Runtime.gc() is an instance method. 

11. Distinguish between throw and throws in Java

The throw keyword is used within a method to raise an exception explicitly. This keyword is followed by an instance. The throws keyword declares an exception, precedes a class name, and works in a way that the try-catch block does. This keyword is used with the method signature.

12. Describe the lifecycle of an Applet

An applet’s lifecycle can be said to follow these states:

  1. init(): The applet is initialized
  2. start(): Execution begins
  3. paint(): Applet redraws its output
  4. stop(): Execution is stopped
  5. destroy(): Final clean up before unloading is performed 

13. Why to use PreparedStatement over Statement?

PreparedStatement provides better performance and security. Performance is higher because of pre-compilation of the SQL query and security is more because wrong use of Statement keeps one susceptible to SQL injection.

14. What’s the difference between CountDownLatch and CyclicBarrier?

In case of a CountDownLatch, a main thread waits for other threads to execute, until the latch counts down to zero. In case of a CyclicBarrier, a group of threads wait for each other to complete execution; once this is done, the barrier is broken, and action can be taken.

15. Can you override a private method in Java?

It is not possible to override a private method in Java as it is not visible to other classes. The scope of the private method is limited to its own class and if you try to override it you will get a compile time error. 

16. How to notice a memory leak in Java?

An OutOfMemoryError (OOM) is a sign of a memory leak. Further, if the application’s memory utilization is on the rise the data processing remains the same, one may be dealing with a memory leak. Similarly, performance problems with large data sets is indicative of a memory leak. Tools like Java VisualVM help one analyze code and identify memory leaks.

These 16 questions cover topics ranging from OOP, Java threads, and garbage collectors to exception handling and JDBC. While this is sure to serve as a quick primer to tricky topics in Java, make sure to look up some other challenging Java questions and their solutions so that you ace your interview and land a great developer job!