With the release of Java 9, the language has ten new words called restricted keywords. A restricted keyword has a specific meaning in the language, but only if you use that word in a specific way. For example, if you write
 
requires other.stuff;
you tell Java that your program won't run unless it has access to some other code (the code contained in other.stuff). But if you write
int requires = 10;
then requires is an ordinary int variable.
The following table lists Java's restricted keywords.
| Restricted Keyword | What It Does | 
| exports | Indicates that the code in a particular package is available for use by code in other modules. | 
| module | A bunch of packages. | 
| open | Indicates that all the packages in a module are, in a certain way, available for use by code in other modules. | 
| opens | Gets access to all the code in another module. This access uses Java reflection (which tends to be messy). | 
| provides | Indicates that a module makes a service available. | 
| requires | Indicates that the program won't run unless it has access to the some other code. | 
| to | Names the code that has permission to use a particular piece of code. | 
| transitive | When my code requires use of the Acode, and theZcode requires use of my code, the wordtransitive means thatZcode automatically requiresA code. | 
| uses | Indicates that a module uses a service. | 
| with | Specifies a particular way of using a service. | 



