Java重要基础

1.函数重载(overload)和函数覆盖(override)

重载(Overload)

在类中多个同名函数同时存在,具有不同的参数个数/类型。方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。

特点:与返回值类型无关,只看参数列表。
优点:方便阅读,优化设计

注意:不能有两个名字相同,参数类型,参数个数也相同却返回不同类型值的函数。

public class A{
    //show方法被重载
    public void show(){
    }
    //show方法被重载
    public void show(int a){
    }
}

覆盖(override)

出现在继承的关系中,子类中出现了与父类一模一样的方法时,会有覆盖操作。

特点:(1)静态函数只能覆盖静态函数;
(2)覆盖时,子类方法权限一定要大于父类方法权限
(3)不能抛出新的异常,或者父异常

应用情景:
当子类需要父类功能,而功能主体子类有自己特有功能时,可以复写父类中的方法,这样既包括了父类的功能,又定义了子类特有的功能。

public class A{
    public void show(){
        System.out.println("A");
    }
}
public class B{
    //子类B重写了父类A的show方法
    public void show(){
        System.out.println("B");
    }
}

2.集合相关

2.1判断List为空

if(null == list || list.size() ==0 ){
}

list.isEmpty()和list.size()==0 没有区别

isEmpty()判断有没有元素
而size()返回有几个元素
如果判断一个集合有无元素
建议用isEmpty()方法.这清晰,简明

但是list!=null和list.isEmpty()有什么区别呢?

这就相当与,你要喝水,前面就是判断是不是连水杯都没有,
后面就是判断水杯里面没有水,
连盛水的东西都没有,
这个水从何而来?
所以一般判断是

if(list!=null && !list.isEmpty()){
这里面取list中的值
}else{
做其它处理
}

来源:判断List为空](https://blog.csdn.net/Baple/article/details/8604585)

Map、List的嵌套

在返回json数据的时候,往往需要进行Map、list的反复嵌套。

不同于Python,Java需要先创建对象再使用,同时最好还指定相应的泛型。

例如,

HashMap<String, HashMap<String, Integer>> czbkMap = new HashMap<String, HashMap<String, Integer>>();

HashMap的嵌套

Map实现一对多

一般而言,一个key只允许出现一次。因此如何实现一对多呢?

Map<String,List> map = new HashMap<String,List>();
		List<String> list = new ArrayList<String>();
		list.add("a");
		list.add("b");
		map.put("mylist",list);
		List<String> results = (List<String>)map.get("mylist");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值