java笔试基础题目总结
2014-10-25 10:10
281 查看
1、String str=new String("abc");一共产生了几个对象?
首先new String()在堆中产生了一个对象 ,然后“abc"在字符串常量池中产生了一个对象,最后String str 在栈中产生了一个引用对象。所以一共产生了三个对象。
2、下列变量定义正确的是:
A String String="abc" B String int="abc" C String 1string="abc" D String $_str="abc"
一般变量命名可以使用字母,符号开头,但是不可以使用java里面的关键字,java 的关键字一般为小写,也不能以数字开头,所以A D 是正确的。
3、使用反射来调用一个类Person的sayHi方法,
b,获取运行时类的方法:Method m=clazz.getMethod("sayHi",String.class); //其中String.class表示传入参数的类型
c,调用方法:m.invoke(clazz.newInstance(),"admin");这里的返回值为sayHi的返回值。
4、short s1=1; s1=s1+1;代码运行的结果为:
A 2 B 1 C 没有结果
考察数据类型转换的知识 short int long 可以自动转型 ,反过来需要强制转型 ,s1=s1+1;需要做强制转换,所以运行不能通过编译的,故没有结果C ,这里注意
s1+=1是可以运行的,结果为2.
5、forward(转发)与redirect(重定向)的区别
a.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
b.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
c.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
d.从效率来说
forward:高.
redirect:低.
一句话,转发是服务器行为,重定向是客户端行为。重定向,其实是两次request, 第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。
6、下列那些是线程安全的:
A Integer B String C StringBuilder D StringBuffered E int
StringBuffered为线程安全 故 D
7、参数传递中的 传值和传引用的区别:
传值: 对于原始数据类型 short int long double float char boolean byte 参数传递是传值的,开发者在方法中修改了参数值,方法调用线束后不会改变原来那个变量的值;
传引用:传递的是对象的引用,那么就会传递引用值,这意味着,在方法调用期间实参和形参都是该引用值所代表对象的别名。所以在参数传递之前,必须由实参表达式算出一个对象的引用
8、java 异常处理:
异常的基础类为:Throwable派生出Exception类和error类,error 类表示程序本身无法恢复的严重错误,用于指示应用程序的严重问题,不可以捕获而且程序也法处理的;exception,应用程序可以捕获的,并且可以处理的异常。异常主要分为运行进异常:
RuntimeException 和检查性异常。主要的运行时异常有:
ClassCastException(类转换异常)
IndexOutOfBoundsException(数组越界)
NullPointerException(空指针)
ArrayStoreException(数据存储异常,操作数组时类型不一致)
还有IO操作的BufferOverflowException异常
主要的检查性异常有:IOException ,SQLException 这类异常一般在编译期就可以被发现,常常编译器会提醒我们去处理这类异常。
9、Java中Collection与Collections的区别
java.util.Collection是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,Colllection接口在java类库中有很多种具体的实现。
java.util.Collections是一个包装类,它包含有各种有关集合操作的静态多态方法。此不能不实例化。就像是一个工具类,服务于Java的Collection框架。
首先new String()在堆中产生了一个对象 ,然后“abc"在字符串常量池中产生了一个对象,最后String str 在栈中产生了一个引用对象。所以一共产生了三个对象。
2、下列变量定义正确的是:
A String String="abc" B String int="abc" C String 1string="abc" D String $_str="abc"
一般变量命名可以使用字母,符号开头,但是不可以使用java里面的关键字,java 的关键字一般为小写,也不能以数字开头,所以A D 是正确的。
3、使用反射来调用一个类Person的sayHi方法,
<span style="font-size:14px;">public class Person{ public void sayHi(String userName){ System.out.println("Hi "+userName); } }</span>a, 首先获得运行时类 ,这里方法有三种:Class clazz=Person.class(); 或Class clazz=Class.forName("com..Person"); 或 Class clazz=new Person().getClass();
b,获取运行时类的方法:Method m=clazz.getMethod("sayHi",String.class); //其中String.class表示传入参数的类型
c,调用方法:m.invoke(clazz.newInstance(),"admin");这里的返回值为sayHi的返回值。
4、short s1=1; s1=s1+1;代码运行的结果为:
A 2 B 1 C 没有结果
考察数据类型转换的知识 short int long 可以自动转型 ,反过来需要强制转型 ,s1=s1+1;需要做强制转换,所以运行不能通过编译的,故没有结果C ,这里注意
s1+=1是可以运行的,结果为2.
5、forward(转发)与redirect(重定向)的区别
a.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
b.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
c.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
d.从效率来说
forward:高.
redirect:低.
一句话,转发是服务器行为,重定向是客户端行为。重定向,其实是两次request, 第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。
6、下列那些是线程安全的:
A Integer B String C StringBuilder D StringBuffered E int
StringBuffered为线程安全 故 D
7、参数传递中的 传值和传引用的区别:
传值: 对于原始数据类型 short int long double float char boolean byte 参数传递是传值的,开发者在方法中修改了参数值,方法调用线束后不会改变原来那个变量的值;
传引用:传递的是对象的引用,那么就会传递引用值,这意味着,在方法调用期间实参和形参都是该引用值所代表对象的别名。所以在参数传递之前,必须由实参表达式算出一个对象的引用
<span style="font-size:14px;">public class KnowledgeTest { public static void main(String [] args){ int val; StringBuffer sb; String str="ads"; val=10; sb=new StringBuffer("pears"); System.out.println("val is "+val); System.out.println("sb is "+sb); System.out.println("str is "+str); System.out.println(" "); System.out.println("callint modify"); modify(val,sb,str); System.out.println("val is "+val); System.out.println("sb is "+sb); System.out.println("str is "+str); } private static void modify(int val, StringBuffer sb, String str) { val=0; str="ddd"; sb.append("good"); sb=new StringBuffer("test"); } }</span>输出结果 :
<span style="font-size:14px;">val is 10 sb is pears str is ads callint modify val is 10 sb is pearsgood str is ads</span>
8、java 异常处理:
异常的基础类为:Throwable派生出Exception类和error类,error 类表示程序本身无法恢复的严重错误,用于指示应用程序的严重问题,不可以捕获而且程序也法处理的;exception,应用程序可以捕获的,并且可以处理的异常。异常主要分为运行进异常:
RuntimeException 和检查性异常。主要的运行时异常有:
ClassCastException(类转换异常)
IndexOutOfBoundsException(数组越界)
NullPointerException(空指针)
ArrayStoreException(数据存储异常,操作数组时类型不一致)
还有IO操作的BufferOverflowException异常
主要的检查性异常有:IOException ,SQLException 这类异常一般在编译期就可以被发现,常常编译器会提醒我们去处理这类异常。
9、Java中Collection与Collections的区别
java.util.Collection是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,Colllection接口在java类库中有很多种具体的实现。
java.util.Collections是一个包装类,它包含有各种有关集合操作的静态多态方法。此不能不实例化。就像是一个工具类,服务于Java的Collection框架。
相关文章推荐
- 关于Java基础的一些笔试题总结
- java基础题目总结
- 【Java基础总结】-Java笔试易错点 第二篇
- 黑马程序员 java 基础面试常考题目总结
- Java笔试题目总结二(牛客网)
- java基础题目总结
- 【Java基础总结】-Java笔试易错点 第一篇
- 关于Java基础的一些笔试题总结
- Java 笔试:常见题目总结
- 【2016】Android的Java面试/笔试基础题目
- Java基础学习总结(74)——Java常见笔试题及答案汇总
- JAVA笔试、面试基础题目
- 有关Java基础的一些笔试题总结
- 有关Java基础的一些笔试题总结
- java基础~第一次技术测试题目总结
- Java基础学习总结(74)——Java常见笔试题及答案汇总
- java基础的一些题目(自己总结)
- java基础题目总结
- Java基础笔试题目记录
- JAVA基础知识精华总结