1.标识符-----什么是标识符
标识符就是程序中给变量、类、方法命名的符号。
规则;
1.标识符可以是字母数字下划线和美元符组成,但不能是以数字开头
2.标识符不可以是java的关键字和保留字,但可以包含关键字和保留字
3.标识符不能包含空格
4.标识符只能包含美元符不能包括#@等
这里提一下关键字:
具备特殊用途的单词被称作关键字
eg: new 、 class 、 public 、 private 、 int 、short 、try…
2.常量与变量(什么是常量池)
常量:常量就是不变的量,java通过final来修饰常量;常量不能被修改,否则报错
那什么是常量池?在类加载完成,经过验证准备阶段之后,在堆中生成字符串实例,然后将该对象字符串实例或者其引用存到String pool中.
解读2:常量池指的是在编译器被确定,并保存在已编译的.class文件中的一些数据。它包括关于类,方法、接口中的常量,也包括字符串直接量。
String s0 = "hello";
String s1 = "hello";
String s2 = "he" + "llo";
java 会保证每个字符串常量只有一个,不会产生多个副本。例子中s0和s1在编译器就被确定了,所以S0 == S1,而“he”+"llo"也是字符串常量,当一个字符串由多个字符串常量连接而成时,他本身也是字符串常量。所以s2也是常量池中“hello”的引用。
- 常量池的作用?有待解决
变量以及作用:
程序所用的数据都会保留在内存中,程序员需要一种机制来访问内存中的数据,这种机制就叫做变量,每个变量都代表某一小块内存。变量是有名字的,程序对变量赋值,就是把数据装入变量所代表的内存区域的过程。
3.数据类型
byte 1位 short 2位 int 4位 long 8位
char 字符型通常用于表示单个字符,字符型值必须使用单引号括起来
4.运算符
运算符是一种特殊的符号,用来表示运算、赋值、比较等。
&:按位与 |:按位或。 ~按位非
&&:与 ||或 !非
7.数组
1.java要求所有的数组要具有相同的数据类型
2.数组的定义方式 是String[] str;
3.数组用来存储多个数据,每个数组元素存放一个数据,通常可通过数组的索引来访问数组元素。
4.java中数组要先初始化才能使用。一旦为数组分配了控件,每个内存空间里存储的内容就是该数组元素的值,即使这个内存空间存储为空,也是一个值null
5.数组的初始化有两种方式
1.静态初始化:由程序员显示为数组指定初始值。
2.动态初始化:由系统为每个元素指定初始值。
6.数组也是一种引用类型变量。
7.数组的引用存放在占内存中,数组的元素存放在堆内存中。
问题:为什么要分堆内存和占内存。
当一个方法被执行的时候,每个方法都会创建自己的内存占栈,栈内存主要为了存储方法的参数或变量值,而对象则存储在堆内存中,因为对象的创建成本特别高,所以,所以,一些临时数据存放在栈中,当方法使用完毕后,这些数据则会被销毁。而对象只要有引用只想它,它就不能被销毁。