A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 渝小妹 于 2018-8-1 09:36 编辑

数据类型转换:1、隐式数据类型转换-取值范围肖的数据类型与取值范围大的数据类型进行运算,会先将小的数  据类型转换为大的数据类型,再进行运算。
2、强制转换的格式        bbb = (byte)(a + b);
     大转小可能会发生数据错误。

16 个回复

倒序浏览
把这些注意事项总结一下也是极好的
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
看你的ID就知道是老书虫了,仙路烟尘这本书很老的了,还比较小众。
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
每天都要总结哟
回复 使用道具 举报
小怪兽暖阳 发表于 2018-7-29 23:18
看你的ID就知道是老书虫了,仙路烟尘这本书很老的了,还比较小众。

间接说明年龄够大。
回复 使用道具 举报
day03笔记:
        1、算术运算符 : +,-,*,/,%,++,--;
                /:除得商;
                %:除得余;
        2、赋值运算符:=,+=,-=,*=,%=,/=;
                例:+=时 ,会默认做强转操作。使用时不会报错。b+=c 相当于b=b+c;
        3、关系运算符:==,!=,>,>=,<=;
                运算完成后,结果是布尔类型的值。
        4、逻辑运算符:&,|,^,!,&&,||
                逻辑运算符参与运算的是Boolean值,运算结果也是Boolean;
                        &相当于and,条件全部为true,结果才为true;
                        |相当于or,条件只要有一个是true,结果就为true;
                        ^相当于different异或,条件两边相同时结果是false,两边不同时结果是true;
                        !   取反;
                        && 有断路效果,在&&前面的表达式为false时,直接不执行后面的语句,结果为false,提高执行效率
                        || 同&&,只要有前面有一个为true,则后面的不执行,结果为true
        5、三元运算符:格式(关系表达式)?表达式1:表达式2;
                结果为true,执行表达式1;
                结果为false,执行表达式2.
               
       
        6、if(关系表达式-结果应为Boolean){执行体} else{}
                        只有()中的结果为true时,才执行  执行体。否则执行else 执行体
                共三种结构:
                        1、if(){}
                        2、if(){}
                                else(){}
                        3、if(){}
                                else if(){}
                                else if(){}.......
                                else{}
                例:水仙花数
                                public static  void forDemoSXH(){
                                        int count = 0;
                                        for(int i=100;i<=999;i++){
                                                int g=i%10;//个位数
                                                int s = i/10%10;//十位数
                                                int b = i/100;//百位数
                                                if(g*g*g+s*s*s+b*b*b==i){
                                                        System.out.print(i+"\t");
                                                        count++;
                                                }
                                        }
                                        System.out.println("水仙花数共有:"+count+"个");
                                }
                注:立方的函数为:Math.pow(5,3);即5的3次方。--返回值是double类型
        7、for循环。
                for(初始化语句;判断条件语句;控制条件语句) {循环体语句;}
                执行流程:
                        A:执行初始化语句
                        B:执行判断条件语句,看其结果是true还是false
                                如果是false,循环结束。
                                如果是true,继续执行。
                        C:执行循环体语句
                        D:执行控制条件语句
                        E:回到B继续
        8、while循环
                while(判断条件语句) {循环体语句;}
                        循环体语句中,可以对条件控制语句变量进行操作。
                do{循环体}while(判断语句);
                        先执行一次循环体,再判断while 的条件是否满足。
                       
        9、控制跳转语句
                break语句:
                        使用场景:
                                1、在选择结构switch语句中;
                                        注:switch语句格式:
                                                switch()
                                                        case 1: //符合条件1,执行下面的循环体
                                                                执行体;
                                                                break;
                                                        case 2://符合条件2,执行下面的循环体
                                                                执行体;
                                                                break;
                                                        .......
                                                        default
                                                                执行体;
                                2、在循环语句中;
                        break的作用:
                                跳出单层循环。
                                嵌套循环跳出最外层循环使用方法
                                        a:for(){
                                                b:for(){
                                                        break a;
                                                }
                                        }
                continue语句
                        中止当前循环,执行下一次循环。

       
        10、Random方法
                初始化方法:
                        Random r = new Random();
                        int num = r.nextInt(10);//定义变量num 获取Random方法产生的整型值。
                                                                        //“10”表示产生0-9十个整数,可以随便根据需求变化。0到N-1范围
                                                                        //nextInt()表示随机产生整数。
                       
        11、Scanner类
                把数据改进为键盘录入,提高程序的灵活性。
                创建对象:
                        Scanner sc = new Scanner(System.in);
                       
                接收数据:
                        int number = sc.nextInt();
                                        //创建变量number保存接收的数据
                                        //nextInt 中的Int表示接收int数据。此外还有double\line等类型
       
       
       
       
       
       
       
       
       
       
       
       
