I recently saw students busy looking for job interviews and written tests in the lab. I felt deeply at my own shortcomings and decided to study the book "Java core technology" again. I used to rely on this book to enter the world of Java, however, there are also a lot of places I have missed, so it is also a sort, and then carefully learn again.
1. Simple Java applications
System.out.println("Hello, World!" }
This program is very simple, but illustrates some of the most important basic knowledge in Java:
If the file is named correctly and there are no errors in the source code, after compiling the source code, you will get a class containingBytecode. The Java compiler automatically names the file name. class.
2. annotations in Java
Java Annotations do not appear in executable programs. Therefore, you can add any number of comments without worrying that executable code will expand. In Java, there are three ways to write comments:
System.out.println("Hello, World!");
3. Java Data Type
Java isStrong typeLanguage, which indicates that a type must be declared for a variable. There are eight basic types, four of which are Integer type and two floating point type.Unicode encodingChar and 1 boolean type that represents the true value.
Integer 3.1
Type |
Storage Requirements |
Value Range |
Int |
4 bytes |
-2147483648--2147483647 (approximately 2 billion) |
Short |
2 bytes |
-32768--32767 |
Long |
8 bytes |
-9223372010954775808--923337201095477807 |
Byte |
1 byte |
-128--127 |
Generally, int type can meet most of our requirements. Byte and short are usedSuch as underlying file processing or a large array that needs to control the amount of space occupied by characters. In Java, the Integer Range is irrelevant to the machine running Java code, which solves the problem of cross-platform porting. After a long integer value, there is an L (such as 400100000000l), The hexadecimal prefix 0x (such as 0 xCAFE), and The octal prefix 0 (such as 010 ). SuggestionsNot applicable to octal ConstantsBecause it is easy to confuse. And JavaNo unsigned type.
3.2 floating point type
Type |
Storage Requirements |
Value Range |
Float |
4 bytes |
About ± 3. 40282425e + 38F (6-7 digits) |
Double |
8 bytes |
About ± 1. 79769313486231570E + 308 (the valid digits are 15 digits) |
Most applicationsAll should be usedDoubleType, onlyFew casesUseFloatType, such as the need to quickly process single-precision data, or the need to store a large amount of data. Float has a suffix F (such as 3.402F), and double can be suffixed with D or not. In JDK5.0, you can use hexadecimal notation to represent floating point values.Floating point numbers are not suitable for financial calculation that prevents rounding errors.The reason is that the floating point uses binary and cannot accurately represent the score of 1/10. UseBigDecimalClass.
There are three special floating point values used to indicate one point and an error:
- Positive infinity Double. POSITIVE_INFINITY
- Negative infinity Double. NEGATIVE_INFINITY
- NaN (not a number) Double. NaN
(x == Double.NaN) (Double.isNaN(x))
3.3 char type
Char represents a single character. It is often used to represent a character constant.'A'It is a character constant corresponding to encoding 65.""Is A string containing character. Unicode encoding is represented in hexadecimal notation from \ u0000 to \ Uffff. In Java, the char type isUTF-16Encoding describes a code unit. We recommend that youChar is not used in the program.
The transfer sequence of special characters is as follows: \ B Indicates backspace, \ t indicates indicator, \ n indicates line feed, \ r indicates carriage return, \ "indicates double quotation marks, \ 'indicates single quotation marks, \ indicates the backslash.
3.4 boolean Type
Boolean has two values: false and true for logical judgment. Between integer and BooleanNoEnough for mutual conversion (C ++ is acceptable, but Java is not)
4. Java Variables
In Java, each variable belongs to a type (either a basic type, a structure, or a class) A variable name must start with a subtitle in a sequence composed of numbers and letters (no Unicode character, such as + and ①, no space), or use a reserved word in Java.Case Sensitive.
i, j;
4.1 Initialization of Variables
After declaring a variable, you must use the value assignment statement to initialize the display of the variable.
JavaCode declaration can be placed anywhere. C ++ distinguishes declaration and definition of variables, but Java does not.
4.2 Constants
Using keywords in JavaFinalDeclare a constant (C ++ uses const, but Java sets const as a reserved word, but it is not used). Once copied, it cannot be changed. Traditionally, constant names are usedUppercase. If you want constants to be used in multiple methods of a class, you can use keywordsStatic fianlIn this way, the constant belongs to the static member of the entire class.
PI = 3.14
5. Operators
In Java, use + ,-,*,/.When both operands involved in the operation are integers, the integer division is used. Otherwise, the floating point division is used.% Is used for the remainder operation. If the integer is 0, an exception occurs. If the floating point is 0, an infinite number or NaN is returned.
You can use a simplified format to write Binary Arithmetic Operators: x + = 4; equivalent to x = x + 4;
Running the same operation on different virtual machines makes it difficult for floating point computing to obtain the same result. The reason is that double uses 64-bit storage, while some processors use 80-bit floating-point registers, which increases the computing accuracy of the intermediate process. AvailableStrictfpKeyword marking method or class, so that the method must use strict floating point calculation to generate an ideal record.
5.1 auto-increment and auto-subtraction Operators
In programming languages, the addition of 1 and subtraction of 1 are the most common operations for numerical variables. Therefore, the auto-increment and subtraction operators are provided: n ++ adds 1 to the current value of the variable, n -- subtract 1 from the current value. Auto-increment and auto-increment are divided into prefix (++ n) and suffix (n ++. If it appears in an expression, the suffix first adds 1 to the variable and then runs the expression. The prefix first performs expression operations and then adds 1 to the variable.
M = 7 n = 7 a = 2 * ++ m; B = 2 * n ++; // do not use the ++ symbol inside the expression, which may lead to confusion, and generate unexpected bugs
5.2 Relational operators and boolean operators
Java contains various Relational operators. = Check for equality ,! + Check whether the values are not equal, and <, >,< =,> =.
& Indicates logical "and", | indicates logical "or",! Indicates the logic "not". Java logic operations"Short Circuit"If the first operand can determine the value, the second operator is not calculated.
a = b = 1 (a && (--b < 1) == ) {}
Does Java support ternary operators? :. Condition? Expression1: expression2;
x < y ? x : y;
5.3-bit operator (I cannot figure it myself)
ProcessingInteger valueYou can directly operate on each bit. Bitwise operators include: & (and), | (OR), ^ (XOR ),~ (Not ). & | Used for boolean values,Do not press Short CircuitCalculation. Use ">" and "<" to move right or left. "> "Fill the high position with 0"> "fill the high position with the symbol bit. Perform the modulo 32 operation on the right side of the shift operator and modulo 64 on the left side, so 1 <35 and 1 <3 are the same.
In C ++, it cannot be determined> whether it is a formula shift or a logic shift, the execution will automatically choose a type with high efficiency.> It is actually defined as a non-negative number. Java eliminates this ambiguity.
5.4 mathematical functions and constants
The Math class contains various mathematical functions. You can easily perform mathematical calculations.
y = y = java.lang.Math.* y = pow(x, a);
Math classes also have cross-platform issues in floating-point computing. If you want to get the same results on different platforms, you should use the StrictMath class for operations.
5.5 conversion between numeric types
When running the program, you often need to convert one numeric type to another.
Conversion without information loss: byte to short, short to int, char to int, int to long, int to double;
Possible conversion with loss of precision: int to float, long to float, long to double;
n = 123456789 f = n;
5.6 forced type conversion
The conversion between the numeric types described in the previous section is automatic conversion. But sometimes we need to convert the double type to the int type. Java allows this type of conversion, but some information may be lost. It needs to be implemented through the forced conversion operation.
x = 9.997 nx = () x;
x = 9.997 nx = () Math.round(x);
If you try to forcibly convert a value from one type to another, but it is out of the range of the target type, the result will become a completely different value, such as (byte) the value 300 is 44.
5.7 Enumeration type
Sometimes, the value of a variable is intended to be within a finite set. For example, clothing size S, M, L, X and so on, if you use a common string or basic type to save, there is a certain risk, for example, a wrong value is transmitted.
String SMALL = "SMALL" String MEDIUM= "MEDIUM" String LARGE= "LARGE" String EXTRA_LARGE= "EXTRA_LARGE"clothe.setSize("Small");
In this case, you can customize the enumeration type, for example
clothe.setSize(Size.MEDIUM);