Java学习03

  回忆一下昨天所学。昨天主要学习了Java中的函数,以及面向对象的一些知识。

  1.Person p = new Person("张三",25);

  这句话,java是如何执行的?

      (1)加载Person.class到内存中

  (2)执行static代码块初始化类,有的话

  (3)开辟内存,初始化成员变量

  (4)显示初始化成员变量

  (5)构造代码块执行

  (6)对应对象的构造函数初始化

  2.static关键字的用法,在函数中没有使用到类的特有变量的时候

  注意,static函数只能调用static变量或函数

  3.this语句

  (1)用来区分内部变量和外部变量同名问题

  (2)本类构造函数间调用

  4.学会制作文档说明书

  文档注释  

  /**

  XXXXXXX

  @author zhangsan

  @version 1.1

  */

 

  /**

  @param  s 

  */

  5.java中的23种设计模式,了解其中的单例模式

  6.数组的一些使用注意点,越界问题,遍历,查找,

 1 /*
 2     练习一下类
 3 */
 4 
 5 class Person
 6 {
 7     {
 8         System.out.println("person start!!");    //构造块
 9     }
10     private String name;
11     private int age;
12     Person()
13     {
14         System.out.println("i am a person!");
15     }
16     Person(String name,int age)
17     {
18         this();   //调用Person()
19         this.name = name;
20         this.age = age;
21     }
22     public void setAge(int age)
23     {
24         this.age = age;
25     }
26 
27     public int getAge()
28     {
29         return age; //this.age
30     }
31 
32 }
33 
34 class Exercise3
35 {
36     public static void main(String []args)
37     {
38         Person p = new Person();
39         System.out.println(p.getAge());
40 
41         Person p1 = new Person("zhangsan",20);
42         System.out.println(p1.getAge());
43 
44         p1.setAge(25);
45         System.out.println(p1.getAge());
46     }
47 } 
 1 /*
 2     练习1:定义一个数组,输出数组中的最大值和最小值
 3     思路:将第一个值设为最大值和最小值。
 4           遍历数组
 5 
 6     练习2:对数组进行排序
 7     **排序中最快的是希尔排序
 8 */
 9 class ArrayExercise1
10 {
11     public static void main(String []args)
12     {
13         //练习1
14         int[] arry = new int[]{23,12,4,45,9,36};
15         int max = arry[0];
16         int min = arry[0];
17         for(int i = 1;i < arry.length;i++)
18         {
19             if(arry[i]>max)       
20             {
21                 max = arry[i];
22             }
23             if(arry[i]<min)
24             {
25                 min = arry[i];
26             }
27         }
28         System.out.println("max="+max+"\nmin="+min);
29 
30         //输出原数组
31         printArray(arry);
32         //选择排序
33         sortArray(arry);
34         printArray(arry);
35         
36         //冒泡排序
37         bubbleSort(arry);
38         printArray(arry);
39     }
40 
41     //练习2  
42         //选择排序
43         public static void sortArray(int[] arry)
44         {
45             for(int i=0;i<arry.length-1;i++)  //排序的次数
46             {
47                 for(int j=i+1;j<arry.length;j++)
48                 {
49                     if(arry[j]<arry[i])
50                     {
51                         int temp;
52                         temp = arry[i];
53                         arry[i] = arry[j];
54                         arry[j] = temp;
55                     }
56                 }
57             }
58         }
59 
60         //冒泡排序
61         public static void bubbleSort(int[] a)
62         {
63             for(int i=0;i<a.length-1;i++)
64             {
65                 for(int j=0;j<a.length-i-1;j++)
66                 {
67                     if(a[j]>a[j+1])
68                     {
69                         int temp;
70                         temp = a[j];
71                         a[j] = a[j+1];
72                         a[j+1] = temp;
73                     }
74                 }
75             }
76         }
77 
78     //输出数组
79     public static void printArray(int[] a)
80     {
81         for(int i=0;i<a.length;i++)
82         {
83             System.out.print(a[i]+" ");
84         }
85         System.out.println();
86     }
87 }
 1 /*
 2     数组的学习。
 3     java中的内存分为5个区域。现在先了解栈和堆。
 4     main中定义的变量都存放在栈中,而用new分配的内存在堆中。
 5     栈中的内存会自动释放,而堆中的内存由java的垃圾回收机制来释放。
 6 */
 7 class ArrayStudy
 8 {
 9     public static void main(String []args)
10     {
11         /*
12         int[] a = new int[5];
13         System.out.println(a[0]);
14         */
15         int[] b = new int[]{1,2,3,4,5};
16         printArray(b);
17         
18         System.out.println();
19 
20         int[] c = {2,4,6,8};
21         printArray(c);
22     }
23 
24     //用函数输出数组中的所有元素
25     public static void printArray(int[] arr)
26     {
27         int index;  //定义索引
28         for(index=0;index<arr.length;index++)
29         {
30             System.out.println("["+index+"]="+arr[index]);
31         }
32     }
33 }
 1 /*
 2     练习:十进制转换成二进制,16进制(查表法)
 3 
 4     int[][] a = new int[3][]  //要注意
 5 */
 6 
 7 class Exercise2
 8 {
 9     public static void main(String []args)
10     {
11         //toHex(60);
12         int[][] a = new int[2][];
13         System.out.println(a);
14         System.out.println(a[0]);
15         System.out.println(a[0][0]);//空指针异常!!
16     }
17     /*
18             输入60的16进制
19             每4位二进制是一位16进制
20     */
21     public static void toHex(int num)
22     {
23         char[] c = {‘0‘,‘1‘,‘2‘,‘3‘,        //查找表
24                     ‘4‘,‘5‘,‘6‘,‘7‘,
25                     ‘8‘,‘9‘,‘a‘,‘b‘,                
26                     ‘c‘,‘d‘,‘e‘,‘f‘,};
27         char[] res = new char[32]; //存放结果
28 
29         int pos = res.length;   //存放的位置
30 
31         while(num!=0)
32         {
33             int temp = num & 15;    //得到末4位
34             res[--pos] = c[temp];    //将末4位转换成16进制,并存入res[]
35                                     //另一种方法,char(temp-10+‘a‘)
36             num = num >>> 4;
37             //右移4位,左边补0,与最高位无关。
38         }
39 
40         //输出结果
41         for(int i = pos;i<res.length;i++)
42             System.out.print(res[i]);
43             System.out.println();
44     }        
45 }

深刻理解单例模式

 1 /*
 2     单例模式:在内存中只能有一个对象
 3 */
 4 
 5 class Single
 6 {
 7     private Single()
 8     {
 9         System.out.println("单例模式!");
10     }        //私有构造函数,外部无法生成对象
11     private static Single s = new Single();         //成员变量都申明成私有
12     public static Single getSingle()    //保证单例,只能用类来调用
13     {
14         return s;     //要访问s,s也必须为static
15     }
16     /*
17         其他方法
18     */
19 }
20 
21 class SingleDemo
22 {
23     public static void main(String []args)
24     {
25         Single s1 = Single.getSingle();
26         /*
27             其他操作
28         */
29     }
30 }

 

 

Java学习03,布布扣,bubuko.com

Java学习03

上一篇:java jersef rest接收html表单提交


下一篇:java 解析国密SM2算法证书