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.浮点数转成整型时会舍掉小数点后的位数,不是四舍五入。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值