一.Java环境的配置
1.JDK SDK JRE JVM
- JDK(Java Development Kit) JAVA开发工具包
- SDK(Software Development Kit)软件开发工具包
- JRE(Java Runtime Environment) JAVA运行环境
- JVM(Java Virtual Machine)虚拟机
关系大致如图:
JDK = JRE + javac.exe(编译工具)+jir.exe(打包工具)
JRE = JVM + 类库
JDK用于开发(编译、执行、打包),而JRE只用于执行。另外,由于Eclipse等IDE具有自己的编译器,所以只需要JRE就可以了。
Java提出的“一次编写,到处运行”是建立在JRE基础之上的
Java的.class文件可以放到任何装有JRE的机器上运行
开发java应用程序需要JDK,运行java程序需要JRE
2.环境配置
具体配置方法:详细教程
二.Java编译器
1.安装idea
2.idea常用快捷键
快捷键 | 作用 |
---|---|
Alt+Enter | 导入包,自动修正代码 |
Ctrl+Y | 删除光标所在行 |
Ctrl+D | 复制光标所在行的内容,插入光标位置下面 |
Ctrl+Alt+L | 格式化代码 |
Ctrl+/ | 单行注释,再按取消注释 |
Ctrl+Shift+/ | 选中代码注释,多行注释,再按取消注释 |
Alt+Ins | 自动生成代码,toString, get, set等方法 |
Alt+Shift+上下箭头 | 移动当前代码行 |
ctrl+R | 本页面替换 |
ctrl+F | 本页面查询 |
ctrl+shift+R | 全局替换 |
ctrl+shift+F | 全局查询 |
Ctrl + O | 查看我们继承的类或者接口中的方法,以及我们要实现的方法 |
Ctrl+Alt+T | 将代码包在一个块中,例如try/catch ;synchronized等 |
ctrl +S | 保存代码(默认idea自动保存) |
二.Java基础知识
1.数据类型
数据类型 | 占用字节 | 默认值 | 封装类 |
---|---|---|---|
byte(字节型) | 1 | 0 | Byte |
short (短整型) | 2 | 0 | Short |
int(整型) | 4 | 0 | Integer |
long (长整型) | 8 | 0.0L | Long |
float (浮点型) | 4 | 0.0F | Float |
double (双精度浮点型) | 8 | 0 | Double |
char (字符型) | 2 | \u0000 | Character |
注意:String不是基本类型,是包装类型
下面,我们来介绍一下,什么是包装类
2.包装类
(1)装箱拆箱
- 装箱: 从基本类型转换为对应的包装类对象
- 拆箱: 从包装类对象转换为对应的基本类型
public class packingclass {
public static void main(String[] args) {
//构造方法
Integer in1=new Integer(111);//划横线说明已经过时了
System.out.println(in1);//重写了toString方法
Integer in2=new Integer("111");
System.out.println(in2);
//静态方法
Integer in3=Integer.valueOf(111);
System.out.println(in3);
Integer in4=Integer.valueOf("111");
System.out.println(in4);
//拆箱
int i=in1.intValue();
System.out.println(i);
}
}
(2)自动装箱拆箱
import java.util.ArrayList;
public class packingclass2 {
public static void main(String[] args) {
//自动装箱:直接把int类型的整数赋值包装类
//Integer in=1;就相当于Integer in = new Integer(1);
Integer in = 1;
in = in + 2;
//自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本类型数据再计算
//in+2 就相当于 in.intValue()+2;
ArrayList<Integer> list = new ArrayList<>();
list.add(1); //-->自动装箱list.add(new Integer(1));
int a = list.get(0); //-->自动拆箱list.get(0).intValue();
}
}
(3)基本类型与字符串之间转换
基本类型–>字符串
- 基本类型的值+""
- 包装类静态方法toString(参数),不是Object类的toString重载
static String toString(int i)返回一个表示指定整数的String对象 - String类静态方法
static String valueOf(int i)返回 int参数的字符串表示形式
字符串–>基本类型
- 使用包装类的静态方法parsexxx(“字符串”);
- Integer类:static int parseInt(String s)
- Double类:static double parseDouble(String s )
public class packingclass3 {
public static void main(String[] args) {
int i1 = 100;
String s1 = i1 + "";//最简单方法,工作中常用
System.out.println(s1 + 200);//100200
String s2 = Integer.toString(100);
//包装类静态方法toString(参数),不是Object类的toString重载
//static String toString(int i)返回一个表示指定整数的String对象
System.out.println(s2 + 200);//100200
String s3 = String.valueOf(100);
//static String valueOf(int i)返回 int参数的字符串表示形式
System.out.println(s3 + 200);//100200
//字符串-->基本类型
//使用包装类的静态方法parsexxx("字符串");
int i = Integer.parseInt(s1);
System.out.println(i + 100);//300
}
}
3.成员变量、局部变量、静态变量
根据定义变量位置的不同,可以将变量分为成员变量和局部变量。
成员变量:
-
定义在一个类的变量在方法外
-
分为:
静态属性:随类的存在而存在,是在类加载的初始化
非静态属性:随实例的属性存在而存在 -
成员变量可以不显式初始化,它们可以由系统设定默认值
-
成员变量存在于堆内存
-
创建对象过程为:
- 分配空间。
- 创建父类对象。
- 初始化成员变量。
- 调用构造方法创建一个对象。
局部变量:
- 局部变量是定义在一个方法内的变量
- 局部变量不能加static,protected, private, public等。局部变量保存在栈中。
- 局部变量没有默认值,所以必须设定初始赋值
- 局部变量存在于栈内存
静态变量:
-
类中方法外,用static修饰
-
生命周期:JVM第一次读到这个类并加载类时开始,类销毁不存在。
-
类加载过程:
- 加载父类(如果父类已经加载过,则不在加载)。
- 初始化静态属性 。
- 按顺序的初始化静态代码块 初始化的前提就是分配空间 。
-
静态变量存在于方法区即静态区(方法区包含整个程序中唯一存在的元素)