JAVA SE、JAVA EE、JAVA ME之间什么关系?
- JAVA SE 是Java EE和Java ME的基础。包含Java语法和Java工具包,用于开发
桌面应用
- JAVA EE 是基于JAVA SE的一套开发WEB应用的
规范接口
,用于开发WEB应用
- JAVA ME 是基于JAVA SE的一套开发移动嵌入式应用的
规范接口
,用于开发移动嵌入式应用
JDK、JRE、JVM之间什么关系?
在命令行中,如何编译源文件到指定目录?
- 编译源文件到
target
目录
javac -d target src.java
- 源文件放在src(源目录),编译文件放在target(目标目录)
javac -d target -sourcepath src src/me.java
- 在目标目录内和外,执行.class文件有什么不同?
在内:java me
在外:
java -classpath target me
使用命令行如何进行jar打包?如何编译?如何运行?
- 打包jar
打包的对象是已编译文件.class,并非源码文件.java
jar -cf news.jar news
- 编译
javac -sourcepath src -classpath lib/me.jar;. -d target src/me
- 运行
java -classpath target;target/me.jar me
成员变量与数组初始化之赋值规则是什么?
成员变量包括:对象成员变量、类成员变量
整数类型(byte/short/int/long): 0
浮点类型(float/double): 0.0
字符类型(char): '\u0000' //空字符
布尔类型(boolean): false
类、接口、数组类型 : null
对象成员常量(public final int PI)、类成员常量(public final static int PI)
什么时候定义对象方法
?什么时候定义类方法
?
-
公用的、通用的、工具的 等功能都使用
类方法
-
对象方法
一般都是有对象的多样性决定的
当成员属性(类属性)的取值需要限制时,该如何实现?
- 使用枚举类
使用IDEA,能否在项目中,选择某个包或某些包来打包成jar?
不行
值传递与引用传递
- 基本数据类型
基本数据类型
都是使用值传递
int a = 15;
int b = a;
a = 25;
system.out.println(a); //25
system.out.println(b); //15
//带参方法调用
public void plus(int a, int b){
a = 100;
b = 200;
system.out.println(a); //100
system.out.println(b); //200
}
plus(a, b);
system.out.println(a); //25
system.out.println(b); //10
- 引用数据类型
引用数据类型
都是使用引用传递
,但字符串类型虽然是引用类型,却很特殊
int[] arr = {25, 100, 200};
int[] brr = arr;
arr[1] = 155;
for(int i : arr){
system.out.println(i); //{25, 155, 200}
}
for(int i : brr){
system.out.println(i); //{25, 155, 200}
}
- 字符串数据类型
虽然是引用数据类型,但实际效果看起来像是传值
## 字符串字面量是存在常量池,赋值就是常量池新建新的值
String s1 = "asdf";
String s2 = s1;
s1 = "bbbb";
system.out.println(s1); //bbbb
system.out.println(s2); //asdf
可变参数方法注意事项
如果方法有多个参数时,可变参数必须放在最后
public void plus(int a, int... b){
//代码
}
-
可使用数组赋值给可变参数
(不可以用可变参数赋值给数组)
int[] arr = {12,25,123};
plus(12,arr);
带有可变参数的方法重载的话,优先级最低
方法的重载与重写
- 重载
方法名相同,形参不同(类型、个数)返回值或修饰符可相同或不同都可以
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。