存储位置
1、寄存器(最快)
2、堆栈(RAM)
堆栈指针向下移动,分配新的内存,向上移动,释放内存;
3、堆(RAM)
通用内存池,存放java所有对象;
4、常量存储
嵌入式系统中,常量本身会与其他部分分开,在这种情况下,可以存放在ROM;
5、非RAM存储
如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在;如:流对象和持久化对象
对象的作用域
不同于基本类型,基本类型的生命周期在其作用域结束之后随之结束
eg:{
String s = new String(“a string”);
}
引用s在作用域重点就结束了,而s指向的String对象仍然占据内存空间,由new创建的对象,只要你需要,就会一直保存下去,否则被垃圾回收器回收;
默认值
基本类型 | 默认值 |
boolean | false |
char | '\u0000'(null) |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
* 当变量作为类成员使用时,java才确保给定其默认值,并不适用于局部变量
编码风格
- 整个包名小写,用‘ . ’来分目录级别;
- 类名首字母大写,如果是多个字母,首字母都要大写,不要用下划线;
- 方法、字段(成员变量)以及对象引用名称,标识符的第一个字母大写;
static关键字
class StaticTest {
static int i = 47;
}
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
即使创建了两个StaticTest对象,StaticTest.i也只有一份存储空间,这两个对象共享一个i;
即对于用static修饰的类,只有一份存储空间,而非是对每个对象有一个存储空间
编译运行
- cmd : javac 类名.java 进行编译 java 类名 运行
- 直接编译运行
注释和嵌入文档
1、注释
共三种类型注释文档
/** a class comment */
public class Documentation {
/** a field comment */
public int i;
/** a method comment */
public void f()
}
2、嵌入式html文档
- @see: 引用其他类
该标签允许用户引用其他文档,javadoc会在其生成的html文件中,通过@see标签链接到其他文档;
@see classname
@see fully-qualifitied-classname
- { @link package.class#member label }
该标签域see类似,只是用于行内,并且“label”作为超链接文本而不用“See Also”;
{@linkplain java.util.Locale locale}
- { @docRoot }
该标签产生到文档根目录的相对路径,用于文档树页面的显示超链接;
- { @inheritDoc }
该标签从当前这个类的最直接的基类中继承相关文档到当前的文档注释中;
- @version
@version version-information
“version-information”可以是任何包含在版本说明中的重要信息;
- @author
@author author-information
- @since
- @param
用于方法文档中
@param parameter-name description
- @return
@return description
- @throws
@throws fully-qualified-class-name description
- @deprecated