黑马程序员技术交流社区

标题: 裘-样+基础班基础知识交流 [打印本页]

作者: 裘-样    时间: 2015-9-11 00:22
标题: 裘-样+基础班基础知识交流
本帖最后由 裘-样 于 2015-9-11 00:28 编辑

复制代码
package com.itheima.javaday2;
/*
        今天是基础班的第二天,我整理了一下知识点,欢迎大家交流。
        1,常量可以直接被输出。
        2,变量(掌握),数据类型(掌握)。
        3,运算符(掌握)。
*/
class Demo
{
        public static void main(String[] args){
               
                //1,常量可以直接被输出。
                System.out.println("1,常量可以直接被输出:");
                System.out.println(123);
                System.out.println(12.5);
                System.out.println('a');
                System.out.println(true);
                System.out.println("------------------------------------");

                //2,变量(掌握),数据类型(掌握)
                System.out.println("2,变量(掌握),数据类型(掌握):");
                //2.1,整数类型。
                System.out.println("2.1,整数类型:");
                byte b = 127;//byte类型 一个字节
                short s = 511;//short类型 两个字节
                int i = 1234;//int类型 四个字节
                long L = 12431348917658L;//long类型 八个字节,需要在数据后加L
                System.out.println("b = "+b);
                System.out.println("s = "+s);
                System.out.println("i = "+i);
                System.out.println("L = "+L);
                System.out.println("-----------------");
               
                //2.2,浮点型
                System.out.println("2.2,浮点型:");
                float f = 12.3f;//float类型 四个字节,需要在数据后加f
                double d = 12.324341;//double类型 八个字节
                System.out.println("f = "+f);
                System.out.println("d = "+d);
                System.out.println("-----------------");

                //2.3,字符型和布尔型
                System.out.println("2.3,字符型和布尔型:");
                char c = 'w';//char类型 两个字节
                boolean bo = true;//boolean类型 不确定字节数,
                                                        //但可以认为是一个字节,其值只有true和false
                System.out.println("c = "+c);
                System.out.println("bo = "+bo);
                System.out.println("-----------------");

                //2.4,强制类型转换。
                System.out.println("2.4,强制类型转换:");
                int i1 = -130;
                byte b1 = (byte)i1;//涉及到原码、反码和补码
                System.out.println("-130强制类型转换之后b1的值为:"+b1);
                System.out.println("-----------------");

                //2.5,自动类型转换
                System.out.println("2.5,自动类型转换:");
                byte b2 = 127;
                int i2 = 1234;
                i2 = i2 + b2;
                System.out.println("这里进行了自动类型转换i2 = i2 + b2:"+i2);
                System.out.println("-----------------");

                //***2.6,类型转换面试题***
                System.out.println("***2.6,类型转换面试题***:");
                short s2 = 23;
                //s2 = s2 + 2;//这是错误的,左边自动提升为了int型,
                                                //右边为short型,编译出错
                s2 = (short)(s2 + 2);//等同于s2 += 2;
                System.out.println("s2 = "+s2);
                System.out.println("------------------------------------");
               
                //3,运算符(掌握)
                System.out.println("3.1,运算符:");
                //3.1,算术运算符 + - / * % ++ --
                System.out.println("3.1,算术运算符:");

                //3.1.1,加法
                System.out.println("3.1.1,加法:");
                int i311 = 3;
                byte b311 = 4;
                i311 = i311 + b311;
                System.out.println("3+4 = "+i311);
                System.out.println("------------");

                /*
                3.1.2,除法
                注意事项:
                        整数除以整数结果只能是整数。
                        如果需要精确一点的值,则可以用到浮点型float和double
                */
                System.out.println("3.1.2,除法:");
                int i312 = 2;
                short s312 = 5;
                System.out.println("5/2 = "+s312/i312);
                System.out.println("2/5 = "+i312/s312);
                System.out.println("------------");

                //3.1.3,取余
                System.out.println("3.1.3,取余:");
                int i313 = 2;
                short s313 = 5;
                System.out.println("5%2 = "+s313%i313);
                System.out.println("2%5 = "+i313%s313);
                System.out.println("------------");

                //***3.1.4,++和--***
                System.out.println("***3.1.4,++和--***:");
                int m = 1;
                int n = 1;
                m ++;
                ++ n;
                System.out.println("++单独使用,未参与运算时:");
                //可以看出++无论在什么位置都与m = m+1;的结果无异
                System.out.println("m的初始值为1,m++之后的值为:"+m);
                System.out.println("n的初始值为1,++n之后的值为:"+n);
                System.out.println("--------");
                System.out.println("++参与运算后:");
                /*
                可以看出++参与运算之后,位置不同结果不同。

                ++在后,先赋值后自增1
                (但是内存中的过程不是如此,
                而是先用一个临时变量存储m2的值,
                之后m2自增1,赋值的时候把临时变量存储的值赋值给变量m3)

                ++在前,先自增1后赋值
                */
                int m2 = 1,m3;//1
                m3 = m2++;
                System.out.println("m2的初始值为1,m3 = m2++之后的值为:"+m3);
                int n2 = 1,n3;
                n3 = ++n2;//2
                System.out.println("n2的初始值为1,n3 = ++n2之后的值为:"+n3);
               
                System.out.println("-----------------");
                /*
                3.2,逻辑运算符:& | ! ^ && ||
                一般使用 && 和 || 还有 !
               
                ***面试题***:
                & 和 &&的区别
                都是逻辑与的运算,但是&&是短路与,
                如果左边的为假就不需要判断右边的了,
                结果直接为假。
                而&是普通与,两边都需要进行运算之后再判断总的值。
                */
                System.out.println("3.2,逻辑运算符:");
                int i321 = 10;
                int i322 = 20;
                System.out.println(i321<15 & i322>15);
                System.out.println("-----------------");
               
                /*
                3.3,赋值运算符 = -= += *= /= %= <<= >>= >>>=
                -=等其他的赋值运算的左边必须为变量               
                */
                System.out.println("3.3,赋值运算符:");
                int i331 = 2;
                int i332 = 5;
                i332 %= i331;
                System.out.println("i332 %= i331的值为:"+i332);
                System.out.println("-----------------");

                /*
                3.4,位运算符 << >> >>>(无符号右移)
                当乘除的运算中被乘数或被除数为2的n次方时,
                可以用到位运算,速度较快。
                */
                System.out.println("3.4,位运算符:");
                System.out.println("8>>2的值为:"+(8>>2));
                System.out.println("-----------------");

                /*
                3.5,关系运算符 == != > < >= <=
                在判断语句中使用,其值为boolean类型
                */
                System.out.println("3.5,关系运算符:");
                int i351 = 4;
                int i352 = 5;
                System.out.println("4 == 5的值为:"+(i351 == i352));
                System.out.println("4 != 5的值为:"+(i351 != i352));
                System.out.println("4 >= 5的值为:"+(i351 >= i352));
                System.out.println("4 <= 5的值为:"+(i351 <= i352));
                System.out.println("4 > 5的值为:"+(i351 > i352));
                System.out.println("4 < 5的值为:"+(i351 < i352));
                System.out.println("-----------------");
                /*
                3.6,三元运算符 (布尔表达式)? 值a:值b
                        如果布尔表达式的值为true,则结果取值a,否则,取值b
                */
                System.out.println("3.6,三元运算符:");
                System.out.println("三元运算(1>2)?100:200的值为:"+((1>2)?100:200));
        }
}

