java四月份总结
JAVA学习知识点小结
命名规则:
- 类名:首字母大写,驼峰命名规则
- 方法名,局部变量:首字母小写,驼峰命名规则;
java是值传递: Java中只有值传递,没有引用传递。值传递和引用传递的根本区别是有没有变量的拷贝,或者说有没有变量的副本。
- 什么是值传递?
我自己还不是很彻底了解,等后续过来补
- 什么是引用传递?
未完待续~~~~~~
参考知乎:
[值传递和引用传递详细解释](https://zhuanlan.zhihu.com/p/349689029
方法的定义:
修饰符 返回值类型 方法名(形参列表)
{
方法体
return 返回值(可以终止方法);
}
-
修饰符(可有可无) :public(公开的) static(静态的)
-
返回值类型 :void(空)
数据类型(Int, double,string)
-
方法名:首字母小写,遵循驼峰命名规则
-
形参列表(可有可无):传参传的是值,起决定性作用的是参数类型,不是变量名
-
方法调用时压栈,方法结束弹栈;
-
栈顶元素最活跃
方法重载:
意义:功能相似,尽可能让方法名相同,只要记住一个方法名
- 方法名必须相同
- 参数列表必须不同(起决定性作用的是参数类型),可以是形参个数不同,形参顺序不同,类型不同等
- 返回值类型可以不同,也可以不同
- 仅仅返回值类型不同,不能当作判断方法重载的判断
可变参数
递归:
就把return a * diGui(a-1)这一行代码改了就变成了递归,自己调用自己,把后面的当作一个整体。
发现这个挺好玩的。
package demo;
public class Demo7 {
public static void main(String args[])
{
int sum = diGui(5);
System.out.println("递归的值:sum = "+ sum);
}
public static int diGui(int a) {
if(a==1) {
return 1;
}else {
return a*diGui(a-1);
}
}
}
边界条件;
前阶段:
返回阶段:
栈(Java运行是一层一层的压栈,直到栈满为止)
作业:
数组
-
声明数组
数据类型[] 变量;int[] a;
数据类型 变量[]; int a[];
-
创建数组
数据类型 变量名 = new 数据类型[长度];
int [] a = new int[10];
int 默认初始化为 0 ;
string 默认初始化为 null;
自己画图 栈,堆内存的分配
数组的使用:
反转数组
冒泡排序:
-
重点掌握 数组最右边的那个数时结束:数组长度减一 减去第一层循环的数;
-
定义一个变量来接收 存储转换数组时
-
for(声明语句 (数据类型 变量名): 数组){
数组声明中使用的语句;
}
- for(int n : a)
package com.java.arrarydemo;
public class ArrayDemo1 {
public static void main(String args[]){
paiXu();//从小往大排序
}
public static void paiXu(){
int a[] = { 1,3,9,4,5,1,25,7};
for(int i = 0;i<a.length;i++){
for(int j = 0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int x = a[j];
a[j] = a[j+1];
a[j+1] = x;
}
}
}
for(int n : a){
System.out.println(n);
}
}
}
稀疏数组
- 把复杂的问题简单化,相同的值一样,不同的值用数组存放起来
面向对象和面相过程
java中所有的class都是引用数据类型
java虚拟机中堆,栈,方法区内存
垃圾回收器主要针对堆内存,栈内存变化最频繁,最先有数据的是方法区内存
空指针异常:
实例变量
访问实例变量要先创建对象
通过对象去访问:
引用.变量名;
封装: 所有属性私有化,private进行修饰,修饰的所有数据只能在本类中访问
封装的步骤:
private 加在属性前面
对外提供接口:
get (读取)
set(修改)
私有的属性不能在外部直接访问,这就是封装l
操作入口变成了只能通过set和get方法进行访问
在set方法和get方法执行过程中可以进行安全过滤
构造方法:
- 修饰符列表 方法名(形参列表)
{
方法体;
}
-
系统默认提供无参构造方法
-
自定义有参构造方法,需手动创造无参构造方法
-
构造方法没有返回值,构造方法名和类名一致。
-
作用:通过构造方法的调用可以创建对象
-
调用: new 构造方法名(实参列表);