+ Start a Discussion
Nagaraju Mogili 31Nagaraju Mogili 31 

what is the difference between the custom setting, custom metadata, custom object, custom labels

NagendraNagendra (Salesforce Developers) 
Hi Raju,

Custom Settings:

Custom settings are similar to custom objects and enable application developers to create custom sets of data, as well as create and associate custom data for an organization, profile, or specific user. All custom settings data is exposed in the application cache, which enables efficient access without the cost of repeated queries to the database. This data can then be used by formula fields, validation rules, flows, Apex, and the SOAP API.
There are two types of custom setting:
List Custom Settings
Hieriarchal Custom Settings.
To Know more,Please looke here: https://help.salesforce.com/apex/HTViewHelpDoc?id=cs_about.htm

Use of Custom Settings:

Hard-coding and good code are a match made in hell. RecordTypeIds are most vulnerable to this abuse, and we’re are all familiar with the frustration of finding that code that worked in environment A, suddenly stops working when it is promoted to say test. Why? Because possibly RecordTypeIds are different across the two environments.

Why hard-code when you can use Custom Setting for stuff like this ? Custom Settings are a SOQL inexpensive way of storing your configurable parameters in the safe confines of the Salesforce database, with all the conveniences of a custom object – create / edit via point and click – standard salesforce !

Under the hood Custom Settings are much like a Custom Salesforce Object, save for you cant have triggers on them. Most obvious difference, amongst others.
One of the best example of using custom setting in code is here:
Custom Metadata:

Custom metadata is customizable, deployable, packageable, and upgradeable application metadata. First, you create a custom metadata type, which defines the form of the application metadata. Then you build reusable functionality that determines the behavior based on metadata of that type. Similar to a custom object or custom setting, a custom metadata type has a list of custom fields that represent aspects of the metadata.
For more details, please follow below link:-
Custom Object:
Custom objects are custom database tables that allow you to store information unique to your organization. For custom objects, the custom flag—a Boolean field in the describe results—is true . Client applications with sufficient permissions can invoke API calls on existing custom objects.

Custom Labels:
Custom LabelsCustom labels enable developers to create multilingual applications by automatically presenting information (for example, help text or error messages) in a user's native language. Custom labels are custom text values that can be accessed from Apex classes, Visualforce pages, or Lightning components.

Hope this helps.

Kindly mark this as solved if my reply was helpful so that it gets removed from the unanswered queue which results in helping others who are encountering a similar issue.