回复 使用道具 举报
day03笔记:
        1、算术运算符 : +,-,*,/,%,++,--;
                /:除得商;
                %:除得余;
        2、赋值运算符:=,+=,-=,*=,%=,/=;
                例:+=时 ,会默认做强转操作。使用时不会报错。b+=c 相当于b=b+c;
        3、关系运算符:==,!=,>,>=,<=;
                运算完成后,结果是布尔类型的值。
        4、逻辑运算符:&,|,^,!,&&,||
                逻辑运算符参与运算的是Boolean值,运算结果也是Boolean;
                        &相当于and,条件全部为true,结果才为true;
                        |相当于or,条件只要有一个是true,结果就为true;
                        ^相当于different异或,条件两边相同时结果是false,两边不同时结果是true;
                        !   取反;
                        && 有断路效果,在&&前面的表达式为false时,直接不执行后面的语句,结果为false,提高执行效率
                        || 同&&,只要有前面有一个为true,则后面的不执行,结果为true
        5、三元运算符:格式(关系表达式)?表达式1:表达式2;
                结果为true,执行表达式1;
                结果为false,执行表达式2.
               
       
        6、if(关系表达式-结果应为Boolean){执行体} else{}
                        只有()中的结果为true时,才执行  执行体。否则执行else 执行体
                共三种结构:
                        1、if(){}
                        2、if(){}
                                else(){}
                        3、if(){}
                                else if(){}
                                else if(){}.......
                                else{}
                例:水仙花数
                                public static  void forDemoSXH(){
                                        int count = 0;
                                        for(int i=100;i<=999;i++){
                                                int g=i%10;//个位数
                                                int s = i/10%10;//十位数
                                                int b = i/100;//百位数
                                                if(g*g*g+s*s*s+b*b*b==i){
                                                        System.out.print(i+"\t");
                                                        count++;
                                                }
                                        }
                                        System.out.println("水仙花数共有:"+count+"个");
                                }
                注:立方的函数为:Math.pow(5,3);即5的3次方。--返回值是double类型
        7、for循环。
                for(初始化语句;判断条件语句;控制条件语句) {循环体语句;}
                执行流程:
                        A:执行初始化语句
                        B:执行判断条件语句,看其结果是true还是false
                                如果是false,循环结束。
                                如果是true,继续执行。
                        C:执行循环体语句
                        D:执行控制条件语句
                        E:回到B继续
        8、while循环
                while(判断条件语句) {循环体语句;}
                        循环体语句中,可以对条件控制语句变量进行操作。
                do{循环体}while(判断语句);
                        先执行一次循环体,再判断while 的条件是否满足。
                       
        9、控制跳转语句
                break语句:
                        使用场景:
                                1、在选择结构switch语句中;
                                        注:switch语句格式:
                                                switch()
                                                        case 1: //符合条件1,执行下面的循环体
                                                                执行体;
                                                                break;
                                                        case 2://符合条件2,执行下面的循环体
                                                                执行体;
                                                                break;
                                                        .......
                                                        default
                                                                执行体;
                                2、在循环语句中;
                        break的作用:
                                跳出单层循环。
                                嵌套循环跳出最外层循环使用方法
                                        a:for(){
                                                b:for(){
                                                        break a;
                                                }
                                        }
                continue语句
                        中止当前循环,执行下一次循环。

       
        10、Random方法
                初始化方法:
                        Random r = new Random();
                        int num = r.nextInt(10);//定义变量num 获取Random方法产生的整型值。
                                                                        //“10”表示产生0-9十个整数,可以随便根据需求变化。0到N-1范围
                                                                        //nextInt()表示随机产生整数。
                       
        11、Scanner类
                把数据改进为键盘录入,提高程序的灵活性。
                创建对象:
                        Scanner sc = new Scanner(System.in);
                       
                接收数据:
                        int number = sc.nextInt();
                                        //创建变量number保存接收的数据
                                        //nextInt 中的Int表示接收int数据。此外还有double\line等类型
       
       
       
       
       
       
       
       
       
       
       
       
