zoukankan      html  css  js  c++  java
  • 牛客---java练习

    一、

    1. abstract可以修饰方法和类,不能修饰属性。抽象方法没有方法体,即没有大括号{}。抽象类中的成员属性都是public static final类型的;成员方法都是public abstract的。

    二、

    J2EE中常用的名词解释

    web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使 JSP,SERVLET直接更容器中的环境变量接**互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。

    EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

    JNDI:(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

    JMS:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。

    JTA:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

    JAF:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。 

    RMI/IIOP:(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。

     
    三、
    http://www.cnblogs.com/xudong-bupt/p/3586889.html
    1.什么是正则表达式的贪婪与非贪婪匹配

    如:String str="abcaxc";

    Patter p="ab*c";

    贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。

    非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。

    2.编程中如何区分两种模式

    默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。

    量词:{m,n}:m到n个

    *:任意多个

    +:一个到多个

    ?:0或一个
    以上来自博主的博客,然后这道题目
    .表示除 之外的任意字符
    *表示匹配0-无穷 
    +表示匹配1-无穷
    (?=Expression) 顺序环视,(?=\()就是匹配正括号
    懒惰模式正则: 
    src=".*? (?=\()) "
    结果:北京市
    因为匹配到第一个"就结束了一次匹配。不会继续向后匹配。因为他懒惰嘛
    四、
    选项中哪一行代码可以添加 题目中而不产生编译错误?
        
    public abstract class MyClass {
         public int constInt = 5;
         //add code here
         public void method() {
         }
    }
    
    
    A是抽象方法,抽象类可以包含抽象方法,也可以不包含,虽然A 方法名是method,与题目中的方法同名,但是参数不同,是重载方法
    B 在类中不能constInt = constInt + 5;  方法中可以
    C 的方法名与题目中的方法名相同,返回值不能作为重载的依据
    D 抽象方法没有方法体
     
    五、
    下面描述属于java虚拟机功能的是?

    (1)通过 ClassLoader 寻找和装载 class 文件

    (2)解释字节码成为指令并执行,提供 class 文件的运行环境

    (3)进行运行期间垃圾回收

    (4)提供与硬件交互的平台

    六、

    A. ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。  //正确,这里的所谓动态数组并不是那个“ 有多少元素就申请多少空间 ”的意思,通过查看源码,可以发现,这个动态数组是这样实现的,如果没指定数组大小,则申请默认大小为10的数组,当元素个数增加,数组无法存储时,系统会另个申请一个长度为当前长度1.5倍的数组,然后,把之前的数据拷贝到新建的数组。
    - ---------------------------------------------------------------------
    B. 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。//正确,ArrayList是数组,所以,直接定位到相应位置取元素,LinkedLIst是链表,所以需要从前往后遍历。
    -----------------------------------------------------------------------
    C. 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。//正确,ArrayList的新增和删除就是数组的新增和删除,LinkedList与链表一致。
    -------------------------------------------------------------------------
    D. ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。//正确,因为ArrayList空间的增长率为1.5倍,所以,最后很可能留下一部分空间是没有用到的,因此,会造成浪费的情况。对于LInkedList的话,由于每个节点都需要额外的指针,所以,你懂的。
     
  • 相关阅读:
    COM编程概述
    计算机系统
    计算机启动过程
    资源共享型智能指针实现方式
    [6] 智能指针boost::weak_ptr
    [5] 智能指针boost::shared_ptr
    [4] 智能指针boost::scoped_ptr
    函数后面加throw关键字
    [3] 智能指针std::auto_ptr
    (原创)开发使用Android studio所遇到的一些问题总结
  • 原文地址:https://www.cnblogs.com/simplepaul/p/6528184.html
Copyright © 2011-2022 走看看