1.for和while循环的区别 1)格式不同;2)for循环内存要比while更节省内存空间。 2.break和continue的区别 break:不能单独使用,只能在switch语句或者循环语句中使用; continue:结束当前循环,立即进入下一次循环。 3.java方法(使用{}把代码包起来,并起一个名字) 1)有具体返回值的方法的定义(推荐赋值调用) 固定格式: public static 返回值类型 方法名(参数类型1 变量名1,参数类型2 变量名2....){ 方法中的业务逻辑代码... return 结果; } 接收的类型 变量名 = 方法名(实际参数列表) ; 俩个明确:明确返回值类型;明确参数类型以及参数个数。 2)没有具体返回值类型的方法的定义(只能单独调用) 固定格式:public static void 方法名(形式参数列表){ 方法体中的内容:直接输出 或者进行其他操作;(不需要return语句) } 方法名(实际参数列表) ; 俩个明确:明确返回值类型:没有具体返回值类型:使用void代替 明确参数类型以及参数个数 3)方法重载: 方法名相同,参数列表不同,与返回值无关; 参数列表不同:参数个数不同,参数类型不同。 4)方法的形式参数问题 如果方法的形式参数是基本数据类型,那么形式参数的改变不会影响实际参数。 如果方法的形式参数是引用数据类型(数组),实际参数传递数组对象,形式参数的改变会直接影响实际参数; String类型:特殊的引用类型:它的形式参数的改变不影响实际参数(String本质就是常量); 如果方法的形式参数是具体类,那么实际参数需要传递的是当前类的对象。 4.Java中的内存分配 栈:存储都是局部变量(在方法定义中或者方法声明上); 堆:new出来的东西,创建对象 (里面存储:"成员变量"); 方法区; 字节码文件区:class:存储字节码文件对象; 静态区 ; 常量池 :String "字符串就是一个常量"。 5.数组(存储多个数据的容器,必须保证容器中的数据类型一致)(格式:int[] arr 或者int arr[]) 1)定义格式:动态初始化 数据类型[] 数组名称 = new 数据类型[数组长度] ; 数据类型 数组名称[] = new 数据类型[数组长度] ; 静态初始化 数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3....} ; 数据类型 数组名称[] = new 数据类型[]{元素1,元素2,元素3....} ; 或者简化为: 数据类型[] 数组名称 = {元素1,元素2,元素3....} ; 数据类型 数组名称[] = {元素1,元素2,元素3....} ; 2)常见运行时异常问题 ArrayIndexOutOfBoundsException:数组角标越界异常。 NullpointerException:空指针异常。 3)遍历数组 System.out.print("[") ; for(int x = 0 ; x < arr.length ; x ++){ if(x==arr.length-1){ System.out.println(arr[x]+"]") ; }else{ System.out.print(arr[x]+", ") ; } } 4)冒泡排序(两两比较,较大的值往后放,第一次比较完毕,最大值出现在最大索引处,依次这样比较,得到排好序的数组) for(int x = 0 ; x < arr.length-1 ; x ++){//外层:比较的次数 for(int y = 0 ;y < arr.length-1-x; y++){ //内层循环:进行比较互换 //判断 if(arr[y] > arr[y+1]){ int temp = arr[y] ; arr[y] = arr[y+1] ; arr[y+1] = temp ; } } } 6.面向对象(三大特征:封装,继承,多态) 思想特点:1)更符合我们生活中的思想行为习惯2)把复杂的事情简单化3)从执行者到指挥者 7.类:能够描述现实世界真实事物的一组属性和行为的集合 (属性:成员变量;行为:成员方法。) 类名 对象名 = new 类名(); 对象名.属性名称(成员变量)= 赋值; 对象名.行为(成员方法名()) 8.成员变量和局部变量的区别: 1)书写位置不同 局部变量:在方法定义中或方法声明上; 成员变量:在类中,成员方法外定义的变量。 2)在内存中的位置不同: 局部变量:在栈内存中;成员变量:在堆内存中。 3)生命周期不同 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失; 成员变量:随着对象的创建而存在,随着对象的创建完毕之后,不会立即消失,而是等待GC(垃圾回收器空闲时回收掉)。 4)初始化不同 局部变量:可以先定义,但是必须要在使用之前赋值; 成员变量:可以不用初始化,它存在系统默认初始化。 9.匿名对象(没有名字的对象) 格式: new 类名(); 特点:可以作为参数进行传递 10.封装(把某个类的成员属性(成员变量)“私有化”,提供公共(public)访问形式,(setxxx()/ getxxx()) 目的:为了保证数据的安全性;私有化:关键字“private”,只能在本类中访问。 11.this关键字(解决局部变量隐藏了成员变量) this.成员变量名 = 局部变量; this:就是代表当前类的对象的地址引用。 12.构造方法 1)构造方法名和类名一致;2)没有具体的返回值类型(包括void) 目的:为了给类的成员的一些数据进行初始化。 分为无参构造方法(无参+setxxx()+getxxx())和有参构造方法(有参+getxxx())