作者: kevin986745zk    时间: 2015-9-11 08:55
整理的很详细,努力吧
作者: 裘-样    时间: 2015-9-11 21:20
kevin986745zk 发表于 2015-9-11 08:55
整理的很详细,努力吧

感谢你的肯定,我现在还在路上,需要努力前行,今天的也已经整理出来了,这也算是我的一种特殊的学习方式吧。。。
作者: 涛哥码    时间: 2015-9-11 21:24
整理得很好!!!受益了!!!
作者: wuming668    时间: 2015-9-11 21:30
太给力了
作者: 裘-样    时间: 2015-9-11 21:33
涛哥码 发表于 2015-9-11 21:24
整理得很好!!!受益了!!!

共同努力
作者: 裘-样    时间: 2015-9-11 21:35
wuming668 发表于 2015-9-11 21:30
太给力了

感谢你的肯定
作者: 七色★碎羽    时间: 2015-9-11 21:52
很详细阿
作者: 裘-样    时间: 2015-9-11 22:04
七色★碎羽 发表于 2015-9-11 21:52
很详细阿

学习之后的整理,一直在力求完善,希望在自己巩固知识的同时能够对其他人也有点作用。

今天看了一下自己的帖子之后,发现可以加入一个知识点。

面试题:
                        交换两个数的值,不使用第三方变量。
                        例子:
                                int a = 10;
                                int b = 20;
                        书面的:
                        a = a ^ b;
                        b = a ^ b = (a ^ b) ^ b = a;
                        a = a ^ b = (a ^ b) ^ a = b;
                        用上数值:
                        a = 10 ^ 20;
                        b = a ^ b = (10 ^ 20) ^ 20 = 10;
                        a = a ^ b = (10 ^ 20) ^ 10 = 20;




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