The nature of variables
It represents an operable storage space. The location of the space is determined, but what value is placed in it is uncertain. We can access the corresponding storage space through the variable name, so that the value of operating the storage space is defined according to the size of the variable to be defined. The size of the storage space allocated by different types is different.
Variable contains variable name, data type, scope
Variables can only be used after they have been declared and initialized.
Type of variable
1. Local variable:
Variables defined in a method or statement block can only be used in a method or statement block
2. Member variable (instance variable):
Method external, variable defined inside the class, subordinate to the object, with the object's life cycle always
Is a member of an object, which is automatically initialized
- int: 0
- double: 0.0
- char: \u0000
- boolean:false
3. Static variables:
Defined by static, subordinate to a class, the life cycle is always accompanied by that of the class, from the loading to unloading of the class (the longest life cycle)
Integer variables
constant:
Name all in uppercase and underline
- Integer variable: byte(1 byte), short (2), int (4), long (8 bits per byte) integer contains positive and negative numbers.
- The representation of base: 0 (octal) 0x (HEX), 0b (binary)
- The integer constant is of type int by default, so if l or L is added after the long number when defining a variable of type long, it means a constant of type long
public class virant { int a;//Member variables static int size;//Static variables final String STR="name"; //STR="abcd"; / / constant cannot be reassigned //Constants are initialized at the time of definition. public static void main(String[] args) { { int age;//Local variable, subordinate to statement block } byte a=30; //short b=30000000; / / exceeds the length of short short b=30000; int c=3000000; //Long d = 3000000000; / / the default size of a constant is int, which exceeds the size of an integer constant long d=30000000000L;//Add L or l after it to transform it into a growth integer. } }
Floating point variables and constants
- float: 4 bytes. The mantissa is accurate to 7 significant digits. float type values have a suffix of f or F. floating point numbers without F/f are of double type by default. You can also add D/d to show that they are of double type
- double: 8 bytes
public class virant { public static void main(String[] args) { float a=3.14f;//If you do not add f, you will get an error, because floating-point constants are of double type by default double b=6.28; double c=628E-2; //Floating point numbers are imprecise and must not be used for comparison float f=0.1f; double d=1.0/10; System.out.println(f==d);//The result is false float d1=423432423f; float d2=d1+1; if(d1==d2) { System.out.println("d1==d2");//The output result is d1==d2; } else { System.out.println("d2!=d2"); } } }
If you need to compare floating-point data, use the BigDecimal class to compare
BigDecimal bd=BigDecimal.valueOf(1.0); bd=bd.subtract(BigDecimal.valueOf(0.1)); bd=bd.subtract(BigDecimal.valueOf(0.1)); bd=bd.subtract(BigDecimal.valueOf(0.1)); bd=bd.subtract(BigDecimal.valueOf(0.1)); bd=bd.subtract(BigDecimal.valueOf(0.1)); System.out.println(bd);//0.5 System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);//0.5000000000000001 BigDecimal bd2=BigDecimal.valueOf(0.1); BigDecimal bd3=BigDecimal.valueOf(1.0/10); System.out.println(bd2.equals(bd3));//true
Character variables and constants
char: represents characters in Unicode encoding, and can represent characters in all languages. (including Chinese characters)
Unicode has an encoding between 0-65535, usually represented by a hexadecimal value between \ u0000 - \ ufff (the prefix u represents Unicode)
char c="\u0061";//a
Escape character
System.out.println(""+'a'+'b');//Precede with a string to indicate that two characters are linked //If the empty string is not added, the character type will be automatically converted to int type numbers for addition System.out.println(""+'a'+'\n'+'b'); System.out.println(""+'a'+'\t'+'b'); System.out.println(""+'a'+'\''+'b'); System.out.println(""+'a'+'\"'+'b');
Variables and constants of type boolean
The values are true and false. (default is false)