java中的小细节

作者: 孤峰无涯_ | 来源:发表于2018-05-13 16:57 被阅读0次

                        java中的小细节

1)java中的负数用二进制表示是用补码的形式(负数的绝对值取反 加一):例如十进制的-1            正数: 符号位为0;负数: 符号位1                                                                                                  十进制的-1(int类型)用二进制表示:首先-1的绝对值1用二进制表示是:        00000000 00000000 00000000 00000001                                                                            取反:    11111111    11111111   11111111  11111110                                                                            加1:     11111111    11111111   11111111  11111111  也就是说int类型的-1用二进制表示就是:11111111    11111111   11111111  11111111

2) >>和>>>:前者是位运算表示右移(高位补符号位);后者表示逻辑右移(高位补0);也就是说两者如果是正数右移的话,结果没有什么区别,但是如果是负数的话就有区别了,前者结果还是负,后者就变成正了;

3)&和^这两个位运算符的两个小例子:

    例如:int num=new Random().nextInt(100);boolean a=(num&1==1)?true:false;这段代码的意思就是判断随机生成的num整数是不是奇数;

^的例子:int a=1,b=2;两个变量a和b互换位置: a=a^b;b=a^b;a=a^b;也可以这么写:a^=b;b^=a;a^=b;

4)默认值:Java中八种基本数据类型:boolean类型的默认值是:false;其他七种基本类型默认值都是0,只是表示方式不用(char的默认值是‘\u0000’,long的是:0L,float的是:0.0F,double的是:0.0),对象类型的默认值是:null;

5)break,continue,return三个关键字:                                                                                       break 除了在switch语句中使用以外,只是针对for循环的代码块,是结束循环的意思;               continue 只是用在for循环的代码块中,是跳出本次循环,继续下一次循环的意思;                   return 是针对方法的,是返回的意思 ,有返回值就返回返回值,如果没有就跳出方法,结束方法体的运行;

6)冒泡排序和选择排序: 

//冒泡排序;

for(int i=1;i<arr.length;i++){//相邻的元素比较, 每次找出最大的数,交换到数组末尾

    for(int j=0;j<arr.length;j++){//外层循环表示循环多少轮,内层循环表示每轮相邻的两个元素比较;

        if(arr[j]>arr[j+1]){

                //交换j和j+1两个位置的元素;

            }

    }

}

//选择排序:

for(int i=0;i<arr.length-1;i++){//某个元素和剩余的所有元素比较, 每次找出最小的数,交换到数组开头

    for(int j=i+1;j<arr.length;j++){//外层控制循环几轮,内层控制每轮循环比较的元素;

        if(a[i]>a[j]){

            //交换位置;

            }

    }

}

7)汉罗塔(递归):用java代码表示汉罗塔的过程;

如果要解决一个大问题可以分解成若干个小问题来解决,而小问题的解决跟这个大问题的思路是一样的;类似这样的大问题都可以用递归来解决;递归最重要的是要找到:递归的截止条件,不能无限的递归下去;

public class HanLuoTa{

    public static void main(String[] args){

        transfer(8,'a','b','c');

    }

    //把n个盘子,从from柱移动到to柱,借助于temp柱;

    public static void transfer(int n,char from,char to,char temp){

        if( n == 0) return;//递归的截止条件;

        //把n-1个盘子,从from柱移动到temp柱,借助于to柱;

        transfer(n-1,from,temp,to);

        //把第n个盘子,从from住移动到to柱;

        System.out.println(from+"------->"+to);

        //把n-1个盘子,从temp柱移动到to柱,借助于from柱;

        transfer(n-1,temp,to,from);

    }

}

相关文章

  • java中的小细节

    java中的小细节 1)java中的负数用二进制表示是用补码的形式(负数的绝对值取反 加一):例如十进制的-1 ...

  • Java开发每日复盘2018_0515

    今天跟大家分享几个Java小细节: 【1】「for each循环的写法」 【2】「常量 final 写法细节」 【...

  • Java中的BigInteger和BigDecimal中的小细节

    0.前言 最近在做一道编程竞赛题时遇到大整数的处理,想到了BigInteger,但是遇到了一个小问题却让我调试了很...

  • Java--封装的实现

    封装的实现-使用访问控制符 Java是使用“访问控制符”来控制哪些细节需要封装,哪些细节需要暴露的。Java中4种...

  • 并发编程艺术-5

    本文主要介绍java 中并发包中与锁相关的和组件,以及使用方式和实现细节。 Lock 的出现 : Java SE ...

  • 猿学-java学习中java传值最容易忽略一点小细节

    java学习 关于java传值的一点小细节:java语言中对象传递地址,而不是引用。 例如:假设对象Test有na...

  • java中线程的小细节

    什么是java中的主线程? java执行入口—main方法时,就启动了一个线程,该线程即java中的主线程。那么在...

  • PCH中的小细节

    第一:pch文件路径 第二:debug 宏定义

  • IM中的小细节

    一直对即时聊天APP很感兴趣,使用过程中脑子里经常会有各种各样的疑惑:如果把**功能变成**功能会怎样?然后就有了...

  • 生活中的小细节

    最几年总裁几乎常年在外地出差中,但每年一次的体检还是回来北京做的,他体检的医院又是北京常年火爆的医院,体检...

网友评论

    本文标题:java中的小细节

    本文链接:https://www.haomeiwen.com/subject/rfuldftx.html