回复 使用道具 举报
仙路烟尘 发表于 2018-7-30 16:27
day03笔记:
        1、算术运算符 : +,-,*,/,%,++,--;
                /:除得商;

继续努力
回复 使用道具 举报
仙路烟尘 发表于 2018-7-30 16:29
day03笔记:
        1、算术运算符 : +,-,*,/,%,++,--;
                /:除得商;

回复 使用道具 举报
仙路烟尘 发表于 2018-7-30 16:27
day03笔记:
        1、算术运算符 : +,-,*,/,%,++,--;
                /:除得商;

回复 使用道具 举报
仙路烟尘 发表于 2018-7-30 16:29
day03笔记:
        1、算术运算符 : +,-,*,/,%,++,--;
                /:除得商;

继续努力
回复 使用道具 举报
仙路烟尘 发表于 2018-7-30 16:29
day03笔记:
        1、算术运算符 : +,-,*,/,%,++,--;
                /:除得商;

继续努力哟
回复 使用道具 举报
小伙子,继续加油哟!
回复 使用道具 举报
day04笔记:
                数组
                        数组是存储多个变量的(元素)的东西(容器);
                                注:这多个变量的数据类型要一致。
                                        数组既可以存储基本数据类型,也可以存储引用数据类型。
                        数组的定义格式:
                                1、int[] array;//数据类型【】 数组名;
                                2、int array1[];//数据类型 数组名【】;
                        数组初始化方式(在内存中分配空间):
                                1、数据类型[] array = {1,2,3}; //静态初始化
                                2、数据类型 array[] = new 数据类型[];//动态初始化,默认值0.
                内存存放:
                        基本数据类型:
                                        直接存储在栈内存中;
                        数组(引用数据类型):
                                        在栈内存中存储数据在堆内存中的地址;
                                       
                数组元素的使用:
                                格式:数组定义 数据类型[] 数组名 = new 数据类型[数组长度];
                                          使用数值的元素:数组名[角标值]
                        例:        数组 : Int[] arr = new int[3];
                                        取值: arr[0] 取数组中的第一个值
                                                  arr[1] 取数组中的第二个值

                               
                使用数组时常见的异常:
                        1、java.lang.ArrayIndexOutOfBoundsException
                                数组角标越界异常
                                产生的原因:就是你访问了不存在的索引元素。
                        2、java.lang.NullPointerException
                                空指针异常
                                产生的原因:数组已经不指向堆内存的数据了,你还使用数组名去访问元素。
                                例: 1、array = null;//此时array已经不存储指向堆内存的地址了。
                                         2、引用类型的数组,默认值也是null;
                                         
