文档章节

总结一些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的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,...

Java工程师-10
2017/05/24
509
2
Java学习---Java简单认识

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

m18633778874
04/01
0
0
Java程序员从笨鸟到菜鸟之——总结和声明

前段时间经过大约二十天的时间把javaSE的内容总结了一下,最近由于个人原因和一些乱七八糟的事情,一直没在更新,首先感谢那些一如既往支持我的朋友。最近不知道为什么,一直很懒,做东西也一...

长平狐
2012/11/12
98
0
【Java学习路线】新手该如何一步步的学习 Java

新手该如何一步步的学习 Java? 如果真的想学Java,最好要循序渐进,有章有法的学习它! 今天小慕就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容。 首先,给大家分享一张以 企业...

Eddie_yang
11/15
131
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-2

上篇文章(java框架学习日志-1)虽然跟着写了例子,也理解为什么这么写,但是有个疑问,为什么叫控制反转?控制的是什么?反转又是什么? 控制其实就是控制对象的创建。 反转与正转对应,正转...

白话
34分钟前
0
0
Integer使用双等号比较会发生什么

话不多说,根据以下程序运行,打印的结果为什么不同? Integer a = 100;Integer b = 100;System.out.println(a == b);//print : trueInteger a = 200;Integer b = 200;System.out.pr...

兜兜毛毛
昨天
8
0
CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
昨天
5
0
I2C EEPROM驱动实例分析

上篇分析了Linux Kernel中的I2C驱动框架,本篇举一个具体的I2C设备驱动(eeprom)来对I2C设备驱动有个实际的认识。 s3c24xx系列集成了一个基于I2C的eeprom设备at24cxx系列。at24cxx系列芯片包...

yepanl
昨天
6
0
设计模式之工厂模式

本篇博文主要翻译这篇文章: https://www.journaldev.com/1392/factory-design-pattern-in-java 由于翻译水平有限,自认为许多地方翻译不恰当,欢迎各位给出宝贵的建议,建议大家去阅读原文。...

firepation
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部