| [ Web Proxy ] |
| Viewing: https://raw.githubusercontent.com/UserXSX/JavaGuide/main/docs/java/basis/java-basic-questions-01.md | [Back] [Original] |
[JIT vs AOT]
**AOT ****JIT **
AOT [GraalVM](https://www.graalvm.org/) GraalVM JDK JDK Java JVM JavaScriptPython JVM GraalVM AOT JIT GraalVM
- [](https://mp.weixin.qq.com/s/4haTyXUmh8m-dBQaEzwDJw)
- [ Native Spring&Dubbo AOT ](https://cn.dubbo.apache.org/zh-cn/blog/2023/06/28/%e8%b5%b0%e5%90%91-native-%e5%8c%96springdubbo-aot-%e6%8a%80%e6%9c%af%e7%a4%ba%e4%be%8b%e4%b8%8e%e5%8e%9f%e7%90%86%e8%ae%b2%e8%a7%a3/)
** AOT **
JIT AOT AOT AOT Java JNIJava Native Interface SpringCGLIB AOT CGLIB ASM `.class` AOT ASM JIT
### Oracle JDK vs OpenJDK
OpenJDK Oracle JDK OpenJDK
2006 SUN Java OpenJDK2009 Oracle Sun OpenJDK Oracle JDKOracle JDK Java8 ~ Java11 OpenJDK
Java 7 OpenJDK Oracle JDK Oracle JDK OpenJDK 7 Oracle
Oracle 2012
> OpenJDK Oracle JDK
>
> - Oracle JDK OpenJDK 7 Oracle Java Java WebStart Rhino Oracle JDK
Oracle JDK OpenJDK
1. ****OpenJDK Oracle JDK OpenJDK JDK SUN SUN Oracle Oracle Oracle Oracle Oracle SUN JDK Oracle Java Java Oracle Java Oracle JDK OpenJDK Oracle JDK Oracle JDK OpenJDK [https://github.com/openjdk/jdk](https://github.com/openjdk/jdk)
2. ****Oracle JDK JDK17 3 3 JDK8u221 OpenJDK
3. ****Oracle JDK OpenJDK Java Flight RecorderJFRJava Mission ControlJMC Java 11 OracleJDK OpenJDK OracleJDK
4. ****OpenJDK LTS OracleJDK LTS OpenJDK OracleJDK LTS
5. ****Oracle JDK BCL/OTN OpenJDK GPL v2
> Oracle JDK OpenJDK
>
>
>
> 1. OpenJDK Alibaba OpenJDK Dragonwell8[https://github.com/alibaba/dragonwell8](https://github.com/alibaba/dragonwell8)
> 2. OpenJDK yum JDK OpenJDK Oracle JDK Oracle JDK JDK 8
> 3. OpenJDK Oracle JDK 6 OpenJDK 3 Oracle JDK OpenJDK Oracle JDK
>
> OpenJDK

**Oracle JDK OpenJDK **
OpenJDK OpenJDK AWS Amazon Corretto Alibaba Dragonwell
- BCL Oracle Binary Code License Agreement JDK
- OTN Oracle Technology Network License Agreement11 JDK
### Java C++ ?
C++ Java C++ C++
Java C++
- Java
- Java C++ Java
- Java (GC)
- C ++ Java Java
-
##
###
Java
1. ****
2. ****
3. **** Java

()
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 (`++`) (`--`)
`++` `--`
- **** `++a` `--a`/`b = ++a` `a` 1 `b`
- **** `a++` `a--`/`b = a++` `a` `b` `a` 1
**//**
```mermaid
flowchart LR
%%
classDef step fill:#4CA497,color:#fff,rx:10,ry:10
classDef example fill:#E99151,color:#fff,rx:10,ry:10
subgraph Prefix[" ++a / --a"]
direction TB
style Prefix fill:#F5F7FA,stroke:#E0E6ED,stroke-width:1.5px
P1["/"]:::step --> P2[""]:::step
P3["b = ++a 2 = -2"]:::right
end
subgraph URight[" >>>"]
style URight fill:#F5F7FA,stroke:#E0E6ED,stroke-width:1.5px
U1[" n "]:::uright
U2[" 0"]:::uright
U3[""]:::uright
U4["-8 >>> 2 = 1073741822"]:::uright
end
end
linkStyle default stroke-width:1.5px,opacity:0.8
```
Java
- `> n` x 2 n
- `>>>` : 0
`double``float`
`int``long``short``byte``char``int`
****
int / 32 %// 32 32%32=0/ 42 / 10 42%32=10 long / long 64 64
`x10``x >>>42``x >>> 10`
****
```java
int i = -1;
System.out.println("" + i);
System.out.println("" + Integer.toBinaryString(i));
i |"continue"| Continue["| Web Proxy Viewer | New URL | Original Page |