1,java中的一个语言特性,字符串可以用带引号的文本初始化。通常,必须对对象采用一种更通用的初始化方法。
2,5大存储数据的地方
- 寄存器
最快的存储区,因为它位于处理器内部。java中不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象,但是在C和C++中允许您向编译器建议寄存器的分配方式。
- 堆栈(栈)
位于通用RAM中,通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放内存。创建程序时,java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。这一约束限制了程序的灵活性,所以某些java数据存储于堆栈中——特别是对象引用,但是Java对象并不存储于其中。
- 堆
一种通用内存池(也位于RAM区),用于存放所有的Java对象。堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活多长时间。使用new运算符创建的对象都存在堆里。但是用堆进行存储分配和清理可能比用堆栈进行存储分配需要更长的时间。
- 常量存储
常量通常直接存放在程序代码的内部,这样做是安全的,因为他们永远不会被改变。
- 非RAM存储
数据完全存活于程序之外,那么它可以不接受程序的任何控制,在程序没有运行时也可以存在。两个基本的例子就是流对象和持久化对象。在流对象中,对象转化成字节流,通常被发送给另一台机器。在持久化对象中,对象被存储在磁盘上。
3,在java中所有的数值类型都有正负号,没有无符号的数值类型。(这点是和C++不同的)
4,java里是不允许这样写的:
{
int x = 12;
{
int x = 96;
}
}
c/C++中将一个较大作用域的变量“隐藏”起来的做法,在Java里是不允许的。因为Java的设计者认为这样做会导致程序混乱。
5,注意java中引用作用域和对象作用域的区别
{
String s = new String("a string");
}
出了花括号,引用s在作用域的终点就消失了。然而,s所指向的String对象仍然继续占据内存空间。那么Java如何才能防止这些对象填满内存空间,进而阻塞你的程序呢?Java有一个垃圾回收器,用来监视用new创建的所有对象,并辨别哪些不会在被引用的对象。随后,释放这些对象的内存空间,以便其他新的对象使用。
6,java中基本成员java编译器会赋默认值,而“局部”变量会赋随机值,java编译器认为随机变量未赋值是错误,而C++编译器只会发出警告。
7,在java中char具有两个字节,目的是提供对Unicode编码的支持;
8,注意java中的静态方法是可以通过对象的引用来调用的,这点和C++是有区别的。使用static关键字可以满足两方面的需要:其一:只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本不创建对象。其二:希望某个方法不与包含它 的类的任何对象关联在一起。
9,类的名字必须和文件名相同。且那个类必须包含一个main()的方法。否则编译器会报错。
10,javadoc是用于提取注释的工具,可以查找程序中特殊的注释标签。javadoc输出的是一个html文件,这样,该工具就使得我们只需创建和维护单一的源文件,并能自动生成有用文档。javadoc的方式主要有两种,一种是嵌入html,另一种是“文档标签”。javadoc只能为public和protected成员进行文档注释。其他的会被忽略掉。
11,java中编码规范,类名使用大驼峰,成员变量和成员函数使用小驼峰。