Think In Java之Java基础(1-3章)

 
1.      基本类型如int,double等类型放在堆栈中,而对象放在堆中。堆栈中有一个指针,往下走就是分配内存,往上走就是回收内存,但是分配内存必须知道分配的类型和大小。堆中分配内存不必需要知道这些,是动态的分配,但是时间比堆栈要慢。
2.      在类中的属性可以自动赋初值,但是非类属性不会自动赋初值,会报异常。
3.      BigInteger支持任意精度的整数。BigDecimal支持任何精度的定点数。两者都是属于包装器的范围,但是没有对应的基本类型。
4.      子类向父类转型可以,但是不可以父类向子类转型。如:Animal animal = new Dog();可以通过。Cat cat = (Cat)animal;会报ClassCastException。new Dog()是在堆中分配一块儿内存,Animal animal = new Dog();是只截取内存中Dog()的一部分。Cat cat = (Cat)animal;当然会报错(个人观点)
5.      运行时绑定。子类复写父类中的方法,父类和子类中的方法在运行时绑定。如:Dog dog = new Dog();test(dog);//调用dog的noise()  test(Animal animal){animal.noise();}
6.      单根继承为垃圾回收提供了方便。
7.      在现实中不存在的对象的类应写成抽象类。
8.      在java中不是函数(function)而是方法(method)。
9.      面向对象就是对象之间互相传递消息,也就是调用对象的方法,传递参数。
10. 参数传递的是对象,实际上是传递的对象的引用。但对于基本类型来说是个例外。
11. Dog dog = new Dog(); Dog dog只是定义了一个引用,这个引用没有指向任何东西。new Dog()才分配内存空间,=则是把对象的地址赋给dog这个引用。
12. System是java.lang中的一个类,而out是System中的静态的PrintStream的字段。out是一个静态对象,所以才能调用print();所以才有了System.out.println();
13. Random()的如果没有传参,则会以当前时间为种子进行随机数。
14. 基本类型用=号比较,而对象使用eqals()比较。对象.equals(对象)默认比较的是引用。如果想比较对象本身的话则要在类中重载equals()方法。
15. System.out.println(true);则输出true。
16. 比int小的数值在运算之前,会自动转换成int。
17. 优先级:”前++”>”=”>”后++”
18. switch语句的判断条件必须为char或int
19. Math.random()会产生0到1之间的一个值(包括0.0但不包括1.0)。
20. 浮点数转成整型时会舍掉小数点后的位数,不是四舍五入。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值