网站建站网站 小说,爱设计ppt官网,泰安千橙网络公司,公司网站设计 优帮云1、一个.java源文件中是否可以包括多个类#xff08;不是内部类#xff09;#xff1f;有什么限制#xff1f; 可以有多个类#xff0c;但只能有一个public的类#xff0c;并且public的类名必须与文件名相一致。
2、Java有没有goto? java中的保留字…1、一个.java源文件中是否可以包括多个类不是内部类有什么限制 可以有多个类但只能有一个public的类并且public的类名必须与文件名相一致。
2、Java有没有goto? java中的保留字现在没有在java中使用。
3、说说和的区别。 和都可以用作逻辑与的运算符表示逻辑与and当运算符两边的表达式的结果都为true时整个运算结果才为true否则只要有一方为false则结果为false。
还具有短路的功能即如果第一个表达式为false则不再计算第二个表达式例如对于if(str ! null !str.equals(“”))表达式当str为null时后面的表达式不会执行所以不会出现NullPointerException如果将改为则会抛出NullPointerException异常。If(x33 y0) y会增长If(x33 y0)不会增长
还可以用作位运算符当操作符两边的表达式不是boolean类型时表示按位与操作我们通常使用0x0f来与一个整数进行运算来获取该整数的最低4个bit位例如0x31 0x0f的结果为0x01。
4、switch语句能否作用在byte上能否作用在long上能否作用在String上? 在switchexpr1中expr1只能是一个整数表达式或者枚举常量整数表达式可以是int基本类型或Integer包装类型由于byte,short,char都可以隐含转换为int所以这些类型以及这些类型的包装类型也是可以的。显然long和String类型都不符合switch的语法规定并且不能被隐式转换成int类型所以它们不能作用于swtich语句中。
5、short s1 1; s1 s1 1;有什么错? short s1 1; s1 1;有什么错? 对于short s1 1; s1 s1 1; 由于s11运算时会自动提升表达式的类型所以结果是int型再赋值给short类型s1时编译器将报告需要强制转换类型的错误。
对于short s1 1; s1 1;由于 是java语言规定的运算符java编译器会对它进行特殊处理因此可以正确编译。
6、char型变量中能不能存贮一个中文汉字?为什么? char型变量是用来存储Unicode编码的字符的unicode编码字符集中包含了汉字所以char型变量中当然可以存储汉字啦。不过如果某个特殊的汉字没有被包含在unicode编码字符集中那么这个char型变量中就不能存储这个特殊汉字。补充说明unicode编码占用两个字节所以char类型的变量也是占用两个字节。
7、使用final关键字修饰一个变量时是引用不能变还是引用的对象不能变 使用final关键字修饰一个变量时是指引用变量不能变引用变量所指向的对象中的内容还是可以改变的。
例如对于如下语句
final StringBuffer anew StringBuffer(“immutable”); 执行如下语句将报告编译期错误
anew StringBuffer(“”); 但是执行如下语句则可以通过编译
a.append( broken!);
有人在定义方法的参数时可能想采用如下形式来阻止方法内部修改传进来的参数对象
public void method(final StringBuffer param){
}
实际上这是办不到的在该方法内部仍然可以增加如下代码来修改参数对象
param.append(“a”);
8、和equals方法究竟有什么区别 “”操作符专门用来比较两个变量的值是否相等也就是用于比较变量所对应的内存中所存储的数值是否相同要比较两个基本类型的数据或两个引用变量是否相等只能用操作符。
如果一个变量指向的数据是对象类型的那么这时候涉及了两块内存对象本身占用一块内存堆内存变量也占用一块内存(栈内存)例如Objet obj new Object();变量obj是一个内存new Object()是另一个内存此时变量obj所对应的内存中存储的数值就是对象占用的那块内存的首地址。对于指向对象类型的变量如果要比较两个变量是否指向同一个对象即要看这两个变量所对应的内存中的数值是否相等这时候就需要用操作符进行比较。
equals方法是用于比较两个独立对象的内容是否相同就好比去比较两个人的长相是否相同它比较的两个对象是独立的。例如对于下面的代码
String anew String(“foo”);
String bnew String(“foo”);
两条new语句创建了两个对象然后用a,b这两个变量分别指向了其中一个对象这是两个不同的对象它们的首地址是不同的即a和b中存储的数值是不相同的所以表达式ab将返回false而这两个对象中的内容是相同的所以表达式a.equals(b)将返回true。
在实际开发中我们经常要比较传递进行来的字符串内容是否等例如String input …;input.equals(“quit”)许多人稍不注意就使用进行比较了这是错误的记住字符串的比较基本上都是使用equals方法。
如果一个类没有自己定义equals方法那么它将继承Object类的equals方法Object类的equals方法的实现代码如下
boolean equals(Object o){
return thiso;
}
这说明如果一个类没有自己定义equals方法它默认的equals方法从Object 类继承的就是使用操作符也是在比较两个变量指向的对象是否是同一对象这时候使用equals和使用会得到同样的结果如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同那么你必须覆盖equals方法由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。
9、静态变量和实例变量的区别 在语法定义上的区别静态变量前要加static关键字而实例变量前则不加。
在程序运行时的区别实例变量属于某个对象的属性必须创建了实例对象其中的实例变量才会被分配空间才能使用这个实例变量。静态变量不属于某个实例对象而是属于类所以也称为类变量只要程序加载了类的字节码不用创建任何实例对象静态变量就会被分配空间静态变量就可以被使用了。总之实例变量必须创建对象后才可以通过这个对象来使用静态变量则可以直接使用类名来引用。
例如对于下面的程序无论创建多少个实例对象永远都只分配了一个staticVar变量并且每创建一个实例对象这个staticVar就会加1但是每创建一个实例对象就会分配一个instanceVar即可能分配多个instanceVar并且每个instanceVar的值都只自加了1次。
public class VariantTest{
public static int staticVar 0;
public int instanceVar 0;
public VariantTest(){
staticVar;
instanceVar;
System.out.println(“staticVar” staticVar ”,instanceVar” instanceVar);
}
} 10、是否可以从一个static方法内部发出对非static方法的调用 不可以。因为非static方法是要与对象关联在一起的必须创建一个对象后才可以在该对象上进行方法调用而static方法调用时不需要创建对象可以直接调用。也就是说当一个static方法被调用时可能还没有创建任何实例对象如果从一个static方法中发出对非static方法的调用那个非static方法是关联到哪个对象上的呢这个逻辑无法成立所以一个static方法内部不可以发出对非static方法的调用。
11、Integer与int的区别 int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类Integer是java为int提供的封装类。int的默认值为0而Integer的默认值为null即Integer可以区分出未赋值和值为0的区别int则无法表达出未赋值的情况例如要想表达出没有参加考试和考试成绩为0的区别则只能使用Integer。在JSP开发中Integer的默认为null所以用el表达式在文本框中显示时值为空白字符串而int默认的默认值为0所以用el表达式在文本框中显示时结果为0所以int不适合作为web层的表单数据的类型。
在Hibernate中如果将OID定义为Integer类型那么Hibernate就可以根据其值是否为null而判断一个对象是否是临时的如果将OID定义为了int类型还需要在hbm映射文件中设置其unsaved-value属性为0。
另外Integer提供了多个与整数相关的操作方法例如将一个字符串转换成整数Integer中还定义了表示整数的最大值和最小值的常量。
12、请说出作用域publicprivateprotected以及不写时的区别 这四个作用域的可见范围如下表所示。
说明如果在修饰的元素上面没有写任何访问修饰符则表示friendly。
13、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? Overload是重载的意思Override是覆盖的意思也就是重写。
重载Overload表示同一个类中可以有多个名称相同的方法但这些方法的参数列表各不相同即参数个数或类型不同。
重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同通过子类创建的实例对象调用这个方法时将调用子类中的定义方法这相当于把父类中定义的那个完全相同的方法给覆盖了这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时只能比父类抛出更少的异常或者是抛出父类抛出的异常的子异常因为子类可以解决父类的一些问题不能比父类有更多的问题。子类方法的访问权限只能比父类的更大不能更小。如果父类的方法是private类型那么子类则不存在覆盖的限制相当于子类中增加了一个全新的方法。
至于Overloaded的方法是否可以改变返回值的类型这个问题要看你倒底想问什么呢这个题目很模糊。如果几个Overloaded的方法的参数列表不一样它们的返回者类型当然也可以不一样。但我估计你想问的问题是如果两个方法的参数列表完全一样是否可以让它们的返回值不同来实现重载Overload这是不行的我们可以用反证法来说明这个问题因为我们有时候调用一个方法时也可以不定义返回结果变量即不要关心其返回结果例如我们调用map.remove(key)方法时虽然remove方法有返回值但是我们通常都不会定义接收返回结果的变量这时候假设该类中有两个名称和参数列表完全相同的方法仅仅是返回类型不同java就无法确定编程者倒底是想调用哪个方法了因为它无法通过返回结果类型来判断。
override可以翻译为覆盖从字面就可以知道它是覆盖了一个方法并且对其重写以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现在接口中一般只是对方法进行了声明而我们在实现时就需要实现接口声明的所有方法。除了这个典型的用法以外我们在继承中也可能会在子类覆盖父类中的方法在覆盖要注意以下的几点
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配才能达到覆盖的效果
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致或者是其子类
4、被覆盖的方法不能为private否则在其子类中只是新定义了一个方法并没有对其进行覆盖。
overload对我们来说可能比较熟悉可以翻译为重载它是指我们可以定义一些名称相同的方法通过定义不同的输入参数来区分这些方法然后再调用时VM就会根据不同的参数样式来选择合适的方法执行。在使用重载要注意以下的几点
在使用重载时只能通过不同的参数样式。例如不同的参数类型不同的参数个数不同的参数顺序当然同一方法内的几个参数类型必须不一样例如可以是fun(int,float)但是不能为fun(int,int) 不能通过访问权限、返回类型、抛出的异常进行重载 方法的异常类型和数目不会对重载造成影响 对于继承来说如果某一方法在父类中是访问权限是priavte那么就不能在子类对其进行重载如果定义的话也只是定义了一个新方法而不会达到重载的效果。 14、has a与is a的区别 is-a表示的是属于的关系。比如兔子属于一种动物继承关系。
has-a表示组合包含关系。比如兔子包含有腿头等组件。
15、ClassLoader如何加载class jvm里有多个类加载器每个类加载器可以负责加载特定位置的类例如bootstrap类加载负责加载jre/lib/rt.jar中的类 我们平时用的jdk中的类都位于rt.jar中。extclassloader负责加载jar/lib/ext/*.jar中的类appclassloader负责classpath指定的目录或jar中的类。除了bootstrap之外其他的类加载器本身也都是java类它们的父类是ClassLoader。
16、分层设计的好处 把各个功能按调用流程进行了模块化模块化带来的好处就是可以随意组合举例说明如果要注册一个用户流程为显示界面并通过界面接收用户的输入接着进行业务逻辑处理在处理业务逻辑又访问数据库如果我们将这些步骤全部按流水帐的方式放在一个方法中编写这也是可以的但这其中的坏处就是当界面要修改时由于代码全在一个方法内可能会碰坏业务逻辑和数据库访问的码同样当修改业务逻辑或数据库访问的代码时也会碰坏其他部分的代码。分层就是要把界面部分、业务逻辑部分、数据库访问部分的代码放在各自独立的方法或类中编写这样就不会出现牵一发而动全身的问题了。这样分层后还可以方便切换各层譬如原来的界面是Swing现在要改成BS界面如果最初是按分层设计的这时候不需要涉及业务和数据访问的代码只需编写一条web界面就可以了。
分层的好处
1.实现了软件之间的解耦
2.便于进行分工
3.便于维护
4.提高软件组件的重用
5.便于替换某种产品比如持久层用的是hibernate,需要更换产品用toplink就不用该其他业务代码直接把配置一改。
6.便于产品功能的扩展。
7.便于适用用户需求的不断变化
17、hashCode方法的作用 hashcode这个方法是用来鉴定2个对象是否相等的。
equals方法和hashCode方法这2个方法都是用来判断2个对象是否相等的但是他们是有区别的。
一般来讲equals这个方法是给用户调用的如果你想判断2个对象是否相等你可以重写equals方法然后在代码中调用就可以判断他们是否相等了。简单来讲equals方法主要是用来判断从表面上看或者从内容上看2个对象是不是相等。举个例子有个学生类属性只有姓名和性别那么我们可以认为只要姓名和性别相等那么就说这2个对象是相等的。
hashcode方法一般用户不会去调用比如在hashmap中由于key是不可以重复的他在判断key是不是重复的时候就判断了hashcode这个方法而且也用到了equals方法。这里不可以重复是说equals和hashcode只要有一个不等就可以了所以简单来讲hashcode相当于是一个对象的编码就好像文件中的md5他和equals不同就在于他返回的是int型的比较起来不直观。我们一般在覆盖equals的同时也要覆盖hashcode让他们的逻辑一致。举个例子还是刚刚的例子如果姓名和性别相等就算2个对象相等的话那么hashcode的方法也要返回姓名的hashcode值加上性别的hashcode值这样从逻辑上他们就一致了。
要从物理上判断2个对象是否相等用就可以了如果两个对象的物理(内存)地址相等那么这两个对象肯定就是同一个对象。
18、什么是AOP 1.AOP概念介绍 所谓AOP即Aspect orientied program,就是面向方面(切面)的编程。
面向切面编程Aspect-Orlented-Programming即AOP是对面向对象的思维方式的有力补充。
AOP的好处是可以动态地添加和删除在切面上的逻辑而不影响原来的执行代码
2.解释什么是方面(切面) 所谓方面(切面)指的是贯穿到系统的各个模块中的系统一个功能就是一个方面(切面)比如记录日志统一异常处理事务处理权限检查这些功能都是软件系统的一个面而不是一点在各个模块中都要出现。
3.什么是面向方面编程 把系统的一个方面的功能封装成对象的形式来处理就是面向方面(切面)编程
4.怎么进行面向方面编程 把功能模块对应的对象作为切面嵌入到原来的各个系统模块中采用代理技术代理会调用目标同时把切面功能的代码对象加入进来。所以用spring配置代理对象时只要要配两个属性分别表示目标和切面对象Advisor。
19.谈谈你对mvc的理解 MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式它强制性的把应用程序的输入、处理和输出分开。
MVC中的模型、视图、控制器它们分别担负着不同的任务。
视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据并接受用户的输入。视图不进行任何业务逻辑处理。 模型: 模型表示业务数据和业务处理。相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性 控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结果。 MVC的处理过程首先控制器接受用户的请求调用相应的模型来进行业务处理并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。 文章转载自: http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn http://www.morning.zztmk.cn.gov.cn.zztmk.cn http://www.morning.crdtx.cn.gov.cn.crdtx.cn http://www.morning.xgmf.cn.gov.cn.xgmf.cn http://www.morning.yhxhq.cn.gov.cn.yhxhq.cn http://www.morning.ftmp.cn.gov.cn.ftmp.cn http://www.morning.pgmbl.cn.gov.cn.pgmbl.cn http://www.morning.bpmmq.cn.gov.cn.bpmmq.cn http://www.morning.tqwcm.cn.gov.cn.tqwcm.cn http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn http://www.morning.wfmqc.cn.gov.cn.wfmqc.cn http://www.morning.qpnmd.cn.gov.cn.qpnmd.cn http://www.morning.dxpzt.cn.gov.cn.dxpzt.cn http://www.morning.dnmwl.cn.gov.cn.dnmwl.cn http://www.morning.bchhr.cn.gov.cn.bchhr.cn http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn http://www.morning.c7500.cn.gov.cn.c7500.cn http://www.morning.xckqs.cn.gov.cn.xckqs.cn http://www.morning.zryf.cn.gov.cn.zryf.cn http://www.morning.rhph.cn.gov.cn.rhph.cn http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn http://www.morning.pwggd.cn.gov.cn.pwggd.cn http://www.morning.ljwyc.cn.gov.cn.ljwyc.cn http://www.morning.ynstj.cn.gov.cn.ynstj.cn http://www.morning.sprbs.cn.gov.cn.sprbs.cn http://www.morning.lflsq.cn.gov.cn.lflsq.cn http://www.morning.mjkqj.cn.gov.cn.mjkqj.cn http://www.morning.mkygc.cn.gov.cn.mkygc.cn http://www.morning.kxxld.cn.gov.cn.kxxld.cn http://www.morning.rfqkx.cn.gov.cn.rfqkx.cn http://www.morning.fylqz.cn.gov.cn.fylqz.cn http://www.morning.cnxpm.cn.gov.cn.cnxpm.cn http://www.morning.hbpjb.cn.gov.cn.hbpjb.cn http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn http://www.morning.bfcxf.cn.gov.cn.bfcxf.cn http://www.morning.bwkzn.cn.gov.cn.bwkzn.cn http://www.morning.lmnbp.cn.gov.cn.lmnbp.cn http://www.morning.bncrx.cn.gov.cn.bncrx.cn http://www.morning.bktzr.cn.gov.cn.bktzr.cn http://www.morning.ckhpg.cn.gov.cn.ckhpg.cn http://www.morning.rycbz.cn.gov.cn.rycbz.cn http://www.morning.mrccd.cn.gov.cn.mrccd.cn http://www.morning.cnwpb.cn.gov.cn.cnwpb.cn http://www.morning.zhmgcreativeeducation.cn.gov.cn.zhmgcreativeeducation.cn http://www.morning.zqwqy.cn.gov.cn.zqwqy.cn http://www.morning.lrprj.cn.gov.cn.lrprj.cn http://www.morning.cyysq.cn.gov.cn.cyysq.cn http://www.morning.tkrpt.cn.gov.cn.tkrpt.cn http://www.morning.kkhf.cn.gov.cn.kkhf.cn http://www.morning.kgmkl.cn.gov.cn.kgmkl.cn http://www.morning.stfdh.cn.gov.cn.stfdh.cn http://www.morning.hqnsf.cn.gov.cn.hqnsf.cn http://www.morning.cthrb.cn.gov.cn.cthrb.cn http://www.morning.nshhf.cn.gov.cn.nshhf.cn http://www.morning.lwrcg.cn.gov.cn.lwrcg.cn http://www.morning.rttxx.cn.gov.cn.rttxx.cn http://www.morning.bbyqz.cn.gov.cn.bbyqz.cn http://www.morning.mpyry.cn.gov.cn.mpyry.cn http://www.morning.hsklc.cn.gov.cn.hsklc.cn http://www.morning.clccg.cn.gov.cn.clccg.cn http://www.morning.rkhhl.cn.gov.cn.rkhhl.cn http://www.morning.ctxt.cn.gov.cn.ctxt.cn http://www.morning.tbstj.cn.gov.cn.tbstj.cn http://www.morning.smsjx.cn.gov.cn.smsjx.cn http://www.morning.ndmh.cn.gov.cn.ndmh.cn http://www.morning.bbtn.cn.gov.cn.bbtn.cn http://www.morning.lgpzq.cn.gov.cn.lgpzq.cn http://www.morning.lmrcq.cn.gov.cn.lmrcq.cn http://www.morning.mxftp.com.gov.cn.mxftp.com http://www.morning.nyplp.cn.gov.cn.nyplp.cn http://www.morning.ccyjt.cn.gov.cn.ccyjt.cn http://www.morning.kfsfm.cn.gov.cn.kfsfm.cn http://www.morning.mnyzz.cn.gov.cn.mnyzz.cn http://www.morning.rjhts.cn.gov.cn.rjhts.cn http://www.morning.qrsrs.cn.gov.cn.qrsrs.cn http://www.morning.bnygf.cn.gov.cn.bnygf.cn http://www.morning.mzkn.cn.gov.cn.mzkn.cn http://www.morning.cbynh.cn.gov.cn.cbynh.cn http://www.morning.mmzfl.cn.gov.cn.mmzfl.cn http://www.morning.mxnrl.cn.gov.cn.mxnrl.cn