文档章节

总结一些java中的基础知识

困觉的曼巴er
 困觉的曼巴er
发布于 2016/08/05 14:31
字数 991
阅读 26
收藏 0

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

© 著作权归作者所有

共有 人打赏支持
困觉的曼巴er
粉丝 1
博文 25
码字总数 12169
作品 0
其它
程序员
BAT等大厂Android面试书单和知识点清单

java是Android开发的基础,在BAT的初面中,会涉及到比较多的java基础知识,所以比较重要,下面我介绍的书籍内容是由浅到深。 1.Thinking in java:这本书被称为Java的三大圣经之一,虽然书比...

android自学
07/25
0
0
Java学习---Java简单认识

前言 小编在学习Java方面的基础知识,发现里面有很多是结合之前的语言的特点发展过来的,不同的地方是,Java有它自己的发展和特点。下面小编先简单地做一下总结,结合看过的1-2章的J2SE视频,...

m18633778874
04/01
0
0
Java编程基础知识点和技术点归纳

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰
05/23
0
0
Java面试中,遇到这类面试题最吃亏!

从你接触 Java开发到现在,你对 Java最直观的印象是什么呢?是它宣传的 “Compile once, run anywhere”,还是目前看已经有些过于形式主义的语法呢?你对于 Java平台到底了解到什么程度?请你...

Java大蜗牛
07/20
0
0
跳槽时,这些Java面试题99%会被问到

我在 Oracle 已经工作了近 7 年,面试过从初级到非常资深的Java工程师,且由于 Java 组工作任务的特点,我非常注重面试者的计算机科学基础和编程语言的理解深度,可以不要求面试者非要精通 ...

Java小铺
08/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Centos7安装docker和docker-compose

docker-安装 yum update yum install -y docker-engine docker-compose pip install -U docker-compose...

落叶清风
12分钟前
0
0
7个Python实战项目代码,让你感受下大神是如何起飞的!

关于Python有一句名言:不要重复造轮子。 但是问题有三个: 1、你不知道已经有哪些轮子已经造好了,哪个适合你用。有名有姓的的著名轮子就400多个,更别说没名没姓自己在制造中的轮子。 2、确...

糖宝lsh
13分钟前
0
0
【随记】Maven 与mysql 版本(maven mysql 5.1.38用的最多)

MySQL Connector/J 我的电脑mysql版本为5.7.20-log maven pom.xml 依赖可用5.1.38 pom.xml依赖代码 $加<properties>变量名的实例代码 <properties><!-- data --><mysql-connector-ja......

颖伙虫
15分钟前
0
0
观察者模式

意图: 在对象的内部状态发生变化时,自动通知外部对象进行响应。 构成 被观察者:内部状态有可能被改变,而且又需要通知外部的对象。 观察者:需要对内部状态的改变做出响应的对象。 Java实...

noob_fly
23分钟前
0
0
设计模式之 MVC

MVC 是 模块化思想或者分层思想的实践。 当我们设计一个Web应用的时候,我们的业务流是,读取数据库中的数据,进行逻辑处理,渲染到页面;如果是交互型的页面,那么页面有输入或者事件发生的...

backbye
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部