NSX for vSphereは、ESXiホストの物理CPUで課金するCPUライセンスとVDIに適用できるCCU（同時接続ユーザー）カウントのライセンスから選択することができる。 CCUカウントのライセンスの場合、10ユーザー単位もしくは100ユーザー単位での手配が可能。また、利用できる機能がエディションによって分かれている。ネットワークの仮想化のみをベースにしたものが、「Standard」、分散ファイアーウォールが利用できる「Advanced」、vCenter Server間でマルチサイトを構成する場合や、VPN機能を利用できる「Advanced」の３つがある。また、小規模向けのライセンスとして「ROBO」ライセンスがある。
SSL-VPN機能をサイト間で利用し、サイト間をL2でVPNを接続する機能。 親サイトには、Edge Security Gatewayを、サテライトには、VMwareから提供されるL2-VPNクライアント機能が組み込まれた仮想アプライアンスを展開し、構成することでサイト間をVPNで通信することとなる。VXLAN/VLANを複数セグメントまとめて、VLANトランクのように1つのトンネル内に複数のセグメントをVPN経由で延伸することができる。
Windows / Mac / Linuxに対応した、SSL-VPN機能。 各対応OSにインストール型のクライアントソフトウェアを提供する。機能は、VMwareが買収したNeoAccelのSSL-VPN Plusの機能相当を継承している。
主にWeb系のサービスをロードバランスするための機能。ヘルスチェック機能やSSLアクセラレーション機能を保有する。カスタムなアプリケーションルールを作成することも可能。尚、機能は、HA-Proxyを踏襲している。
従来のネットワークでは、L3ベースでセグメントを超えた通信を行う際のゲートウェイにファイアーウォール機能を提供することで、セキュリティを保っていた。NSX for vSphereで提供される、分散ファイアーウォールは、仮想マシンと仮想スイッチの間に仮想のファイアーウォールを搭載することで、仮想マシン単位で通信制御を行うことができる機能である。そのため、同一のL2セグメントに存在する仮想マシン同士であっても、用途に応じて細かな通信制御が可能となる。この分散ファイアーウォールの機能とサードパーティー製のセキュリティソフトを組み合わせることで、仮想マシンがマルウェア等に感染した場合にその仮想マシンだけ、業務ネットワークからの遮断や検疫ネットワークへの切り替えなどを行うことができるようになる。このことを、VMware社は、マイクロセグメンテーションによるセキュリティ機能と提唱している。
vCNSの時代では、作成されたVNIをまたいだ通信を行う機能は提供されず、別途外部のルーター等を利用してルーティングを行うか、EdgeGatewayを利用したルーティングを行うことで対応してた。 これは、物理層または、EdgeGatewayは仮想アプライアンスのため、ルーティング処理の負荷分散できないことから、ESXiのカーネルでルーティング機能が提供される分散論理ルーター(DLR)と呼ばれる機能が提供された。 DLRにより、各VNIで分けられたセグメント間のルーティングをESXiカーネル処理のみでルーティングできることになり、East-West間の通信におけるネットワークのヘアピーニング削減ができるようなる。 DLRでは、OSPFやBGPなどのダイナミックルーティングのサポートもされている。
vSphereのクラスターをまたいだVXLANを構成した際に、クラスター内のVXLAN通信は、マルチキャストで行い、クラスターを超えたVXLAN通信においては、ユニキャスト通信を行う方式。各クラスターは、L2ネットワークでクラスター間がL3ネットワークで接続されていることが想定環境である、ユニキャストのL3越えの容易さと、マルチキャストの通信負荷軽減の両方のいいところを採用した方式でもある。
NSX for vSphereは、vCloud Networking and Security(vCNS)の事実上の後継製品であり、VXLANを中心にネットワークの仮想化機能を、VMware vSphere(ESXi)に提供する製品である。
Javaのインスタンスメソッドは既定で仮想メソッドであり、派生クラスでオーバーライド可能である。finalキーワードを指定することでオーバーライドを禁止することもできる。なお、Java SE 5から導入されたアノテーション@Overrideを用いることで、メソッドがオーバーライドされていることをコンパイラに知らせることができる（正しくオーバーライドされていない場合、コンパイルエラーとなる）。しかし、アノテーションの指定はオプションであり必須ではない。// 基本クラス。class Base {  // コンストラクター  Base() {    System.out.println("Base.Base()");  }  // インスタンスメソッド  void print() {    System.out.println("Base.print()");  }  // クラスメソッド  static void staticPrint() {    System.out.println("Base.staticPrint()");  }}// 派生クラス。class Derived extends Base {  // コンストラクター  Derived() {    System.out.println("Derived.Derived()");  }  // スーパークラスのインスタンスメソッド print をオーバーライドしている。@Override の指定は必須ではないが推奨される。  @Override  void print() {    System.out.println("Derived.print()");  }  // スーパークラスのクラスメソッド staticPrint をオーバーライドすることはできない。隠蔽することになる。  static void staticPrint() {    System.out.println("Derived.staticPrint()");  }}public class Main {  public static void main(String[] args) {    System.out.println("■ Baseインスタンスメソッドの呼び出し:");    Base base = new Base();    base.print();    System.out.println("■ Derivedインスタンスメソッドの呼び出し:");    Derived derived = new Derived();    derived.print();    System.out.println("■ Base型変数を経由したDerivedインスタンスメソッドのポリモーフィック呼び出し:");    Base derivedInBaseVariable = new Derived();    derivedInBaseVariable.print();    System.out.println("■ Baseクラスメソッドの呼び出し:");    Base.staticPrint();    System.out.println("■ Derivedクラスメソッドの呼び出し:");    Derived.staticPrint();  }}実行結果:■ Baseインスタンスメソッドの呼び出し:Base.Base()Base.print()■ Derivedインスタンスメソッドの呼び出し:Base.Base()Derived.Derived()Derived.print()■ Base型変数を経由したDerivedインスタンスメソッドのポリモーフィック呼び出し:Base.Base()Derived.Derived()Derived.print()■ Baseクラスメソッドの呼び出し:Base.staticPrint()■ Derivedクラスメソッドの呼び出し:Derived.staticPrint()