literals

 

  The seven characters which denote floating point literals are:  . (dot), d, D, e, E, f, F   with  e as in 400e+20 meaning 400 raised to 20th power.  Caps or small is OK for these letters.  i.e.

long x = 20L;             works.    

long x = 20l;              works.  

 

 The six characters which denote automatic casting are d and D for double, f and F for float, and l and L for long. 

There is no S for short, no B for byte,  no I  for int, and no C for char.

 

  A leading zero means it’s Octal coming in. Otherwise the assigned value is interpreted as decimal.  i.e.

 

long x = 010;             yields 8.

char x = '\077';           shows that octal will work with or without a backslash.

 

  A leading zero and an x means it’s hex coming in. i.e.

 

long x = 0xffff;

long x = 0Xffff;              both work

 

  You cannot insert blanks to separate the four hex digit characters.  i.e.

 

long x = 0Xff ff;          will not compile.

 

  Note that hex digits can also be capitals.  i.e.  ff is the same as FF

 

  You do not need orderly pairs of hex digits.  i.e.

 

float f = 0x7;                  compiles.

float f = 0x777;           compiles.

 

  Primitive chars can optionally be assigned using int equivalents, without the usual single quotes.  i.e.

 

char A = 65;               This is the letter A. 

 

  Unlike with hex, for a char you must show all 4 hex digits.  i.e.

 

char x = ‘\uff’;            will not compile - not enough digits.

char x = 0Xff;             compiles.

 

  Note that the print(...) method attempts to print chars as the Unicode character they represent. 

So trying to print anything with a value over char 127 prints as a question mark.