I found that there are two type of methods called static methods and instance methods and their differences. But still I couldnt understand the advantages of one over another. Sometimes i feel that static methods are not 100% object oriented. Are there any performance differences between this two.
https://social.msdn.microsoft.com/Forums/vstudio/en-US/e8e482ef-df3c-41d4-8b85-3f31a0757615/what-is-better-static-methods-or-instance-methods?forum=netfxbcl
1 A static method can access only static data. It can not access non-static data (instance variables) 2  A static method can call only other static methods and can not call a non-static method from it.  A static method can be accessed directly by the class name and doesn’t need any object.
https://crunchify.com/java-static-methods-variables-static-block-and-class-with-example/
In Java Variables can be declared with the “static” keyword. When a variable is declared with the keyword “static”, its called a “class variable”. All instances share the same copy of the variable. A class variable can be accessed directly with the class, without the need to create a instance.
https://crunchify.com/java-static-methods-variables-static-block-and-class-with-example/
Static Method in C#. In this quick article you will take a look at static methods in C#. The methods in C# may or may not take parameters and they may or may not return a value. Also, a custom method that is also known as a user defined method may be declared non-static (instance level) or static (class level). When a method is static then it can be invoked directly from the class level without creating an object.
http://www.c-sharpcorner.com/uploadfile/abhikumarvatsa/static-methods-in-C-Sharp/
1 A static method can call only other static methods and can not call a non-static method from it. 2  A static method can be accessed directly by the class name and doesn’t need any object. 3  Syntax : <class-name>.<method-name>.  A static method cannot refer to “this” or “super” keywords in anyway.
https://crunchify.com/java-static-methods-variables-static-block-and-class-with-example/
Methods and attributes defined as static can be used without an instance of a class being created. In other words, static variables belong to the class itself and there is only one instance of each static variable, which is shared among all the objects of that class. With static methods you can directly use static variables and other static methods. Instance variables are supposed to describe one particular object and instance methods represent actions that this particular object can take.
https://social.msdn.microsoft.com/Forums/vstudio/en-US/e8e482ef-df3c-41d4-8b85-3f31a0757615/what-is-better-static-methods-or-instance-methods?forum=netfxbcl
1 It is a method which belongs to the class and not to the object(instance) 2  A static method can access only static data. It can not access non-static data (instance variables)  A static method can call only other static methods and can not call a non-static method from it.
https://crunchify.com/java-static-methods-variables-static-block-and-class-with-example/
Example: static int y = 0; When a variable is declared with the keyword “static”, its called a “class variable”. All instances share the same copy of the variable. A class variable can be accessed directly with the class, without the need to create a instance.
https://crunchify.com/java-static-methods-variables-static-block-and-class-with-example/
The Static Keyword. In C# terms, “static” means “relating to the type itself, rather than an instance of the type”. You access a static member using the type name instead of a reference or a value, e.g. Guid.NewGuid(). In addition to methods and variables, you can also declare a class to be static (since C# 2.0).
http://theburningmonk.com/2010/07/static-vs-non-static-method-in-csharp/
I stumbled across some interesting discussions on how they differ from non-static methods, here’s a summary of what I learnt. In C# terms, “static” means “relating to the type itself, rather than an instance of the type”. You access a static member using the type name instead of a reference or a value, e.g. Guid.NewGuid(). In addition to methods and variables, you can also declare a class to be static (since C# 2.0). A static class cannot be instantiated and can only contain static members. There are a few rules around static classes: Static classes always derive from object, you can’t specify a different base type.
http://theburningmonk.com/2010/07/static-vs-non-static-method-in-csharp/
what is a static method
When a method is static then it can be invoked directly from the class level without creating an object.