thinking in java 笔记 第一天

第一章 对象导论

  1. Java中,动态绑定是默认的,c#和c++一般会使用virtual来标识

  2. 对象的存储空间和生命周期可以在编写程序时确定,这可以通过将对象置于堆栈或者静态存储区,而动态分配在堆中,c#默认有一块托管堆

第二章 一切都是对象

  1. 在Java中,只有按值传递,在c++和c#中有引用传递
  2. 存储位置:
    • 寄存器:处理器内部
    • 堆栈:指针上移是释放内存,下移,分配内存(可以想象地址编码)
    • 堆:用于存放Java对象,而且编译器不需要知道存储在堆里的数据的生命周期
    • 常量存储:通常直接存放在程序代码内部
  3. 特例:基本类型,java的基本类型大小一定,且都有正负号,这是良好的可移植性的重要原因
  4. BigInteger/BigDecimal
  5. 基本成员默认值
    • 当变量作为类的成员使用时才会被自动初始化,当作为某个方法的局部变量时不适用
    • 如果声明局部变量x = 1,当则得到的可能是任意值,而不会被默认自动初始化为0
  6. 默认包名全小写
  7. static域
  8. 类的名字必须和文件名相同

第三章 操作符

  1. 别名现象:即表示两个引用引用同一个对象,一般包含传参别名和方法调用的别名
    • package com.zww.charpter3;
      
      public class Practice2 {
      
      	static void f(Tank t){
      		t.level = 30;
      	}
      	
      	public static void main(String[] args) {
      		// TODO Auto-generated method stub
      		Tank tank = new Tank();
      		tank.level = 10;
      		Tank tank1 = tank;
      		System.out.println("tank.level = " + tank.level);
      		tank1.level = 20;//parameter passing byname
      		System.out.println("tank.level = " + tank.level);
      		f(tank);//method alias
      		System.out.println("tank.level = " + tank.level);
      	}
      
      }
      
      class Tank{
      	float level; 
      }
  2. 整数除法会直接去掉结果的小数位,而不是四舍五入
  3. ==  equals
    • == !=比较的是引用
    • equals默认行为也是比较引用,但是大多数的类型都复写了这个方法,所以我们自己定义的时候要注意
  4. while(x = y){}只有当x,y都是bool值时才表明这句话没错
  5. java没有sizeof,因为所有类型长度相同,不需要sizeof
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值