首页 > 代码库 > Java学习03
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.age30 }31 32 }33 34 class Exercise335 {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 ArrayExercise110 {11 public static void main(String []args)12 {13 //练习114 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也必须为static15 }16 /*17 其他方法18 */19 }20 21 class SingleDemo22 {23 public static void main(String []args)24 {25 Single s1 = Single.getSingle();26 /*27 其他操作28 */29 }30 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。