1. 数据的输入/输出

     标准输入输出流

          字符输入:

char c = (char)System.in.read();

          字符串输入:

BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
                   String str = buf.readLine();

          使用System.out输出 

            (标准输出流System.out)提供的如下方法

            (1)print()方法:实现不换行的数据输出; 

            (2)println()方法:与上面方法的差别是输出数据后将换行。

    使用javax.swing.JOptionPane

          showInputDialog方法获取字符串

          showMessageDialog弹出消息显示对话框.


2. 常用的数学方法

java.lang.Math类的主要方法 

int abs(int i) 
          int ceil(int i1,int i2)      大于等于d的最大整数
          double floor(double d) 小于等于d的最大整数
          double random()         返回大于等于 0.0 且小于 1.0的 double 值
          long   round(double d)  最靠近d的长整数
          double log(double d) 
          double exp(double x) 
          double pow(double a, double b) 
          double sqrt(double a) 
          double cos(double d)

     /*由于让系统产生随机数使用

        0~9的随机数 (int)(Math.random()*10);

        0~999的随机数 (int)(Math.random()*1000);

        a~b的随机数 (int)(Math.random()*(b-a));

        其实Math的random方法用的就是util包中的Random类

        因此可以Random.nextDouble()替换Math.random()       

     */   


3. 交换两个数值的三种方法

  1.借助temp
  2.a = a+b; //有局限性
     b = a-b;
     a = a-b;
  3.a = a^b; //技巧性写法
     b = a^b;
     a = a^b;


4. 进制转换的问题

     二进制与十进制,八进制,十六进制的转换都是以二进制作为桥梁

       注意负数的二进制是正数取反+1,所以最高符号位都是1.  

   重点写一下十进制用代码实现转二进制、八进制、十六进制的代码. 

1     //法一: 查表法+递归函数 实现十进制与任意进制的转换, 可以轻度使用,因为递归太消耗资源
 2     //本想返回String类型, 但是递归过程中每个函数相互独立,所有递归在一定范围内可以简化代码
 3     public static void method1(int i,int radix){
 4         char[] charmap = new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
 5         if(i<0)
 6             throw new RuntimeException("系统正在升级中,目前暂不支持计算负数的功能");
 7         else if(i>0){
 8             method1(i/radix,radix);
 9             System.out.print(charmap[i%radix]);
10         }            
11     }
12     
13     //法二: 模仿计算机的位运算实现十进制与任意进制的转换. 发现思考得更久,不过发现花的时间越长, 但是比方法一好, 但是和API的Integer.toSring还有差距.以后再说.
14     //思路: 1.进行&操作   2.无符号右移        
15     //判断条件: 如果数不为0的话继续循环.       60    16
16     public static String method2(int i,int radix){
17         if(i==0){
18             System.out.println('0');
19             return null;
20         }
21         char[] charmap = new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
22         StringBuilder sb = new StringBuilder();
23         while(i!=0){            
24             sb.append(charmap[i&radix-1]);
25             //得到偏移量,用到了初等数学知识, 不过我觉得还是定义数组好, 可以思考一下, 不就是用一点内存.
26             i=i>>>(int)(Math.log(radix)/Math.log(2));
27         }
28         return sb.reverse().toString();
29     }



5.两个三角形

*****

****

***

**

*

从大到小,变初始条件

for(int i=0;i<length;i++)
for(int j=i;j<length;j++)


*

**

***

****

******

从小到大,变判断条件

for(int i=0;i<length;i++)
for(int j=0;j<=i;j++)


6. 魔方阵初识 和 螺旋矩阵的思考


  mark一下,有时间再写.


7. 字符与整型变量的转换


          Integer.parseInt(String) :将数字字符串转化为整数 



          Double.parseDouble(String) :将字符串形式的数字数据转化为双精度数。