/*
        局部变量和成员变量的区别:
                1、定义位置不同
                        定义在类中的变量是成员变量
                        定义在方法中或者{}里面的变量是局部变量
                2、在内存中的位置不同
                        成员变量存储在堆内存的对象中
                        局部变量存储在栈内存的方法中
                3、生命周期不同
                        成员变量随着队形的出现而出现在堆中,随着对象的消失而从堆中消失
                        局部变量随着方法的运行而出现在栈中,随着方法的消失而从栈中消失
                4、初始化不同
                        成员变量因为在堆内存中,所以有默认的初始化值
                        局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。
                //方法中如果出现局部变量和成员变量重名的情况,可以在成员变量名前面加上  this.  来区别成员变量和局部变量。
               
        引用数据类型:
                1、类   ----   是引用数据类型;//包括Scanner,Random等
                2、引用数据类型与引用类型的数组类似,引用类型的自定义类型的变量,直接变量时,结果为对象地址值;
               
               
                3、ArrayList集合
                        数组可以保存多个元素,但在某些情况下,无法确定到底要保存多少个元素,此时,数组不好使了;
                        解决方法可以选择ArrayList集合 //ArrayList集合可以看作时一个长度可变的数组。
                       
                        1、集合的创建
                                1、导包
                                2、创建对象:与其他普通的引用数据类型创建方式完全相同,但要指定容器中存储的数据类型
                                        ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();
                                        //<>括号中的数据类型,必须是引用数据类型,不能是基本数据类型
                        2、集合的常用操作
                                1、添加 :add()\add(index,xxx)
                                2、删除某索引并返回该元素 :remve(index)
                                3、清空集合中的所有元素 :clear()
                                4、指定某索引元素修改 :set(index,xxx)
                                5、获取某索引元素值 :get(index)
*/
        String类:
                1、字符串是常量,一旦被赋值,就不能被改变
                        /*String ss = "abc";//在堆内存中开辟空间
                                ss="abcd";                //
                                System.out.print("ss");
                                输出的结果为abcd,原因是,ss="abcd"是在堆内存中重新开辟的空间,存储的abcd
                        */
               
                创建格式:  String str = new String("abc");
                                        String str1="abc";
                方法:
                        charAt();//返回值为 char ,返回指定索引的值。
                        length();//返回字符串的长度。
                        contains()、isEmpty();//判断是否包含、是否为空=============返回值为Boolean类型
                                                                       
                        valueOf();//静态方法。将其他类型的值,转换为string类型====还可以     ""+value
                                                //char\boolean\long\int\double\float\object父类
                                               
                                               
        String[]数组:
                定义方式:
                        String str[] = new String[];//同其他数组
                       
                       
                        String a = new String();//定义String对象。默认空字符串"";仅在此情况下。
                                                                        //没有new的情况下,String str1 ;此时,默认值是null。
                                                               
/*
        //随机打乱牌的顺序
        public static String[] randomPai(String[] pai){//pai 是有顺序的牌
                Random r = new Random();
                int length = pai.length;//得到牌的数量
                boolean[] isEx = new boolean[length];//用来记录是否有这个随机数的数组
                String[] newPai = new String[length];//用来存放打乱顺序的数组
                int count = 0;
                for(int i = 0;i<isEx.length;i++){
                        int rand = r.nextInt(54);//产生随机数0-53
                        if(isEx[rand]){
                                i--;//表示已经重复  该次循环重置
                        }else{//表示没重复  把拍放到行数组 并在在isEx数组中把变量改为true
                                newPai[count]=pai[rand];
                                isEx[rand] =true;
                                count++;//打乱顺序的牌个数+1
                        }
                }
               
                return newPai;//打乱顺序的新牌数组
               
        }
       
*/
回复 使用道具 举报
               
