---
schema_version: "1"
id: 263a86cbd0406104fb1d8d7569f12853cd591cfe5a026f7ff8986da8bc939bbf
title: Apex Developer Guide
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/apexcode/apex_dev_guide.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guide.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: bb5a92936365623518a0e3209c6dd2c7b19ab185fb5aaf4b18291505fdc4e437
description: Apex is a strongly typed, object-oriented programming language that allows developers to execute flow and transaction control statements on the Salesforce Platform server, in conjunction with calls to the API. This guide introduces you to the Apex development process and provides valuable information on learning, writing, deploying and testing Apex.
---
# Apex Developer Guide

Apex is a strongly typed, object-oriented programming language that allows developers to execute flow and transaction control statements on the Salesforce Platform server, in conjunction with calls to the API. This guide introduces you to the Apex development process and provides valuable information on learning, writing, deploying and testing Apex.

For reference information on Apex classes, interfaces, exceptions and so on, see [Apex Reference Guide](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/apex_ref_guide.htm "HTML (New Window)").

- **[Apex Release Notes](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_releasenotes.htm)**  
    Use the Salesforce Release Notes to learn about the most recent updates and changes to Apex.
- **[Getting Started with Apex](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro_get_started.htm)**  
    Learn about the Apex development lifecycle. Follow a step-by-step tutorial to create an Apex class and trigger, and deploy them to a production organization.
- **[Writing Apex](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_writing.htm)**  
    Apex is like Java for Salesforce. It enables you to add and interact with data in the Lightning Platform persistence layer. It uses classes, data types, variables, and if-else statements. You can make it execute based on a condition, or have a block of code execute repeatedly.
- **[Running Apex](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_running.htm)**  
    You can access many features of the Salesforce user interface programmatically in Apex, and you can integrate with external SOAP and REST Web services. You can run Apex code using a variety of mechanisms. Apex code runs in atomic transactions.
- **[Debugging, Testing, and Deploying Apex](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_debug_test_deploy.htm)**  
    Develop your Apex code in a sandbox and debug it with the Developer Console and debug logs. Unit-test your code, then distribute it to customers using packages.
- **[Apex Reference](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_link_ref_guide.htm)**  
    In Summer ’21 and later versions, Apex reference content is moved to a separate guide called the Apex Reference Guide.
- **[Appendices](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_appendices.htm)**