JAVA SE、JAVA EE、JAVA ME之间什么关系?

  1. JAVA SE 是Java EE和Java ME的基础。包含Java语法和Java工具包,用于开发桌面应用
  2. JAVA EE 是基于JAVA SE的一套开发WEB应用的规范接口,用于开发WEB应用
  3. 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);
  • 带有可变参数的方法重载的话,优先级最低

方法的重载与重写

  • 重载
方法名相同,形参不同(类型、个数)返回值或修饰符可相同或不同都可以

104828720
1.4k 声望222 粉丝

编程其实很枯燥,所以一定要有追求。