day05笔记:IO流,IO异常 需要在方法处加上抛出异常 throws IOException  
        FileWriter类:
                用于写入字符流。====文本文件。
                如果是其他基本类型时:使用String.valueOf,直接转为字符串
                如果是引用类型,使用String.valueOf,会将该变量转为地址字符串
               
                使用方法:
                        1、构造方法:FileEriter(String filename) 传入一个文件的路径  
                                //FileWriter fw = new FileWriter("a.txt") 创建一个对象,调用系统资源创建a.txt(相对路径,项目根目录中、也可以指定绝对路径)
                                        //因\有转义作用,所以输入绝对路径时需要写两次\\;例:d"\\workspace\\a.txt.
                                //默认是覆盖写入,若想追加写入,则在定义的时候,在文件路径后面加入  ,true
                        2、write(String str) 向文件中写str
                                //fw.write("孙旭朋")
                        3、void flush() 将内存中的数据刷新到文件中
                                //fw.flush();
                        4、void close() 关闭释放系统底层资源。
                                //fw.close();        方法、程序结束时,必须要写
                       
                        //注:flush,close都有将数据刷新到文件中的功能
                                        //区别:close是关闭流,执行之后不能再使用流;flush只刷新,可以重新使用。
                        write方法:
                                1、void write(String str):写一个字符串数据
                                2、void write(String str,int index,int len):写一个字符串中的一部分数据
                                        //String s="HelloWorld";
                                        //fw.write(s,0,5);=======sop(Hello)
                                3、void write(int ch):写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以写char对应的int类型的值。'a',97
                               
                                4、void write(char[] chs):写一个字符数组数据
                                        //char[] chs = {'a','b'};
                                        //fw.write(chs);========sop(ab)
                               
                                5、void write(char[] chs,int index,int len):写一个字符数组的一部分数据
                        getEncoding
                                获取文件的编码格式
                               
        FileReader类:
                使用的方法:
                        FileReader fr = new FileReader("b.txt")
                                //int chr
                                //while((char=fr.read())!=-1){
                                //        fr.read();
                                }
                        read()
                                读取文件中的单个字符。返回作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1

                        read(char[] xx)
                                将字符读入数组,读取的字符数,如果已到达流的末尾,则返回 -1 。
                               
                        read(char[] cbuf, int off,int len)
                                将字符读入数组的某一部分,读取的字符数,如果已到达流的末尾,则返回 -1

                                参数:
                                        cbuf - 目标缓冲区
                                        off - 开始存储字符处的偏移量
                                        len - 要读取的最多字符数



                               
                       
                       
                       
                       
                getEncoding方法
                                获取文件的编码格式
                               
        BufferedReader
                //从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取;
        BufferedWriter
                //将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入
                定义方式:
                BufferedReader bf = new BufferedReader(new FileReader("a.txt")
               
                readLine()方法:
                        读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。
                        返回:包含改行内容的字符串,不包含任何行终止符,如果已经到达流末尾,则返回 null
                       
                skip(long n)方法:
                        跳过字符
                        参数:n - 要跳过的字符数
                        返回:实际跳过的字符数。
                               
                write()方法:
                        1、write(int c)
                                写入单个字符
                        2、write(char[] cbuf,int off,int len)
                                写入字符数组的某一部分。
                                        一般来说,此方法将给定数组的字符存入此流的缓冲区,根据需要刷新该缓冲区,并转到底层流。但是
                                        如果请求的长度至少与此缓冲区大小相同,则次方法将刷新该缓冲区并将各个字符直接写入底层流。因此多余的BufferedWriter
                                        将不必复制数据
                               
                        3、write(String s,int off,int len)
                                写入字符串的某一部分。如果 len 参数的值为负数,则不写入任何字符。这与超类中此方法的规范正好相反,它要求抛出 IndexOutOfBoundsException。

                        4、newLine()
                                写入一个行分隔符。行分隔符字符串由系统属性 line.separator 定义,并且不一定是单个新行 ('\n') 符。

回复 使用道具 举报
仙路烟尘 发表于 2018-8-2 16:40
day05笔记:IO流,IO异常 需要在方法处加上抛出异常 throws IOException  
        FileWriter类:
                用于写入 ...

这一堆让人眼花缭乱的代码~~~牛逼
回复 使用道具 举报
仙路烟尘 发表于 2018-8-2 16:40
day05笔记:IO流,IO异常 需要在方法处加上抛出异常 throws IOException  
        FileWriter类:
                用于写入 ...

小伙子,加油哟,这两天好好预习预科班的知识哟。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马