简单介绍一下 Java 程序的运行流程和内存分析。
首先简单介绍一下 Java 的历史与 Java 的核心机制。
Java 最初产生于 SUN 公司的 “Green” 小组,该小组由 James Gosling 领导,最初的名字叫 Oak,在发现该名称已被注册之后,改名为 java。从 1996 年 1 月到现在,Java 经历了不断的演变。1999 年 6 月,Java 体系被分为三个方向:J2ME(微型版,移动端)、J2SE(桌面版,桌面端) 和 J2EE(企业版,服务端)。如今 JavaSE 的长期支持版(LTS)已经发展到了 11 版。
Java 的两个基本的核心机制分别是 Java 虚拟机(JVM)和 Java 的垃圾回收器(GC):
javac -encoding 编码方式 -d 输出为字节码文件的路径 代码(相对)路径
。javac -encoding utf8 -d ../out/ ./src/*.java
,它表示以 utf-8
格式编码 ./src/
路径下的所有 Java 源文件,生成的字节码文件放到上一级目录的 out/
路径下。java 包名.类名
。java com.somedomain.util.DataMonitor
,包名实际上已目录结构的形式存在,并且通常以反向域名的方式形成多级目录结构,比如这里对应的目录结构为 ./com/somedomain/util/
,最后跟类名 DataMonitor
,它必须是在指定包内(目录结构下)存在的可运行字节码文件(类中包含作为程序入口的 public static void main()
方法)。登录后复制
public class UserTest {
public static void main(String[] args) {
int i = 10;
add(i); // 传递i中的字面值10
System.out.println("value of i in main() is " + i); // 10
}
public static void add(int i) {
i++;
System.out.println("value of i in add() is " + i); // 11
}
}
传递字面值
登录后复制
public class UserTest {
public static void main(String[] args) {
User u = new User("Tomas", 56);
System.out.println(u.name+"'s age before add() is "+u.age); // 1
add(u); // 传递u的内存地址
System.out.println(u.name+"'s age after add() is "+u.age); // 10
}
public static void add(User u) {
u.age ++;
System.out.println(u.name+"'s age within add() is "+u.age);
}
}
class User {
String name;
int age;
public User(String n, int a) {
name = n;
age = a;
}
}
传递对象地址
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删