1.一切都是对象

1. C++由于要后向兼容C所以某些方面显得复杂,而Java则假设我们只进行面向对象的程序设计。

String s; 这里创建了一个引用,引用不一定有关联的对象;

String s=abc"; 这是引用初始化,用到了java的一个特性:字符串可以用带引号的文本初始化;

String s=new String("abc"); 这是通过构造函数构造一个实例。

2. 有5个存储数据的位置:寄存器,堆栈,堆,常量存储和非RAM存储

寄存器:位于cpu内部,速度最快,数量有限,不能直接控制;

堆栈:RAM中,通过堆栈指针(向下分配向上释放)可以获得CPU直接支持,速度仅次于寄存器。缺点是需要知道确切的生命周期,好移动指针,限制了程序灵活性。

堆:RAM中,编译器不需要知道在堆中数据的生命周期,用户通过new自动分配。缺点是存储和清理慢。

常量:存在代码内部,安全,不会改变。

非RAM存储:数据存活于程序之外,程序不运行时候也可以存在,如流对象和持久化对象,这些可以不依赖于RAM。Java提供了轻量级持久化,也提供了JDBC和Hibernate这样的复杂数据库对象处理。

3. 基本数据类型

byte=8-bits=-128~127

char= 2个byte=16-bits=

int=4个byte=32-bits=-2^31-2^31-1

float=32-bits

double=64-bits

long=64-bits

此外Java还提供了两个高精度计算类:BigInteger和BigDecimal。

4.作用域问题
{

    int x=12;

    //x available

    {

        int q=2;

        //x和q都有效

        int x=34;    //java不允许,但是C++可以隐藏更大作用域的变量故而可以。

    }

    //x有效

}

5. 初始值问题

类的成员变量如果是基本数据类型,java会指定默认值(boolean:false, char:null, int/long/float/double:0),最好做初始化。

如果成员方法中的局部变量(int x;),则不会自动初始化,编译时会报错。

6. static修饰成员变量和方法

静态成员变量:只想为某特定域分配单一存储空间,而不考虑有多少对象或者没有对象。

静态方法:不与类的对象关联,即使没有创建对象也可以调用方法。main()作为应用入口,没有对象也必须可以执行,所以必须是static。

public class StaticTest {
	static int i = 47;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(StaticTest.i);
		StaticTest st1 = new StaticTest();
		StaticTest st2 = new StaticTest();
		System.out.println(st1.i + ":" + st2.i);    //47:47
		st1.i++;
		System.out.println(st1.i + ":" + st2.i);    //48:48
	}
}
7. javadoc

/** this is an sample javadoc

* @author Codnn

* @version 4.0

*/

@param name description

@throws exception

@return description

8. 编码风格 - 驼峰风格

组成类名的所有单词的首字母都要大写;

方法,成员变量等,首字母要小写。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值