[Java]学习笔记(一)

一、Java是一门WORA(write once, run anywhere)的语言。

二、Java的基本类型:

Java基本类型
基本类型 大小 最小值 最大值 默认值
boolean - - - false
char 16 bits unicode 0 unicode 2^16-1 '\u0000'null
byte 8 bits -128 127 (byte)0
short 16 bits -2^15 +2^15-1 (short)0
int 32 bits -2^31 +2^31-1 0
long 64 bits -2^63 +2^63-1 0L
float 32 bits IEEE 754 IEEE 754 0.0f
double 64 bits IEEE 754 IEEE 754 0.0d
void - - - -


特点: 跨平台,任何机器和平台上基本类型的范围都不会改变,因此在java中没有sizeof操作符;

Java中的基本类型都是有符号的,会存在有符号移位<<和>>、无符号右移>>>。

三、对象的存储位置:

基本类型在栈上,类对象在堆上。堆上的内存由Java Garbage Collection回收。

四、C语言回顾:

const int 和 int const等价;

const int* a表示a可以指向任何int型的常量;

int const* a表示a为指针常量,指向位置不可修改。

五、==操作符:

基本类型用于比较值,类对象用于比较引用。

对于String,String s1 = "123", s2 = "123";

s1 == s2 返回true,但在使用new申请空间时则返回false。

与equals()的区别:==可适用于所有的类型对象,而equals不适用于基本类型。

六、短路问题:

当一个表达式的值在某一步可以确定后,之后的部分操作可能就不会执行了。

七、移位操作符:

>>>不带符号右移:用0扩展;

<<带符号左移:用0扩展;

>>带符号右移:用符号位扩展。

八、sizeof操作符:

Java中没有,原因前面提到过。

之所以称之为操作符而不是函数是因为可以直接sizeof a,a为变量;对于类型则必须加括号,sizeof(int)。

九、静态方法:

1. static说明该方法是属于类本身的方法,而不是类对象的方法。

2. 设一个类StaticTest,存在一个对象st,静态方法display(),则最好使用StaticTest.display(),而不要用st.display()或display()。

3. 在静态方法中访问非静态数据d:编译时就会出问题——无法从静态上下文中引用非静态变量d,非静态数据只有在实例化对象之后才能被访问。

4. 一个类中所有对象共享static数据。

十、public表示方法是公用的,可以给其他Java文件调用。

十一、如何理解“条件操作符和if-else完全不同,因为它会产生一个值”?

十二、逗号操作符与逗号分隔符:

逗号操作符在Java中唯一用到的地方是for循环的初始化部分和步进部分,且该部分的变量类型必须相同;

逗号分隔符用于分隔函数/方法的不同参数。

十三、初始化与创建:

概念上讲,两者彼此独立。

Java中,两者捆绑在一起,不可分离。

十四、构造器:

1. 构造器本身无任何返回值,与返回值为空(void)不同:

ClassName(ArgsList) {

......

}

2. 默认构造器:一旦程序员写了一个构造器,则默认构造器将被销毁、无法使用。

十五、方法重载:

使用方法名相同而形参不同来区别方法。

不能使用返回值来区分方法重载,因为会存在一个方法调用而不赋给任何变量的情况,如f()。

你可能感兴趣的:(java,unicode,sizeof)