总结一些java中的基础知识
总结一些java中的基础知识
困觉的曼巴er 发表于2年前
总结一些java中的基础知识
  • 发表于 2年前
  • 阅读 7
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 很多概念时间久了就容易模糊

1、得到程序的路径

String path = request.getContextPath();
String basePaht = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort+path+"/";

(1)request.getContextPath()得到项目工程的名称,比如有个Test项目,得到的就是:/Test

(2)request.getScheme()返回协议名称,默认是http

(3)request.getServerName()返回程序所在服务器的名称,如果是本机则返回localhost或127.0.0.01

(4)request.getServerPort()返回服务器的端口号。

2、抽象类和接口相关问题

(1)抽象类中可以没有抽象方法,但只要有抽象方法的类就是抽象类。抽象类不能被实例化。如果要调用一个抽象类中的非抽象方法,可以将该方法声明为static。

(2)没有抽象方法的抽象类有什么意义?依然可以被继承,只是没有子类必须覆盖的方法,并且可以防止其他类实例化该类的对象。

(3)继承一个抽象类必须实现它中所有的抽象方法,如果有没有实现所有的抽象方法该类也必须声明为abstract。

(4)抽象类因为要被继承才会有意义所以其关键字不能用private,缺省状态下默认为public。抽象类中可以有成员变量,成员变量也可以声明为私有。

(5)接口中可以定义成员变量和方法,但变量都会隐式地声明为public static final,不能声明为私有,方法也都是public abstract。一个类实现一个接口就必须实现该接口中所有的方法,除非这个类是抽象类。

(6)一个类只可以继承一个抽象类,但可以实现多个接口。

(7)抽象类是对事物的封装,而接口是对行为的封装。对于抽象类,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,子类可以不进行变更;而对于接口则不行,如果接口进行了变更,则所有实现这个接口的类都必须进行相应的改动。

(8) 下面看一个网上流传最广泛的例子:门和警报的例子:门都有open( )和close( )两个动作,此时我们可以定义通过抽象类和接口来定义这个抽象概念:

抽象类:

abstract class Door {
    public abstract void open();
    public abstract void close();
}

接口:

interface Door {
    public abstract void open();
    public abstract void close();
}

但是现在如果我们需要门具有报警alarm( )的功能,那么该如何实现?下面提供两种思路:

  1)将这三个功能都放在抽象类里面,但是这样一来所有继承于这个抽象类的子类都具备了报警功能,但是有的门并不一定具备报警功能;

  2)将这三个功能都放在接口里面,需要用到报警功能的类就需要实现这个接口中的open( )和close( ),也许这个类根本就不具备open( )和close( )这两个功能,比如火灾报警器。

  从这里可以看出, Door的open() 、close()和alarm()根本就属于两个不同范畴内的行为,open()和close()属于门本身固有的行为特性,而alarm()属于延伸的 附加行为。因此最好的解决办法是单独将报警设计为一个接口,包含alarm()行为,Door设计为单独的一个抽象类,包含open和close两种行 为。再设计一个报警门继承Door类和实现Alarm接口。

interface Alram {
    void alarm();
}
 
abstract class Door {
    void open();
    void close();
}
 
class AlarmDoor extends Door implements Alarm {
    void oepn() {
      //....
    }
    void close() {
      //....
    }
    void alarm() {
      //....
    }
}

参考:http://www.cnblogs.com/dolphin0520/p/3811437.html

3、Eclipse设置鼠标放在某些包、类或方法上时显示注释:window—>preferences—>general—>editors—>text editors:when mouse moved into hover,修改enrich after delay。

4、spring中类的作用域:

singleton,prototype,request,session,global session

参考:http://www.blogjava.net/cmzy/archive/2008/07/21/216415.html

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 25
码字总数 12169
×
困觉的曼巴er
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: