`
tk_zhang
  • 浏览: 233810 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java面试资料(震撼推荐)

    博客分类:
  • Java
阅读更多

<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

JSP方面
1、
forwardredirect的区别
答:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
2、
jsp有哪些内置对象?作用分别是什么?
答:JSP共有以下9种基本内置组件(可与ASP6种内部组件相对应):
 request 对象表示一个HTTP请求

response
对象存储处理结果返回给用户的响应。
out 对象用于将内容写入JSP页面实例的输出流中
pageContext 对象描述某个JSP文档的运行环境,此外,它还实现将控制权从当前页面传输至其他页面的方法

session
对象在用户访问一个Web站点的多个页面时共享信息

application 对象存储运行文档的环境的有关信息

config 对象将Servlet配置数据以Servlet的初始化参数形式存储

page 对象表示JSP
网页本身
,更是Servlet类的实例,可以调用由Servlet类定义的任何方法
exception
针对错误网页,未捕捉的例外
,只适用于JSP错误页面
3、
jsp有哪些动作?作用分别是什么?
:JSP共有以下7种基本动作
jsp:include
:在页面被请求的时候引入一个文件。
jsp:useBean
它用来实例化JavaBean,或者定位一个已经存在的Bean实例,并且把它赋给一个变量名(或者id)。并给定一个具体的范围来确定对象的生命周期。

jsp:setProperty
:设置JavaBean的属性。

jsp:getProperty
:输出某个JavaBean的属性。

jsp:forward
:把请求转到一个新的页面。

jsp:plugin
:根据浏览器类型为Java插件生成OBJECTEMBED
标记
jsp:param:
为其他标签提供附加信息。
4、
JSP中动态INCLUDE与静态INCLUDE的区别?
答:动态INCLUDEjsp:include动作实现
<jsp:include page="included.jsp" flush="true" />
它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数
静态INCLUDEinclude伪码实现,定不会检查所含文件的变化,适用于包含静态页面
<%@ include file="included.htm" %>
5、
两种跳转方式分别是什么?有什么区别?
答:有两种,分别为:
<jsp:include page="included.jsp" flush="true">
<jsp:forward page= "nextpage.jsp"/>
前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于go to 语句。


代码和编程
1、写一个Singleton出来
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。


第二种形式:

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->public class Singleton {
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次     
  //使用时生成实例,提高了效率!

  if (instance==null)
    instance=new Singleton();
return instance;   }
}

其他形式:
定义一个类,它的构造函数为private的,所有方法为static的。
一般认为第一种形式要更加安全些

2、Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?
答:Server端程序:

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->packagetest;
importjava.net.*
;
importjava.io.*
;

publicclass
Server
{
private
ServerSocketss;
private
Socketsocket;
private
BufferedReaderin;
private
PrintWriterout;
public
Server()
{
try

{
ss
=newServerSocket(10000);
while(true
)
{
socket
=
ss.accept();
StringRemoteIP
=
socket.getInetAddress().getHostAddress();
StringRemotePort
=":"+
socket.getLocalPort();
System.out.println(
"Aclientcomein!IP:"+RemoteIP+
RemotePort);
in
=newBufferedReader(new


InputStreamReader(socket.getInputStream()));
Stringline
=in.readLine();
System.out.println(
"Cleintsendis:"+
line);
out
=newPrintWriter(socket.getOutputStream(),true
);
out.println(
"YourMessageReceived!"
);
out.close();
in.close();
socket.close();
}
}
catch
(IOExceptione)
{
out.println(
"wrong"
);
}
}
publicstaticvoid
main(String[]args)
{
new
Server();
}
};

 

Client端程序:

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->package test;

import java.io.*;

import java.net.*;

 

public class Client

{

Socket socket;

BufferedReader in;

PrintWriter out;

public Client()

{

try

{

System.out.println("Try to Connect to 127.0.0.1:10000");

socket = new Socket("127.0.0.1",10000);

System.out.println("The Server Connected!");

System.out.println("Please enter some Character:");

BufferedReader line = new BufferedReader(new

 

InputStreamReader(System.in));

out = new PrintWriter(socket.getOutputStream(),true);

out.println(line.readLine());

in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

System.out.println(in.readLine());

out.close();

in.close();

socket.close();

}catch(IOException e)

{

out.println("Wrong");

}

}

public static void main(String[] args)

{

new Client();

}

};

 

 

3、JAVA实现一种排序,JAVA类实现序列化的方法(二种) 如在COLLECTION框架中,实现比较要实现什么样的接口?

:用插入法进行排序代码如下

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->packagetest;
importjava.util.*
;
class
InsertSort
{
ArrayListal;
publicInsertSort(intnum,int
mod)
{
al
=new
ArrayList(num);
Randomrand
=new
Random();
System.out.println(
"TheArrayListSortBefore:"
);
for(inti=0;i<num;i++
)
{
al.add(
newInteger(Math.abs(rand.nextInt())%mod+1
));
System.out.println(
"al["+i+"]="+
al.get(i));
}
}
publicvoid
SortIt()
{
IntegertempInt;
intMaxSize=1
;
for(inti=1;i<al.size();i++
)
{
tempInt
=
(Integer)al.remove(i);
if(tempInt.intValue()>=((Integer)al.get(MaxSize-1
)).intValue())
{
al.add(MaxSize,tempInt);
MaxSize
++
;
System.out.println(al.toString());
}
else
{
for(intj=0;j<MaxSize;j++
)
{
if


(((Integer)al.get(j)).intValue()
>=tempInt.intValue())
{
al.add(j,tempInt);
MaxSize
++
;
System.out.println(al.toString());
break
;
}
}
}
}
System.out.println(
"TheArrayListSortAfter:"
);
for(inti=0;i<al.size();i++
)
{
System.out.println(
"al["+i+"]="+
al.get(i));
}
}
publicstaticvoid
main(String[]args)
{
InsertSortis
=newInsertSort(10,100
);
is.SortIt();
}
}

 

 

4、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如ABC”4,应该截为AB”,输入ABCDEF”6,应该输出为ABC”而不是ABC+汉的半个

答:代码如下:

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->packagetest;

class
SplitString
{
StringSplitStr;
int
SplitByte;
publicSplitString(Stringstr,int
bytes)
{
SplitStr
=
str;
SplitByte
=
bytes;
System.out.println(
"TheStringis:'"+SplitStr+"';SplitBytes="+
SplitByte);
}
publicvoid
SplitIt()
{
int
loopCount;


loopCount
=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/
Split

Byte
+1
);
System.out.println(
"WillSplitinto"+
loopCount);
for(inti=1;i<=loopCount;i++
)
{
if(i==
loopCount){


System.out.println(SplitStr.substring((i
-1)*
SplitByte,SplitStr.length()));
}
else
{


System.out.println(SplitStr.substring((i
-1)*SplitByte,(i*
SplitByte)));
}
}
}
publicstaticvoid
main(String[]args)
{
SplitStringss
=newSplitString("test中dd文dsaf中男大3443n中国43中国人


0ewldfls
=103",4);
ss.SplitIt();
}
}

 

 

5、可能会让你写一段JdbcOracle的程序,并实现数据查询.

:程序如下:

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->packagehello.ant;
importjava.sql.*
;
publicclass
jdbc
{
StringdbUrl
="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
;
StringtheUser
="admin"
;
StringthePw
="manager"
;
Connectionc
=null
;
Statementconn;
ResultSetrs
=null
;
public
jdbc()
{
try
{
Class.forName(
"oracle.jdbc.driver.OracleDriver"
).newInstance();
c
=
DriverManager.getConnection(dbUrl,theUser,thePw);
conn
=
c.createStatement();
}
catch
(Exceptione){
e.printStackTrace();
}
}
publicboolean
executeUpdate(Stringsql)
{
try

{
conn.executeUpdate(sql);
returntrue;
}
catch
(SQLExceptione)
{
e.printStackTrace();
returnfalse
;
}
}
public
ResultSetexecuteQuery(Stringsql)
{
rs
=null
;
try

{
rs
=conn.executeQuery(sql);
}
catch
(SQLExceptione)
{
e.printStackTrace();
}
return
rs;
}
publicvoid
close()
{
try

{
conn.close();
c.close();
}
catch(Exceptione)
{
e.printStackTrace();
}
}
publicstaticvoid
main(String[]args)
{
ResultSetrs;
jdbcconn
=new
jdbc();
rs
=conn.executeQuery("select*fromtest"
);
try
{
while
(rs.next())
{
System.out.println(rs.getString(
"id"
));
System.out.println(rs.getString(
"name"
));
}
}
catch
(Exceptione)
{
e.printStackTrace();
}
}
}

 

 

6、jdom解析xml文件时如何解决中文问题?如何解析?

:看如下代码,用编码方式加以解决

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->packagetest;
importjava.io.*
;
publicclass
DOMTest
{
privateStringinFile="c:\\people.xml"
;
privateStringoutFile="c:\\people.xml"
;
publicstaticvoid
main(Stringargs[])
{
new
DOMTest();
}
public
DOMTest()
{
try

{
javax.xml.parsers.DocumentBuilderbuilder
=


javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
org.w3c.dom.Documentdoc
=builder.newDocument();
org.w3c.dom.Elementroot
=doc.createElement("老师"
);
org.w3c.dom.Elementwang
=doc.createElement(""
);
org.w3c.dom.Elementliu
=doc.createElement(""
);
wang.appendChild(doc.createTextNode(
"我是王老师"
));
root.appendChild(wang);
doc.appendChild(root);
javax.xml.transform.Transformertransformer
=

javax.xml.transform.TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,
"gb2312");
transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,
"yes"
);


transformer.transform(
new
javax.xml.transform.dom.DOMSource(doc),
new


javax.xml.transform.stream.StreamResult(outFile));
}
catch(Exceptione)
{
System.out.println(e.getMessage());
}
}
}

 

 

7、将一个键盘输入的数字转化成中文输出

(例如:输入:1234567输出:一百二拾三万四千五百六拾七)
用java语言实现,,请编一段程序实现!

 

8、如何校验数字型?

 

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->publicclassReader{
private
StringstrNum;
private
StringstrNumChFormat;
private
StringstrNumTemp;
privateint
intNumLen;
private
StringstrBegin;
public
Reader(StringstrNum){
this.strNum=
strNum;
}
publicboolean
check(StringstrNum){
booleanvalid=false
;

if(strNum.substring(0,1).equals("0"
)){
this.strNum=strNum.substring(1
);
}
try
{
new
Double(strNum);
valid
=true
;
}
catch
(NumberFormatExceptionex){
System.out.println(
"Badnumberformat!"
);
}
return
valid;
}
publicvoid
init(){
strNumChFormat
=""
;
intNumLen
=
strNum.length();
strNumTemp
=
strNum;
strNumTemp
=strNumTemp.replace('1',''
);
strNumTemp
=strNumTemp.replace('2',''
);
strNumTemp
=strNumTemp.replace('3',''
);
strNumTemp
=strNumTemp.replace('4',''
);
strNumTemp
=strNumTemp.replace('5',''
);
strNumTemp
=strNumTemp.replace('6',''
);
strNumTemp
=strNumTemp.replace('7',''
);
strNumTemp
=strNumTemp.replace('8',''
);
strNumTemp
=strNumTemp.replace('9',''
);
分享到:
评论

相关推荐

    JAVA面试资料JAVA面试资料 JAVA面试资料 JAVA面试资料

    JAVA面试资料JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA面试资料 JAVA...

    面试资料,JAVA面试资料

    面试资料,JAVA面试资料 面试资料,JAVA面试资料 面试资料,JAVA面试资料 面试资料,JAVA面试资料 面试资料,JAVA面试资料 面试资料,JAVA面试资料 面试资料,JAVA面试资料 面试资料,JAVA面试资料

    Java面试资料(阿里内部资料).pdf

    Java面试资料(阿里内部资料).pdf

    java 面试 java 面试 java 面试

    java 面试java 面试java 面试java 面试java 面试

    2023黑马面试宝典-Java面试宝典大全-java面试宝典黑马

    Java面试宝典是Java程序员求职面试的重要参考资料,它涵盖了Java编程语言的核心概念、高级特性、设计模式、并发处理、框架应用、数据库交互等多个方面。以下将详细解析这些关键知识点: 1. **Java基础**:面试中,...

    2024 Java面试宝典合集

    这份"2024 Java面试宝典合集"无疑是准备Java求职面试者的宝贵资源。它涵盖了多个关键领域,包括Spring框架、并发编程、Java核心知识以及面试策略等。下面我们将详细探讨这些知识点。 1. **Spring Boot面试题**:...

    java面试宝典2018版

    《Java面试宝典2018版》是针对Java开发者准备面试的重要参考资料,它涵盖了Java编程语言、Java虚拟机(JVM)、并发编程、框架、设计模式等多个关键领域的重要知识点。这本书旨在帮助Java程序员深入理解技术原理,...

    java面试题总结资料

    这份"java面试题总结资料"涵盖了多个Java核心领域的关键知识点,包括但不限于: 1. **基础语法**:理解基本的数据类型(如整型、浮点型、字符型和布尔型),变量的声明与使用,以及运算符的优先级。同时,要熟悉...

    【Java面试核心点】超全的互联网大厂Java面试题和学习资料大合集(211份).7z

    Java面试题,超全的互联网大厂Java面试题和学习资料大合集,共211份。 文件太多、资料很大,解压有1个多G。内容就不一一列举了,主要内容包含: 2021 Java面试学习资料(14份) 2021最新Java面试题资料(33份) 史...

    Java面试题合集最新版2024.zip

    Java面试通常涵盖多个方面,包括Java基础知识、编程技能、问题解决能力,以及对Java生态系统和相关技术的理解。以下是一些建议的Java面试准备要点和资源描述: 一、Java基础知识 数据类型、变量与运算符:理解Java...

    java面试资料积累,经验分享.zip

    这份"java面试资料积累,经验分享.zip"压缩包显然是一份宝贵的资源,包含了作者在面试过程中遇到的各类Java问题和经验总结,对于想要深入学习Java或者正在准备Java面试的人来说,无疑是宝贵的参考资料。 一、基础...

    2023java最新面试资料汇总

    2023java最新面试资料汇总,包含: 10万字总结java面试题和答案一份 阿里大佬总结的Java面试资料一份 面试汇总网盘资源一份 MIC老师最新面试文档一份 面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象...

    JAVA后端详细面试资料

    包括 Dubbo、Java基础、并发、集合、BIO,NIO,AIO,Netty、ElastSerarch、JVM、Linux、Mybatis、kafka、MySQL、Redis、RabbitMQ、Spring系列、设计模式、计算机网络等等详细面试题

    2024最强Java面试八股文过过过

    这份资料旨在帮助求职者系统地复习和掌握Java及相关技术的核心知识点,从而在面试中取得更好的成绩。 该资源不仅适用于校招,也适用于社招。无论您是一名即将毕业的学生还是已经有一定工作经验的开发者,都可以通过...

    2024最强Java面试八股文

    这份资料旨在帮助求职者系统地复习和掌握Java及相关技术的核心知识点,从而在面试中取得更好的成绩。 该资源不仅适用于校招,也适用于社招。无论您是一名即将毕业的学生还是已经有一定工作经验的开发者,都可以通过...

    2018-Java最全面试资料.doc

    2018-Java最全面试资料.doc 2018-Java最全面试资料.doc 2018-Java最全面试资料.doc

    Java面试汇总.pdf+总结全面+八股文

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Java 高频面试题。...

    Java面试宝典和2018Bat公司面试题

    本资源包"Java面试宝典和2018Bat公司面试题"包含了针对Java程序员精心整理的面试资料,旨在帮助求职者全面了解并掌握Java技术的核心知识点,以及在BAT(百度、阿里巴巴、腾讯)等知名互联网公司面试中可能遇到的问题...

    Java面试题2022

    在准备2022年的Java面试时,了解和掌握关键知识点是至关重要的。Java作为一款广泛应用的后端开发语言,其面试通常会涵盖基础语法、面向对象编程、集合框架、多线程、JVM内存管理、数据库交互以及开源框架等方面。...

    2022年一线大厂金三银四JAVA面试资料(部分附答案)-150份.zip

    2022年一线大厂金三银四JAVA面试资料(部分附答案)-150份2022年一线大厂金三银四JAVA面试资料(部分附答案)-150份2022年一线大厂金三银四JAVA面试资料(部分附答案)-150份2022年一线大厂金三银四JAVA面试资料...

Global site tag (gtag.js) - Google Analytics