Java基础知识—基本类型和运算

1.1 java中的基本数据类型

基本数据类型
int长度数据类型:byte(8bit)、short(16bit)、int(32bit)、long(64bit)
float长度数据类型:单精度(32bit float)、双精度(64bit double);
boolean类型变量取值:true/false
char数据类型:unicode字符(16bit)
Java还对基本数据类型进行了封装(字符型Character,布尔类型Boolean,数值类型Byte,Short,Integer,Long,Float,Double)

java中默认小数是double类型的,直接写的整型数字是int类型

引申:

  1. java中的null值不是一个合法的object实例,编译器没有为其分配内存,null只是将引用变量的值全部置0;
  2. Java语言中变量分为原始值和引用值,声明为基本类型的变量存储的都是实际值;声明为引用类型的变量,存储的是实际对象的地址。String x = null,定义了一个变量“x” 存放的是String引用,为null;

1.2 什么是不可变类

不可变类是指当创建这个类的实例之后,就不允许修改它的值。Java类库中所有基本数据类型的包装类是不可变类,String类也是不可变类;

1.3 值传递和引用传递的区别

  • 值传递
    在方法调用中,实参会把它的值传给形参,形参只是用实参的值初始化一个临时的存储单元,因此形参和实参的值相同,但是存储单元不同,改变形参的值不会影响实参的值;

  • 引用传递
    方法调用中,传递的是对象的地址,形参和实参的对象指向的是同一存储单元,形参的改变会影响实参的值。

Java中基本数据类型在传递参数时都是按值传递,包装类型在传递时是按引用传递;

1.4 不同数据类型的转换有哪些规则

转换规则:
从低精度向高精度转换,优先级满足byte<short<char<int<long<float<double;

类型转换

  • 类型自动转换
    低级数据可以自动转换为高级数据类型类型转换
    char类型数据转换为高级类型(int、long),会转换为对应的ASCII码;
    byte、char、short类型的数据在参与运算时会自动转换为int;
    基本数据类型和boolean类型之间不能相互转换;

  • 强制类型转换
    强制类型转换1
    强制类型转换2

1.5 强制类型转换的注意事项

例如对于语句short s1 = 1;s1 = s1+1;由于s1+1在运算时将结果变为int类型,s1是short类型,所以编译器会报错;short s1 =1;s1+=1中"+="是Java语言中规定的语法,会直接将s1转换为int类型;

1.6 运算符的优先级

运算符优先级
如何不确定运算符的优先级,最好使用括号运算符来控制运算顺序;

1.7 Math类中的round、ceil和floor方法的功能

  • round表示四舍五入,在原数的基础上先增加0.5在向下取整;
  • ceil的功能是向上取整,Math.ceil(a),取大于a的最小整数值,返回值类型是double
  • floor是向下取整,Math.floor(a),取小于a的最大整数值,返回值类型是double;

1.8 ++i和i++有什么区别

i++是在程序执行完毕后进行自增;
++i是在程序开始执行前进行自增;

1.9 如何实现无符号数的右移

">>"执行右移操作时,参与运算的数字为正数,则在高位补0;若为负数则在高位补1;
">>>"无论正数还是负数都在高位补0;
"<<"左移运算符,左移n位表示原来的值*2的n次方;

1.10 char型变量是否可以存储一个汉字

Java语言中默认采用Unicode编码方式,每个字符占用两个字节,可以用来存储中文。中文占用两个字符,英文占用一个字符,采用这种存储方式的一个重要作用就是减少所需要的存储空间,提高存储效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值