八个基本数据类型:
int float double long short char byte boolean
标识符:
1.字母,下划线,美元$开头
2.可以由字母,下划线,美元,数字组成
3.分大小写,无长度限制
4.不能是关键字
java不用ASCⅠⅠ字符集,使用Unicode标准国际字符集
局部变量 方法或语句块内部 从属于方法/语句块 从声明位置到方法或语句块执行完毕消失
成员变量(实例变量) 类内部,方法外部 从属于对象 与对象的创建与消失同步
静态变量 (类变量) 类内部,static修饰 从属于类 与类的加载与卸载同步
数据类型分为基本数据类型和引用数据类型
char定义字符 : ’ ’ str定义字符串 : " "(字符串是一个独立定义的类)
char的值在0-65535之间,通过(int)强制转化为int,可以看到对应数字
java从键盘获取为:
import java.util.Scanner
Scanner in = new Scanner(System.in);
String s = in.nextLine();
int i = in.nextInt();
类::
属性
方法
构造器(构造方法)
构造器(构造方法)
1.通过new调用
2.有返回值,但是不能定义返回值类型,不需要写return
3.若没有定义构造器,会自动定义一个无参的构造函数,若已经定义则不会自动添加
4.构造器的方法名与类名要一致
栈:(虚拟机栈)
1.描述的是方法执行的内存模型,每个方法被调用都会创建一个栈
2.JVM会给每个线程创建一个栈,存放线程执行方法的信息
3.栈为线程私有,不能共享
4.先进后出,后进先出
5.栈由系统自动分配,速度快,为连续的内存空间
堆:
1.用于储存创建好的对象和数组(数组也是对象)
2.JVM只有一个堆,被所有线程共享
3.堆是一个不连续的内存空间,分配灵活,速度慢
方法区:(静态区)(是一种规范)
1.是java虚拟机规范,可以有不同实现
i.jd7之前是永久代
ii.jdk7部分去除永久代,静态变量,字符串常量池挪到了堆内存中
iii.jdk8是元数据空间和堆结合
2.jvm只有一个方法区,所有线程共享
3.方法区也是堆,用于存储类和常量相关信息
4.用来存放永远不变或者唯一的内容