Java and Python are the two most powerful general-purpose programming languages. 

Google Trends showing the popularity of Java and Python

Typing

Java is statically typed and compiled language. It is faster at runtime and easier to debug

Python is dynamically typed, interpreted language.

Example: int x = 5; int y = 10; int sum = x + y; System.out.println(sum);

Example: x = 5 y = 10 print(x+y)

Winner: java

Syntax

Java Syntax is complex and strict. If you miss semicolon or mismatch any curly braces, it will show errors.

Python has easier syntax but a proper indentation needs to be followed.

Example: public class Main {  public static void main(String[] args) {   System.out.println("Java Syntax"); } }

Example: print(‘Python Syntax’)

Winner: python

Code Readability

In the case of Java,  just for printing a string, you need to write 5-6 lines of code.

In Python, it's as simple as: print("Whatever you want to print")

Example: public class NaukriLearning {  public static void main (String args[])  {   System.out.println(“ Shiksha Online ”);  } }

Example: print(‘Naukri Learning')

Winner: python

Inheritance

In Java, multiple inheritance is partially done through interfaces.

Python supports both single and multiple inheritances.

Syntax: class Subclass-name extends Superclass-name {   //methods and fields }

Syntax: class BaseClass:  Body of base class class DerivedClass(BaseClass):  Body of derived class

Winner: python

Portability

Java is more portable because any computer or mobile device which can run JVM (Java Virtual Machine) is capable of running a Java Code.

Python is comparatively less portable. A compiler is required to convert the Python code into machine-understandable code.

Winner: java

Usage

Java is best used for Desktop apps, Embedded Systems, Enterprise Solutions.

Python is best used for Operating Systems, Scientific And Numeric Computing, Games, Machine Learning apps.

Both languages are used interchangeably, but with the increase in demand of python its usage across the industry has also increased

Winner: Python

Frameworks & Libraries

Java Frameworks: Spring, Hibernate Machine Learning Libraries: Weka, Mallet, Deeplearning4j, MOA

Winner: JAVA

Python Frameworks: Django, Flask Machine Learning Libraries: Tensorflow, Pytorch

Winner: JAVA

Connectivity

Java has Strong database connectivity. JDBC (Java Database Connectivity) is widely used to connect with the database.

Python has Weak database connectivity. Its database access layers are weaker than Java’s JDBC.

Performance

In Python, each program statement is interpreted at a time. Type checking is done at run time.  All this reduces the performance.

Java has better speed and efficiency.  JIT compiler improves the efficiency of Java program considerably.

Winner: Java

Learning curve

Java has a complex learning curve due to vast in-built libraries, verbose syntax, and complicated installation steps.

Python has concise syntax and useful inbuilt standard set of libraries. It is easy to learn and use.

Winner: python

Python Vs Java: Which One is Better  to Learn  First?