java

1.  Java没有任何unsigned类型
2.  float类型的数值后面有一个后缀F,没有后缀F的浮点数默认为double类型
3.  if(x = 0)在C++中可以编译通过,其结果总为false,而在Java中,整数表达式x = 0不能转化为布尔值
4.  不能使用一个未被初始化的变量
5.  使用strictfp关键字标记的方法或者类要使用严格计算,这种方式计算可能产生溢出
6.  &&和||按照短路的方式求值,如果第一个操作数已经能够确定值,第二个操作数就不必计算&和|不是按短路运算,在得到结果之前一定要计算两个操作数的值
7.  +=是又结合的a+=b+=c就是a+=(b+=c)
8.  代码点和代码单元?
9.  String对象称为不可改变的字符串,编译器可以将字符串共享
10.只有字符串常量是共享的,而+或者substring等操作产生的结果都不是共享的。不要用==测试字符串的相等性,==运算符只能确定两个字符串是不是被放置在同一个位置
11.不能在嵌套的两个块中声明相同的变量,但在C++中可以
Public static void main(Stirng[] argc){
    Int n;
    {
        Intn;//这是错误的
}
}
12.Case标签必须是整数或者枚举常量,不能检测字符串
13.带标签的break只能跳出程序快而不能跳入程序块
14.两个大数值类的应用:BigInteger和BigDecimal任意精度的数值(在java.math.*)中
15.Java中可以允许数组的长度为0  newelementType[0]数组长度为0和nul值不同
16.一个数组的所有元素拷贝到另一数组中的方法System.arrayCopy(from,fromIndex,to,toIndex,count);
17.Java数组与C++数组在堆栈上有很大不同,不过基本上与分配在堆上的数组指针一样,也就是int[] a = new int[100],不同于int a[100]而等同于int * a = new int[100];
18.对数组排序使用Arrays类中的sort方法,此方法使用的快速排序
19.for each 循环访问二维数组:
for(type[] row:Arrayname){
    for(type x:row){
        do something
}
}
20.一个对象变量并没有实际包含一个对象,而仅仅引用一个对象,在Java中任何对象的变量都是对存储在另外一处的一个对象的引用,new操作符的返回的值也是一个引用。下面的语句:Date deadline = new Date();有两个部分,表达式new Date()构造了一个Date类型的对象,并且它的值是对新创对象的引用,这个引用被存储在变量deadline中。
21.可以将Java的的对象变量看做C++的对象指针,Date birthday 等同于 Date * birthday
22.Java中所有的对象都存储在堆中,当一个对象包含另一个对象变量时,这个变量依然包含的是指向另一个堆对象的指针。
23.对实例属性做出修改的方法被称为更改器方法,仅访问实例属性而不加修改的方法被称为访问器方法。
24.构造函数总是伴随着new操作符的执行被调用,Java对象都是在堆中构造的
25.将某个方法设置为内联方法是Java虚拟机的任务
26.不要编写返回引用可变对象的访问器方法(get方法)。在Employee类中
class Employee{
    public Data getHireDay(){
        return hireDay;
}
}
这样会破坏封装性
Employee harry =...;
Date d =harry.getHireDay();
double tenYear =10 * 365.25 * 24 * 60 * 60 *1000;
d.setTime(d.getTime()– (long)tenYear);
 
出错的原因是d和harry.hireDay引用同一个对象,对d的使用set方法就能够自动的改变这个雇员对象的私有状态。
如果需要返回一个可变对象的引用,应该首先对它进行克隆(clone).对象克隆指存放在另一个位置的对象副本
修改后的代码
calss Employee{
    public Date getHireDay(){
        return (Date)hireDay.clone();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值