黑马程序员技术交流社区

标题: 基础知识 [打印本页]

作者: zhao0506    时间: 2016-8-31 21:35
标题: 基础知识
1.什么是变量?变量的定义格式?要使用变量需要注意什么?
     变量就是在程序运行中其值变化的量
         变量格式:  数据类型 变量名 = 变量值;
         注意:1,在同一作用域中不能定义同一个变量.
              2,变量使用时必须赋值.
                  3,在一行上建议写一条语句.

2.Java中的数据类型分几类?基本数据类型有哪些?
   数据类型分为:基本数据类型和引用数据类型.
        基本数据类型:
                1,整数型
                  byte     1个字节      -128~127
                  short    2个字节
                  int      4个字节
                  long     8个字节
                 2,浮点型
                  float    4个字节
                  double   8个字节
                 3,字符型
                  char     2个字节     0~65535
                 4,布尔型
                  boolean
                  




3.数据类型转换:
        隐式转换:取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
        强制转换:取值范围大的数据类型与取值范围小的数据类型进行运算,会先将小的数据类型提升为大的,再强制转换成范围晓得类型做运算


        面试题:
                第一题:
                byte b1=3,b2=4,b;
                b=b1+b2;
                b=3+4;
                哪句是编译失败的呢?为什么呢?
         b = b1 + b2;会失败,因为b1和b2是byte类型,运算中会自动提升类型转化为int类型,损失精度.




                第二题:
                byte  by = 130;有没有问题?有问题如何解决?结果是多少呢?
                有问题,byte取值范围为-128~127,130已经超出byte的范围.    int by = 130;       


                第三题:
                byte b = 10;
                b++;
                b = b + 1;
                哪句是编译失败的呢?为什么呢?
         b = b + 1;会编译失败,因为1为int类型,程序运行中变量b的类型会提生,有损运行精度.



4.常见的算术运算符有哪些?
        (1)+运算符的作用有哪些?  
        代表正号,做加法运算,字符串的连接符
       
        (2)除法和取余的区别?
          取余:获取的是除法的余数
          除法:获取两个数的结果

        (3)++和--的使用规则?
         单独使用        ++,--在前和++,--在后 , 结果是一样的
         参与运算的使用

                 ++或--在前,先进行自加1 , 然后在参与运算
                 ++或--在后,先参与运算 , 然后在进行自加1


5.常见的赋值运算符有哪些?
        (1)+=运算的作用是什么?
          把左边和右边进行相加,然后在赋值给左边的变量
       
        (2)扩展的赋值运算符有什么特点?
                扩展赋值运算符包括+=,-=,*=,/=,%=.把左边和右边做加,减,乘,除,取余运算,然后赋值给左边。



6. short s = 1; s = s + 1;有没有问题?如果有怎么解决?
                有问题,因为1为int类型,程序运行中变量b的类型会提生,有损运行精度.

   short s = 1; s += 1;有没有问题?如果有怎么解决?
        s += 1;相当于s =(short)(s + 1)隐含了强制类型转换.
               



7.分析以下需求,并用代码实现:
        (1)已知一个三位数,请分别获取该三位数上每一位的数值
        (2)例如:123的个位、十位、百位,分别是3、2、1
        (3)打印格式"数字123的个位是 3, 十位是 2, 百位是 1"
        class Demo{
                public static void main(String[] args){
                        int a = 123;
                        System.out.println("数字123的个位是"+a%120+" ,"+ "十位是"+ a%100/10+","+ "百位是"+ a%122);

                }
        }



8.看程序说结果,请不要提前运行?
        public class Test1 {
                public static void main(String[] args) {
                         int x = 4;
                         int y = (--x)+(x--)+(x*10);
                         System.out.println("x = " + x + ",y = " + y);
                }
        }

                        x=2;y=26
       




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2