java中向上转型和向下转型什么意思?是用来干什么的?请高手解释下,通俗点,谢谢!

2024-05-18 00:38

1. java中向上转型和向下转型什么意思?是用来干什么的?请高手解释下,通俗点,谢谢!

我们在现实中常常这样说:这个人会唱歌。在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就是说我们更倾向于使用抽象概念“人”。再例如,麻雀是鸟类的一种(鸟类的子类),而鸟类则是动物中的一种(动物的子类)。我们现实中也经常这样说:麻雀是鸟。这两种说法实际上就是所谓的向上转型,通俗地说就是子类转型成父类。这也符合Java提倡的面向抽象编程思想。
子类转型成父类是向上转型,反过来说,父类转型成子类就是向下转型。但是,向下转型可能会带来一些问题:我们可以说麻雀是鸟,但不能说鸟就是麻雀。

java中向上转型和向下转型什么意思?是用来干什么的?请高手解释下,通俗点,谢谢!

2. 用Eclipse开发java项目制作完成后,如何打包,给出一个详细的说明,谢谢啦。

用eclipse编译好的一个Java项目导出成为一个可以直接双击运行的jar文件。
1.在需要导出的项目上右键->导出,在弹出的界面中找Java下的JAR文件,然后点击下一步,选择将JAR文件导出到什么位置(假如名字Project.jar),点击下一步,然后点击下一步,找到”选择应用程序入口点的类“,选一个有main方法的类,作为整个项目的入口,点击完成。这个时候生产的JAR文件就可以直接双击运行了。
2.测试结果:如果没用界面,就看不到结果。可以写一个test.bat文件测试,文件内容
java -version  查询当前环境变量的JDK版本
java -jar Project.jar 参数1,参数2。。。(如果没用参数,则不填写)
pause
把test.bat与Project.jar放在同一个目录下,并且项目在Eclipse中的版本要与环境变量配置的版本一致,不然命令会出错。双击test.bat就可以查看输出的结果了。

3. java中简单的singleton模式类 谁帮忙写一个? 谢谢了? singleton是什么意思? 那位高手给我解释一下?

Singleton的英文意义是独身,也就是只有一个人,应用在物件导向语言上,通常翻译作单例:单一个实例(Instance)。
很多时候,您会需要Singleton模式,例如印表机管理,您希望程式中只能有一个Print Spooler,以避免两个列印动作同时输入至印表机中;例如资料库管理,因为建立连接(Connection)物件会耗用资源,您希望程式中只能有一个 连接物件,所有其它的程式都透过这个物件来连接资料库,以避免连接物件的重复开启造成资源的耗用;例如系统程式属性档的读取,您使用单一个物件来读取属性 内容,而程式的其它部份都向这个物件要求属性资料,而不是自行读取属性资料。
以印表机设计为例,有的设计人员会采取全域变数的方式来建立实例,并在程式中随机取用这个实例,Java虽然不支援全域变数,但透过将物件包装在一个类别之中,也有人会采用这样的写法: 
 public class PrintSpooler { 
    public PrintSpooler() { 
        // .... 
    } 
    public Connection getSpooler(){ 
       .... 
    } 
} 
 public class GlobalObject { 
    private PrintSpooler printSpooler; 
    public GlobalObject () { 
        printSpooler = new PrintSpooler(); 
        ... 
    } 
    
    public void getPrintSpooler() { 
        return printSpooler; 
    } 
 }
无论全域变数或是以上的例子,都无法保证只产生唯一个实例,您也许会注意不犯这个错误,但与您共同工作的伙伴也许会直觉的使用建构方法来产生一个 PrintSpooler实例。
Singleton模式可以保证一个类别只有一个实例,并提供一个访问(visit)这个实例的方法。
一个Singleton实作即为Java中的java.lang.Runtime类别,每个Java程式执行时都有一个唯一的Runtime物件,可以透过它提供的静态方法getRuntime()方法来取得这个物件,例如: 
Runtime runtime = Runtime.getRuntime();
取得Runtime物件之后,您可以透过它进行一些外部命令的执行、进行垃圾处理等等指令,您可以开启Runtime.java类别,开头的几行是这样写的:
public class Runtime { 
    private static Runtime currentRuntime = new Runtime(); 
    public static Runtime getRuntime() { 
        return currentRuntime; 
    } 
   /** Don't let anyone else instantiate this class */ 
   private Runtime() {} 
    // 以下略 
}
 
