<学习笔记> Java基础面试

Java和C++的区别是什么?

        Java和C++都是面向对象的语言,都支持继承、封装,多态。但是也有不同的地方。

1.Java的类是单继承的,C++的类是可以多继承的,但Java的接口可以多继承。

2.C++支持方法的重载和操作符的重载,但是Java仅支持方法的重载,因为操作符的重载增加了复杂性,与Java最初的设计思想不符。

3.Java有内存的自动管理垃圾回收机制,不需要手动释放内存,但是C++需要手动释放没有用的内存

4.Java不提供指针来直接访问内存,这使得程序内存更加安全。

标识符和关键字的区别?

        标识符就是给变量、方法,类起的名字,但是有一些标识符,Java已经赋予了特殊的含义,这些被赋予特殊含义的标识符就叫关键字。(如自家开了一家店,需要给店起一个名字,起的这个名字就是标识符,但是不能叫警察局,因为警察局是关键字。)

位移运算符:

带符号右移(>>)、左移(<<)、无符号右移(>>>)

由于 doublefloat 在二进制中的表现比较特殊,因此不能来进行移位操作。

移位操作符实际上支持的类型只有intlong,编译器在对shortbytechar类型进行移位前,都会将其转换为int类型再操作。

对于位移运算,如果位移的位数超过了数值所占有的位数会怎么样?

对于int类型左移/右移大于32位,会先对位移的位数做求余操作,再进行位移操作,比如需要位移32位,32%32=0,就表示不需要进行位移操作;需要位移42位,则相当于位移10位。如果是long类型,除数就改为64。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值