试题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.οnlοad=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" οnblur=" 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多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决?

转载于:https://www.cnblogs.com/day93110/p/6187280.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值