上面结构即采用Singleton模式设计,其结构使用 UML 来表即如下所示:
如上所示的,Java使用 静态工厂 来取得Runtime物件,其中Runtime的建构函式被宣告为private,这样可以阻止其他人使用建构方法来建立实例;使用更一般化的表示单例的UML结构,如下图所示: 
有几个实作上面结构的方法,可以在第一次需要实例时再建立物件,也就是采用所谓的Lazy Initialization:
public class Singleton { 
    private static Singleton instance = null; 
    private Singleton() { 
        // .... 
    } 
    public static Singleton getInstance() { 
        if (instance == null) {
            instance = new Singleton(); 
        }
        return instance; 
    } 
    // .. 其它实作 
}
上面的实作适用于单执行绪的程式,在多执行绪的程式下,以下的写法在多个执行绪的竞争资源下,将仍有可能产生两个以上的实例,例如下面的情况:
Thread1: if(instance == null) // true
Thread2: if(instance == null) // true
Thread1: instance = new Singleton(); // 产生一个实例
Thread2: instance = new Singleton(); // 又产生一个实例
Thread1: return instance; // 回传一个实例
Thread2: return instance; // 又回传一个实例
在多执行绪的环境下,为了避免资源同时竞争而导致如上产生多个实例的情况,加上同步(synchronized)机制:
public class Singleton {
    private static Singleton instance = null;
    private Singleton(){}
    synchronized static public Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
 
不过这种简单的写法不适合用于像伺服器这种服务很多执行绪的程式上,同步机制会造成相当的效能低落,为了顾及Singleton、Lazy Initialization与效能问题,因而有了Double-check Locking的模式:
public class Singleton {
    private static Singleton instance = null;
    private Singleton(){}
    public static Singleton getInstance() {
        if (instance == null){
            synchronized(Singleton.class){
                if(instance == null) {
                     instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
 
Java中Runtime类别的作法就简单多了,它舍弃了Lazy Initialization,如果您的实例初始化不是很久的话,可以用这种方式:
public class Singleton { 
    private static Singleton instance = new Singleton(); 
    private Singleton() { 
        // .... 
    } 
    public static Singleton getInstance() { 
        return instance; 
    } 
    // 其它实作 
}

java中简单的singleton模式类 谁帮忙写一个? 谢谢了? singleton是什么意思? 那位高手给我解释一下?

4. Java 的cs模式是什么啥意思?刚学Java没多久,希望能详细解释下模式谢谢

单机游戏理论上是不属于的, c/s 应是软件系统体系结构 是要求有客户端  有服务端的,  客服端负责处理逻辑、呈现界面, 服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等

5. java 请解释下,刚接触不明白什么意思?详细点 谢谢了

flip之前将文件读入buff,调用flip将操作模式转为从buff读出数据。在读buff时,有个表示位置的游标,hasRemaining可以判断游标位置之后是否还有可读的数据。

java 请解释下,刚接触不明白什么意思?详细点 谢谢了

6. JavaWeb中的日志是什么意思??谢谢!!

日志主要是用户操作的记录
也可以作为日后处理问题的一个追溯
可以根据日志来进行统计和查询问题等等、
比如说你提供一个绑定邮箱的功能
日志可能就需要记录一下信息:
谁         何时                     做了什么   成功或失败
张三       2011-12-26 11:07               绑定邮箱     成功
张二       2011-11-26 11:07               绑定邮箱     失败

以后你就可以通过各个字段的信息来进行统计成功或者失败的用户 或者某个时间段做了什么操作的用户、、
简单举例一下 大概就是这么个意思!
希望对你有所帮助!

7. java中: "<a.+href*=*['\'']?.*?['\'']?.*?>" 能否详细解释一下这句话的意思? 谢谢

能匹配任何字符串,比如1、a、sdf、3adfs、kfgfh等等,也能匹配m1、wapdd等m、wap开头的。但是排除m、wap的情况。
括号匹配问题:大部分情况是有括号和花括号在一起的一对一对的,就跟情侣一样的。然后分号就是和括号一对一的出现的
凡出现左括弧,则进栈。
凡出现右括弧,首先检查栈是否空若栈空,则表明该“右括弧”多余,否则和栈顶元素比较。若相匹配,则“左括弧出栈”, 否则表明不匹配。                              
表达式检验结束时,若栈空,则表明表达式中匹配正确,否则表明“左括弧”有余。
java编程语言:
Java 编程语言的风格十分接近C、C++语言。
Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心,Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。
在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。

java中: "<a.+href*=*['\'']?.*?['\'']?.*?>" 能否详细解释一下这句话的意思? 谢谢

8. 请高手帮忙解释下这是什么意思 用JAVA编程 谢谢 s ← A[0] for i ← 1 to n-1 do s ← s + A[i] return s

表示的是数据求和的意思
返回数组中所有元素相加的和
即:A[0]+A[1]+...+A[n-1],n为数组长度。