1、 请说明++和--的区别?
1) 加号在后面是先运行后加,加号在前面反之
2) 减号在后面是先运行后减,减号在前面反之
2、关系运算符 ?
结果永远是一个boolean
1) == 检查如果两个操作数的值是否相等,如果相等则条件为真。
2) != 检查如果两个操作数的值是否相等,如果值不相等则条件为真。
3) > 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
4) < 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
5) >= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
6) <= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。
3、逻辑运算符
结果永远是boolean
1) && 称为逻辑 与运算符。当且仅当两个操作数都为真,条件才为真。
2) || 称为逻辑 或操作符。如果任何两个操作数任何一个为真,条件为真。
3) ! 称为逻辑 非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。
&&
1) 当左边条件为真时候,右边也为真的时候,才为真
2) 当左边条件为假的时候,右边为真的时候,为假
3) 当左边条件为真的时候,右边为假的时候,为假
总结:当左右都为真的时候,才为真,只要一边为假都为false
它具有短路功能:左边为假的时候,右边就不会执行了,只有左边为真的时候右边才会再去判断
||
当左右都有一个为真的时候,就是真
它具有短路功能:左边为真的时候,右边就不会执行了
!
取反操作,若使用了!为true时则为false,反之一样。
4、 自动数据类型转换
自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下:
byte,short,char->int -> long -> float -> double
总结:
1) 低转高:自动转换
2) 高转低:强制转换,需要加上括号写上强转类型
5、基本概念:二进制、位、字节、ASCII码是什么?
1)二进制:是计算机运算时用的一种算法,由1和0组成的一串数字。如:01000101
2)位:计算机硬盘上记录的信息都是二进制,也就是0和1这样的数字组合。称为位。
3)字节:是计算机信息技术用于计量存储容量的一种计量单位,通常情况下1字节等于有8位(二进制),也表示一些计算机编程语言中的数据类型和语言字符。
(1)在ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。
(2)英文标点占一个字节,中文标点占两个字节。
4)ASCII码:ASCII(AmericanStandard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
6、char 能不能存储一个中文字?为什么?
可以的,一个中文占两个字节,一个英文字符一个字节
7、为什么一个英文占一个字节,写两个字母,会报错?
因为它是字符,所以也占了两个字节
8、用最有效率的方法算出2乘以8等于几?
Sysotem.out.println(2<< 3);
2<< 3,因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2<< 3。