java---牛客网java专项训练知识点集锦
来源:互联网 发布:模拟化学反应的软件 编辑:程序博客网 时间:2024/05/06 05:42
1.关于原码、反码、补码的问题。
short
a =
128
;
byte
b =(
byte
) a;
3.stack是继承自vector,所以是线程安全的。
4.字符型类型的数据默认值是空。
5.Object类中的方法有:
protected Object
clone()
创建并返回此对象的一个副本。
boolean
equals(Object obj)
指示其他某个对象是否与此对象“相等”。
protected void
finalize()
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
Class<?>
getClass()
返回此
Object
的运行时类。 int
hashCode()
返回该对象的哈希码值。
void
notify()
唤醒在此对象监视器上等待的单个线程。
void
notifyAll()
唤醒在此对象监视器上等待的所有线程。
String
toString()
返回该对象的字符串表示。
void
wait()
在其他线程调用此对象的
notify()
方法或 notifyAll()
方法前,导致当前线程等待。 void
wait(long timeout)
在其他线程调用此对象的
notify()
方法或 notifyAll()
方法,或者超过指定的时间量前,导致当前线程等待。 void
wait(long timeout, int nanos)
在其他线程调用此对象的
notify()
方法或 notifyAll()
方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。6.在jsp文件中,errorPage="error.jsp"和isErrorPage的用法
如果在jsp页面a中声明了errorPage="error.jsp",那么表明a页面如果出现了异常,那么会跳转的错误页面“error.jsp”,并且error.jsp页面中要有isErrorPage=“true”的声明。只有声明了“isErrorPage”的页面才能使用Exception内置对象。
回忆一下jsp的九大内置对象:orrcs appe
7.下列关于Java并发的说法中正确的是(B)
A:CopyOnWriteArrayList适用于写多读少的并发场景--------------<应该是写少读多>
B:ReadWriteLock适用于读多写少的并发场景
C:ConcurrentHashMap的写操作不需要加锁,读操作需要加锁----------------<读写都要加锁>
D:只要在定义int类型的成员变量i的时候加上volatile关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了
8.下面函数将返回?(C)
public
static
int
func (){
try
{
return
1;
}
catch
(Exception e){
return
2;
}finally{
return
3;
}
}
A:1
B:2
C:3
D:编译错误
A:ConcurrentHashMap使用synchronized关键字保证线程安全
B:HashMap实现了Collection接口
C:Arrays.asList方法返回java.uti.ArrayList对象
D:SimpleDateFormat对象是线程不安全的
A项:ConcurrentHashMap使用segment来分段和管理锁,segment继承自ReentrantLock,因此ConcurrentHashMap使用ReentrantLock来保证线程安全;
B项:
C项:Arrays.asList()
D项:SimpleDateFormal类原文复制:Date formats are not synchronized. It isrecommended to create separate format instances for each thread. Ifmultiple threads access a format concurrently, it must be synchronized externally.
A:调用free()方法
B:代用system.gc()方法
C:赋值给该项对象的引用为null
D:程序员无法明确强制垃圾回收器运行
A:if (x == 0)
B:if (x < 0.00001f)
C:if (fabs(x) < 0.00001f)
D:if (x > -0.00001f)
14.ArrayList list = new ArrayList(20);中的list扩充几次(A)
A:0
B:1
C:2
D:3
ArrayList的构造函数总共有三个:
A:session
B:Cookie
C:地址重写
D:隐藏域
摘自网友的解析:
会话跟踪是一种灵活、轻便的机制,它使Web上的状态编程变为可能。
HTTP是一种无状态协议,每当用户发出请求时,服务器就会做出响应,客户端与服务器之间的联系是离散的、非连续的。当用户在同一网站的多个页面之间转换时,根本无法确定是否是同一个客户,会话跟踪技术就可以解决这个问题。当一个客户在多个页面间切换时,服务器会保存该用户的信息。
有四种方法可以实现会话跟踪技术:URL重写、隐藏表单域、Cookie、Session。
1).隐藏表单域:<input type="hidden">,非常适合不需要大量数据存储的会话应用。
2).URL 重写:URL 可以在后面附加参数,和服务器的请求一起发送,这些参数为名字/值对。
3).Cookie:一个 Cookie 是一个小的,已命名数据元素。服务器使用 SET-Cookie 头标将它作为 HTTP
响应的一部分传送到客户端,客户端被请求保存 Cookie 值,在对同一服务器的后续请求使用一个
Cookie 头标将之返回到服务器。与其它技术比较,Cookie 的一个优点是在浏览器会话结束后,甚至
在客户端计算机重启后它仍可以保留其值
4).Session:使用 setAttribute(String str,Object obj)方法将对象捆绑到一个会话
来自另外一位网友的解析:
HTTP是“无状态”协议:客户程序每次读取 Web 页面,都打开到 Web服务器的单独的连接,并且,服务器也不自动维护客户的上下文信息。即使那些支持持续性 HTTP连接的服务器,尽管多个客户请求连续发生且间隔很短时它们会保持 socket打开,但是,它们也没有提供维护上下文信息的内建支持。上下文的缺失引起许多困难。例如,在线商店的客户向他们的购物车中加入商品时,服务器如何知道购物车中己有何种物品呢?类似地,在客户决定结账时,服务器如何能确定之前创建的购物车中哪个属于此客户呢?这些问题虽然看起来十分简单,但是由于HTTP 的不足,解答它们却异常复杂困难。对于这个问题,存在 3 种典型的解决方案:
Cookie(结合session使用)
可以使用 cookie 存储购物会话的 ID;在后续连接中,取出当前的会话 ID,并使用这个 ID 从服务器上的查找表(lookuptable)中提取出会话的相关信息。 以这种方式使用 cookie 是一种绝佳的解决方案,也是在处理会话时最常使用的方式。但是,sevlet中最好有一种高级的 API来处理所有这些任务,以及下面这些冗长乏味的任务:从众多的其他cookie中(毕竟可能会存在许多cookie)提取出存储会话标识符的 cookie;确定空闲会话什么时候过期,并回收它们;将散列表与每个请求关联起来;生成惟一的会话标识符。
URL 重写
采用这种方式时,客户程序在每个URL的尾部添加一些额外数据。这些数据标识当前的会话,服务器将这个标识符与它存储的用户相关数据关联起来。URL重写是比较不错的会话跟踪解决方案,即使浏览器不支持 cookie 或在用户禁用 cookie 的情况下,这种方案也能够工作。URL重写具有 cookie 所具有的同样缺点,也就是说,服务器端程序要做许多简单但是冗长乏味的处理任务。即使有高层的 API可以处理大部分的细节,仍须十分小心每个引用你的站点的 URL ,以及那些返回给用户的 URL。即使通过间接手段,比如服务器重定向中的Location 字段,都要添加额外的信息。这种限制意味着,在你的站点上不能有任何静态 HTML页面(至少静态页面中不能有任何链接到站点动态页面的链接)。因此,每个页面都必须使用 servlet 或 JSP 动态生成。即使所有的页面都动态生成,如果用户离开了会话并通过书签或链接再次回来,会话的信息也会丢失,因为存储下来的链接含有错误的标识信息。
隐藏的表单域
HTML 表单中可以含有如下的条目:<input type="hidden"name="session" value="a1234">
这个条目的意思是:在提交表单时,要将指定的名称和值自动包括在 GET 或 POST 数据中。这个隐藏域可以用来存储有关会话的信息,但它的主要缺点是:仅当每个页面都是由表单提交而动态生成时,才能使用这种方法。单击常规的超文本链接并不产生表单提交,因此隐藏的表单域不能支持通常的会话跟踪,只能用于一系列特定的操作中,比如在线商店的结账过程。
16.PreparedStatement与Statement的区别:
-->创建时的区别:
Statement statement = conn.createStatement();
PreparedStatement preStatement = conn.prepareStatement(sql);
-->执行的时候:
ResultSet rSet = statement.executeQuery(sql);
ResultSet pSet = preStatement.executeQuery();
由上可以看出,PreparedStatement有预编译的过程,已经绑定sql,之后无论执行多少遍,都不会再去进行编译,
而 statement 不同,如果执行多变,则相应的就要编译多少遍sql,所以从这点看,preStatement 的效率会比 Statement要高一些
17.给出以下代码,请给出结果.()
class Two{ Byte x;}class PassO{ public static void main(String[] args){ PassO p=new Passclass Two{ Byte x;}class PassO{ public static void main(String[] args){ PassO p=new PassO(); p.start(); } void start(){ Two t=new Two(); System.out.print(t.x+””); Two t2=fix(t); System.out.print(t.x+” ” +t2.x); } Two fix(Two tt){ tt.x=42; return tt; }}O(); p.start(); } void start(){ Two t=new Two(); System.out.print(t.x+””); Two t2=fix(t); System.out.print(t.x+” ” +t2.x); } Two fix(Two tt){ tt.x=42; return tt; }}
A:null null 42
B:null 42 42
C:0 0 42
D:0 42 42
E:An exception is thrown at runtime
F:Compilation
特别好的解析,一目了然。
18、在Java7及Java7版本以后中,能做Switch参数类型的是int(byte、short、char)、enum、String;
在Java7版本之前,只有int和enum能够作为switch参数(当然也包括能够自动转为int类型的类型,例如:byte、short、char)。
19、对于JVM内存配置参数:
-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3
A:5120m,1024m
B:5120m,2048m
C:10240m,1024m
D:10240m,2048m解析:-Xmx:最大堆大小,10240M-Xms:初始堆大小即最小内存值,10240M-Xmn:年轻代大小,5120M-XXSurvivorRatio=3Eden:Survivor=3:1,总共有两个Survivor区,所以Eden:总的Survivor区=3:2所以,总的Survivor区=5120*2/5=2048M
20、What results from the following code fragment?(c)
int
i =
5
;
int
j =
10
;
System.out.println(i + ~j);
A:Compilation error because”~”doesn’t operate on integers
B:-5
C:-6
D:15
~10代表对10取反
10的原码:0000 1010
取反:1111 0101
现在问题转化为了求补码为1111 0101的真值。
补码-1 :1111 0100
再取反:0000 1011
得到真值:11
由于补码首位为1,所以真值为-11.
所以~10=-11.
- java---牛客网java专项训练知识点集锦
- 错题集锦(二) -- Java专项
- Java知识点集锦
- JAVA知识点集锦
- Java知识点集锦
- Java知识点集锦
- Java专项
- Android Java小知识点集锦
- 【转载】JAVA知识点集锦(上)
- 【转载】JAVA知识点集锦(中)
- 【转载】JAVA知识点集锦(下)
- 【转载】JAVA知识点集锦(上)
- 【转载】JAVA知识点集锦(中)
- 【转载】JAVA知识点集锦(下)
- 牛客网-java一般版专项练习
- Java专项进阶篇
- java数组专项练习
- 牛课网 Java专项练习
- Android Studio gradle配置详解
- Java 模板方法模式
- 手机卫士—骚扰拦截
- BZOJ2303: [Apio2011]方格染色
- sdut 装船问题
- java---牛客网java专项训练知识点集锦
- 458. Poor Pigs
- 课后知识点回顾十五 网络编程2
- POJ 1679 Kruskal求次小生成树
- 嵌入式第一周学习心得
- Android Studio gradle配置实践
- 2016年11月13日学习总结
- POJ 1734 Sightseeing trip Floyd求最小环
- 第11周项目1-验证算法(1)层次遍历算法的验证