Java

Java Install sudo apt-get update sudo apt install openjdk-11-jdk Hello world public class Test { public static void main(String[] args) { System.out.println("Hello world!"); } } 指定JDK版本 export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home" export PATH=$JAVA_HOME/bin:$PATH:. 编译与打包 运行class # 编译java文件 javac Test.java # 会生成 Test.class # 运行编译后文件 java Test # 运行 Test.class # 指定 classpath 运行 java -classpath yourClassPath Test java -cp yourClassPath Test java -cp .:yourClassPath:yourClassPath2 Test # 默认为当前目录,多个 path 用分号分割 分离源文件与编译后文件 mkdir src && mv *.java src/ javac -d ./classes src/*.java # -d 表示生成的class文件存放位置 cd ./classes java Test 包管理 # add package echo "package here.there\n"`cat Test.java` > Test.java # 首行写包路径 mkdir here && mkdir here/there && mv Test.java here/there/ # 安装包路径创建文件夹 javac -d ../classes here/there/Test.java cd ../classes java here.there.Test # 运行时要指定包路径 JAR打包与运行 Working with Manifest Files: The Basics ...

January 1, 2000

JVM

JVM 概念 内存空间 程序计数器 虚拟机栈 本地方法栈 堆 方法区 运行时常量池 直接内存 垃圾回收 算法 引用计数法 可达性分析法 分配回收策略 Young Old 回收器 When to choose SerialGC, ParallelGC over CMS, G1 in Java? Serial:Mainly for single-cpu machine. Parallel:It uses multiple gc threads to handle heap, and perform stop-the-world pause during any gc. CMS:It’s designed to eliminate the long pause associated with the full gc of parallel & serial collector. G1:It’s low pause / server style gc, mainly for large heap (> 4Gb). ...

January 1, 2000

Maven

Maven Install Maven Ubuntu sudo apt install maven Manually 下载Binary tar.gz archive文件 安装 mkdir ~/.java cd ~/.java tar zxvf apache-maven-3.5.4-bin.tar.gz vi ~/.bash_profile export MAVEN_HOME=/Users/yizhenchen/.java/apache-maven-3.5.4 export M2_HOME=$MAVEN_HOME export PATH=$PATH:$MAVEN_HOME/bin source ~/.bash_profile 检查是否安装成功 mvn -v echo $M2_HOME 首次运行完mvn后会在"~“目录下创建”.m2"文件夹,作为本地仓库 配置Maven 修改配置文件 $MAVEN_HOME/conf/settings.xml ~/.m2/settings.xml 使用Maven 在项目中添加pom.xml文件 groupId: 一般为package名 artifactId: 一般为项目名 version: 版本 目录结构: Project pom.xml src main java resources test java resources target <groupId>here.there</groupId> <artifactId>MavenTest</artifactId> <version>1.0</version> 命令 clean:清空target目录 complie:编译工程 package:执行打包 install:发布到仓库 运行 ...

January 1, 2000