---
title: Java&()
category: Java
tag:
- Java
---
##
### Java ?
1.
2.
3. Java
4. C++ Java
5.
6.
7. Java Java
8.
> ** [issue#544](https://github.com/Snailclimb/JavaGuide/issues/544)** C++11 2011 ,C++ windowslinuxmacos `std::thread``std::async`http://www.cplusplus.com/reference/thread/thread/?kw=thread
Write Once, Run Anywhere Java Java JDK Docker Java
### JVM vs JDK vs JRE
#### JVM
Java JVM Java JVM WindowsLinuxmacOS JVM Java
**JVM JVM JVM** HotSpot VM JVM
HotSpot VM J9 VMZing VMJRockit VM JVM JVM [Comparison of Java virtual machines](https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines) [Java SE Specifications](https://docs.oracle.com/javase/specs/index.html) JDK JVM

#### JDK JRE
JDK Java Development Kit Java SDK JRE javac javadoc jdb
JRE Java Java Java JVMJava java
Java JRE Java JDK Java JDK JSP Web Java JDK JSP Java servlet JDK servlet
### ??
Java JVM `.class` Java Java C++RustGo Java
**Java **

`.class->` JVM () JITjust-in-time compilation JIT JIT Java **Java **
> HotSpot (Lazy Evaluation) JIT JVM JDK 9 AOT(Ahead of Time Compilation) JIT JDK AOT AOT JIT
### Java
- **** [](https://zh.wikipedia.org/wiki/%E7%B7%A8%E8%AD%AF%E8%AA%9E%E8%A8%80) [](https://zh.wikipedia.org/wiki/%E7%B7%A8%E8%AD%AF%E5%99%A8) CC++GoRust
- **** [](https://zh.wikipedia.org/wiki/%E7%9B%B4%E8%AD%AF%E8%AA%9E%E8%A8%80)[](https://zh.wikipedia.org/wiki/)interpret PythonJavaScriptPHP

> [](https://zh.wikipedia.org/wiki/)[](https://zh.wikipedia.org/wiki/)[Java](https://zh.wikipedia.org/wiki/Java)[LLVM](https://zh.wikipedia.org/wiki/LLVM)
>
> [ | Java ](https://tech.meituan.com/2020/10/22/java-jit-practice-in-meituan.html)
** Java **
Java Java Java `.class` Java
### Oracle JDK vs OpenJDK
OpenJDK Oracle JDK OpenJDK
Java 7OpenJDK Sun HotSpot OpenJDK Java 7 Oracle JVMJDKJRE OpenJDK Oracle 2012
> OpenJDK Oracle JDK
>
> - Oracle JDK OpenJDK 7 Oracle Java Java WebStart Rhino Oracle JDK
****
1. Oracle JDK 6 OpenJDK [https://blogs.oracle.com/java-platform-group/update-and-faq-on-the-java-se-release-cadence](https://blogs.oracle.com/java-platform-group/update-and-faq-on-the-java-se-release-cadence)
2. OpenJDK Oracle JDK OpenJDK
3. Oracle JDK OpenJDK OpenJDK Oracle JDK Oracle JDK / Oracle JDK OpenJDK Oracle JDK
4. JVM Oracle JDK OpenJDK
5. Oracle JDK
6. Oracle JDK BCL/OTN OpenJDK GPL v2
- BCL Oracle Binary Code License Agreement JDK
- OTN Oracle Technology Network License Agreement 11 JDK

[Differences Between Oracle JDK and OpenJDK](https://www.baeldung.com/oracle-jdk-vs-openjdk)
### Java C++ ?
C++ Java C++ C++
Java C++
- Java
- Java C++ Java
- Java (GC)
- C ++ Java Java
- ......
##
### ?
1. **** : 0
2. **** : ( ASCII ),; ()
3. **** 2 ;
(** `char` Java **)
###
Java
1.
2.
3.
(,)
Clean Code
> ****
>
> ****
>
>
>
>
>
> ```java
> // check to see if the employee is eligible for full benefits
> if ((employee.flags & HOURLY_FLAG) && (employee.age > 65))
> ```
>
>
>
> ```java
> if (employee.isEligibleForFullBenefits())
> ```
###
**** ****
Java **** ****
### Java
| | | | | | | | |
| :------------------- | -------- |-------- | -------- | -------- | --------| --------| -------- |
| | private | protected | public | | | | |
| | abstract | class | extends | final | implements | interface | native |
| | new | static | strictfp | synchronized | transient | volatile | enum |
| | break | continue | return | do | while | if | else |
| | for | instanceof | switch | case | default | assert | |
| | try | catch | throw | throws | finally | | |
| | import | package | | | | | |
| | boolean | byte | char | double | float | int | long |
| | short | | | | | | |
| | super | this | void | | | | |
| | goto | const | | | | | |
> Tips IDE
>
> `default`
>
> - `switch` `default`
> - JDK8 `default`
> - `default`
`true`, `false`, `null`
[https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html)
###
1 1Java ++)--
++ -- ()/()/ `b = ++a` 1 b `b = a++` ( b) 1++a a+1 a++ a //
### continuebreak return
1. `continue`
2. `break`
`return` return
1. `return;` return
2. `return value;` return
```java
public static void main(String[] args) {
boolean flag = false;
for (int i = 0; i
>
>
****
Java
> ( `StringBuilder` )
>
> ```java
> StringBuilder sb = new StringBuilder();
> StringBuilder sb2 = new StringBuilder("HelloWorld");
> ```
>
> ((overloading resolution))
>
> Java
****
1.
2. `private/final/static` `static`
3.
****
| | | |
| :--------- | :------- | :--------------------------------------------------------------- |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
**** Java [issue#892](https://github.com/Snailclimb/JavaGuide/issues/892)
-
-
-
**** void
```java
public class Hero {
public String name() {
return "";
}
}
public class SuperMan extends Hero{
@Override
public String name() {
return "";
}
public Hero hero() {
return new Hero();
}
}
public class SuperSuperMan extends SuperMan {
public String name() {
return "";
}
@Override
public SuperMan hero() {
return new SuperMan();
}
}
```
### == equals()
**`==`**
- `==`
- `==`
> Java ==
**`equals()`** `equals()``Object``Object``equals()`
`Object` `equals()`
```java
public boolean equals(Object obj) {
return (this == obj);
}
```
`equals()`
- ** `equals()`** `equals()`== `Object``equals()`
- ** `equals()`** `equals()` true()
IDEA IDE `==` `equals()`
```java
String a = new String("ab"); // a
String b = new String("ab"); // b,
String aa = "ab"; //
String bb = "ab"; //
System.out.println(aa == bb);// true
System.out.println(a == b);// false
System.out.println(a.equals(b));// true
System.out.println(42 == 42.0);// true
```
`String` `equals` `Object` `equals` `String` `equals`
`String` `String`
`String``equals()`
```java
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
```
### hashCode() equals()
`hashCode()` `equals()`? `equals()` `hashCode()`
#### hashCode()
`hashCode()` `int`
`hashCode()` JDK `Object` Java `hashCode()` `Object` `hashCode()` C C++
```java
public native int hashCode();
```
(key-value)****
#### hashCode
`HashSet` `hashCode`
Java Head First Java:
> `HashSet` `HashSet` `hashCode` `hashCode` `hashCode``HashSet` `hashCode` `equals()` `hashCode` `HashSet` `equals`
`hashCode()` `equals()`
** JDK **
`HashMap``HashSet` `hashCode()` `HastSet`
`HastSet` `HashSet` `hashCode` `equals()` `hashCode`
** `hashCode()` **
`hashCode`
** `hashCode` **
`hashCode()` `hashCode` )
- `hashCode`
- `hashCode` `equals()` `true`
- `hashCode`
`hashCode()` `equals()`
#### equals() hashCode()
`hashCode` `equals` `hashCode`
`equals()` `hashCode()` `equals` `hashCode`
**** `equals()` `hashCode()` `HashMap`
****
- `equals` `hashCode`
- `hashCode`
`hashCode()` `equals()` [Java hashCode() equals()](https://www.cnblogs.com/skywang12345/p/3324958.html)
###
Java5 Java `printVariable` 0
```java
public static void method1(String... args) {
//......
}
```
```java
public static void method2(String arg1, String... args) {
//......
}
```
****
```java
/**
* JavaGuide "" Java
*
* @author Guide
* @date 2021/12/13 16:52
**/
public class VariableLengthArgument {
public static void printVariable(String... args) {
for (String s : args) {
System.out.println(s);
}
}
public static void printVariable(String arg1, String arg2) {
System.out.println(arg1 + arg2);
}
public static void main(String[] args) {
printVariable("a", "b");
printVariable("a", "b", "c", "d");
}
}
```
```
ab
a
b
c
d
```
Java `class`
```java
public class VariableLengthArgument {
public static void printVariable(String... args) {
String[] var1 = args;
int var2 = args.length;
for(int var3 = 0; var3 < var2; ++var3) {
String s = var1[var3];
System.out.println(s);
}
}
// ......
}
```
##
### Java
Java 8
1. 6
- 4 `byte``short``int``long`
- 2 `float``double`
2. 1 `char`
3. 1 `boolean`
8
| | | | | |
| :-------- | :--- | :--- | :------ | ------------------------------------------ |
| `byte` | 8 | 1 | 0 | -128 ~ 127 |
| `short` | 16 | 2 | 0 | -32768 ~ 32767 |
| `int` | 32 | 4 | 0 | -2147483648 ~ 2147483647 |
| `long` | 64 | 8 | 0L | -9223372036854775808 ~ 9223372036854775807 |
| `char` | 16 | 2 | 'u0000' | 0 ~ 65535 |
| `float` | 32 | 4 | 0f | 1.4E-45 ~ 3.4028235E38 |
| `double` | 64 | 8 | 0d | 4.9E-324 ~ 1.7976931348623157E308 |
| `boolean` | 1 | | false | truefalse |
`boolean` JVM 1
Java Java Java 2.2
****
1. Java `long` **L**
2. `char a = 'h'`char :`String a = "hello"` :
`Byte``Short``Integer``Long``Float``Double``Character``Boolean`
`Null` `Null`
JVM
Java
> Java **booleanbytecharshortintfloatlongdouble******reference
###
Java
`Byte`,`Short`,`Integer`,`Long` 4 **[-128127]** `Character` **[0,127]** `Boolean` `True` or `False`
**Integer **
```java
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i