• 试题2


    1,short s1=1;s1=s1+1;有什么错? short s1=1;s1+=1;有什么错?

    (1)高位转低位需要强制转换           

    (2)低位转高位自动转.

    i 是int 型   s1 short型,通过 + 运算后s1自动转为int型,所以错!

    s1+=1等效于  s1=(short)(s1+1),所以是正确的。    

    2,用最有效率的方法算出2乘以8等于几?

    2 << 3,移位操作

    3,请说出作用域public,private,protected,以及不写时的区别.

    public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用

    private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

    protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

    默认情况(不写)下,属于一种包访问,即能被类本身以及同一个包中的类访问。

                    作用域       当前类    同一package   子孙类     其他package

                    public        √         √           √           √

                   protected      √          √          √           ×

                   friendly       √          √          ×           ×

                   private        √          ×          ×           ×

    4,构造器Constructor是否可被override?

    (1)构造器是干什么用的?(what)

      构造器是用来生成一个类的实例是用来初始化这个实例用的

    (2)构造器如何工作?(how)

      Java在构造实例时的顺序是这样的:

    1、分配对象空间,并将对象中成员初始化为0或者空,java不允许用户操纵一个不定值的对象。   

    2、执行属性值的显式初始化   

    3、执行构造器   

    4 、将变量关联到堆中的对象上

     

    而执行构造器的步骤有可以分为以下几步:

    1、Bind构造器的参数

    2、如果显式的调用了this,那就递归调用this构造器然后跳到步骤5

    3、递归调用显式或者隐式的父类构造器,除了Object以外,因为它没有父类

    4、执行显式的实例变量初始化(也就是上边的流程中的第二步,调用返回以后执行,

       这个步骤相当于在父构造器执行后隐含执行的,看样子像一个特殊处理)

    (3)构造器不可被orerride(why)

    构造器不是方法,那么用来修饰方法特性的所有修饰符都不能用来修饰构造器(并不等与构造器具备这些特性,虽然不能用static修饰构造器,但它却有静态特性)构造器只能用 public private protected这三个权限修饰符,且不能有返回语句。

    5,是否可以继承String类?

    因为Sting是这样定义的:public final class String extends Object,里边有final关键字,所以不能被继承。

    什么样的类不能被继承?

     (1)在Java中,只要是被定义为final的类,也可以说是被final修饰的类,就是不能被继承的。
     (2)final是java中的一个关键字,可以用来修饰变量、方法和类。用关键词final修饰的域成为最终域。用关键词final修饰的变量一旦赋值,就不能改变,也称为修饰的标识为常量。如果一个类的域被关键字final所修饰,它的取值在程序的整个执行过程中将不会改变。
     (3)假如说整个类都是final,就表明自己不希望从这个类继承,或者不答应其他任何人采取这种操作。换言之,出于这样或那样的原因,我们的类肯定不需要进行任何改变;或者出于安全方面的理由,我们不希望进行子类化(子类处理)。

    6,描述一下JVM加载class文件的原理机制?

    7,java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

    Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的.

    8,STRUTS的应用.

    Struts是对JSP Model2设计标准的一种实现,下面分别从模型(Model)、试图(View)和控制器(Controller)3个部分介绍Struts的体系结构和工作原理。一般情况,Struts框架中的模型是有JavaBean或者EJB构成,视图是由JSP页面组成,控制器是由ActionServlet和Action实现。

    1.模型

    模型表示应用程序的状态和业务逻辑的处理,在一般的Web应用程序中,用JavaBean或EJB来实现系统的业务逻辑,在Struts框架中,模型层也是用JavaBean或EJN实现的。

    2.视图

    在Struts中,视图层广义上包括两个部分,即JSP页面和ActionForm。ActionForm封装了用户提交的表单信息,其实ActionForm在本质上就是JavaBean,在这些JavaBean中没有具体的业务逻辑。只提供了所有属性的getter和setter方法,这些属性和用户表单中的输入项是一一对应的。在Struts中就是通过ActionForm把用户的表单信息提交给控制器的。

    Struts中的视图组件包括JSP页面,这也是经典MVC模式中主要的视图组件,这些JSP页面承担了信息展示和控制器处理结果显示的功能。

    3.控制器

    Struts框架中主要的控制器是ActionServlet,它处理用户端发送过来的所有请求。当ActionServlet接受到来自浏览器端的请求以后,会根据struts-config.xml这个配置文件寻求匹配的URL,然后把用户的请求发送到合适的控制器中。

    Struts框架就是通过控制器ActionServlet完成模型层和业务逻辑层的分离,从而降低了Web应用程序的耦合度,实现了MVC的经典架构。

    9,hibernate的inverse属性的作用?

    hibernate配置文件中有这么一个属性inverse,它是用来指定关联的控制方的。inverse属性默认是false,若为false,则关联由自己控制,若为true,则关联由对方控制。

    10,介绍一下Hibernate的二级缓存.

    11,用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红色字体.

    <body>
    <table id="tbl">
        <tr><td>1</td></tr>
        <tr><td>2</td></tr>
        <tr><td>3</td></tr>
        <tr><td>4</td></tr>
        <tr><td>5</td></tr>
        <tr><td>6</td></tr>
        <tr><td>7</td></tr>
        <tr><td>8</td></tr>
        <tr><td>9</td></tr>
        <tr><td>10</td></tr>
    </table>
    </body>
    <script type="text/javascript">
        window.onload=function()
            {
                var tbl = document.getElementById("tbl");
                rows = tbl.getElementsByTagName("tr");
                for(i=0;i<rows.length;i++)
                {
                    var j = parseInt(i/3);
                    if(j%2==0) rows[i].style.backgroundColor="#f00";
                    else  rows[i].style.backgroundColor="#0f0";
                }
            }
    </script>
    

    12,第一个人10,第二个比第一个人大2岁,以此类推,请用递归方式计算出第八个人多大?

    public class Test {
     
        public static void main(String[] args) {
            System.out.println(computeAge(8));
        }
     
        public static int computeAge(int n) {
            if (n == 1) {
                return 10;
            } else {
                return computeAge(n - 1) + 2;
            }
        }
    }
    

    13,请写出用于校验HTML文本框中输入的内容全部为数字的JavaScript代码

    <input type="text" id="d1" onblur=" chkNumber(this)"/>
    <script type=”text/javascript” />   
    function chkNumber(eleText)
     
           {
                  var value =eleText.value;
                  var len =value.length;
                  for(vari=0;i<len;i++)
                  {
                         if(value.charAt(i)>"9"|| value.charAt(i)<"0")
                         {
                                alert("含有非数字字符");
                                eleText.focus();
                                break;
                         }
                  }
           }
    </script>
    

    14,查出比经理薪水还高的员工信息

    Drop table if not exists employees;
                      create table employees(id int primary key auto_increment,name varchar(50)
                      ,salary int,managerid int references employees(id));
                      insert into employees values (null,' lhm',10000,null),

    (null,' zxx',15000,1),(null,'flx',9000,1),(null,'tg',10000,2),(null,'wzg',10000,3);
                     

     Wzg大于flx,lhm大于zxx

    解题思路:

           根据sql语句的查询特点,是逐行进行运算,不可能两行同时参与运算。

           涉及了员工薪水和经理薪水,所有,一行记录要同时包含两个薪水,所有想到要把这个表自关联组合一下。

           首先要组合出一个包含有各个员工及该员工的经理信息的长记录,譬如,左半部分是员工,右半部分是经理。而迪卡尔积会组合出很多垃圾信息,先去除这些垃圾信息。

      select e.* from employees e,employees m where e.managerid=m.id

      and e.salary>m.salary;

    15,一个用户表中有一个积分字段,例如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决?

  • 相关阅读:
    Assembly Manifest 通俗简易手册
    CruiseControl服务器安装配置
    关于URL编码
    从A到Z来说说Web开发
    通过注册表查看 .NET Framework的版本信息
    云数据存在哪里?
    C#中你可能不知道的8件事(zz)
    用PBKDF2 或BCrypt 来存储密码
    C++编译器什么时候为我们自动生成拷贝构造函数?
    C#中你可能不知道的8件事(zz)
  • 原文地址:https://www.cnblogs.com/day93110/p/6187280.html
Copyright © 2020-2023  润新知