자바 면접 자료 (1)

더 읽 기
1. 역할 영역 Public, private, proctected, 그리고 쓰 지 않 을 때의 차이
답: 차 이 는 다음 과 같다.
역할 영역
현재 클래스
동일 패키지
자손 류
기타 패키지
public




protected



×
friendly


×
×
private

×
×
×
쓰 지 않 을 때 기본 값 은 friendly
2. Array List 와 Vector 의 차이, HashMap 과 Hashtable 의 차이
답: Array List 와 Vector 는 주로 두 가지 측면 에서 볼 때.
  • 1. 동기 성: Vector 는 스 레 드 가 안전 하 다. 즉, 동기 화 된 것 이 고 Array List 는 라인 프로그램 이 안전 하지 않 으 며 동기 화 된 것 이 아니다
  • 2. 데이터 증가: 증가 가 필요 할 때 Vector 는 기본 적 으로 원래 의 배로 증가 하고 Array List 는 원래 의 절반
  • 이다.
  • HashMap 과 HashTable 은 주로 세 가지 측면 에서 볼 때.
  • 1. 역사적 원인: Hashtable 은 오래된 Dictionary 류 를 바탕 으로 하 는 것 이 고 HashMap 은 자바 1.2 가 도입 한 Map 인터페이스의 실현
  • 2. 동기 성: Hashtable 은 스 레 드 가 안전 하 다. 즉, 동기 화 된 것 이 고 HashMap 은 라인 프로그램 이 안전 하지 않 으 며 동기 화 된 것 이 아니다
  • 3. 값: HashMap 만 이 빈 값 을 표 항목 의 key 나 value
  • 로 사용 할 수 있 습 니 다.
    3. char 형 변수 에 중국어 한 자 를 저장 할 수 있 습 니까?왜?
    답: 중국어 로 정의 할 수 있 습 니 다. 자바 에 서 는 유 니 코드 로 인 코딩 되 어 있 으 며, 하나의 char 는 16 개의 바이트 를 차지 하기 때문에...     
        중국어 하나 틀 어도 돼 요.
    4. 다 중 스 레 드 는 몇 가지 실현 방법 이 있 는데 모두 무엇 입 니까?동기 화 에는 몇 가지 실현 방법 이 있 는데, 모두 무엇 입 니까?
    답: 다 중 스 레 드 는 두 가지 실현 방법 이 있 는데 그것 이 바로 Thread 류 를 계승 하고 Runnable 인 터 페 이 스 를 실현 하 는 것 이다.
       동기 화 실현 에는 두 가지 가 있 는데 그것 이 바로 synchronized, wait 와 notify 이다.
    5. 상속 시 클래스 의 집행 순서 문 제 는 보통 선택 문제 입 니 다. 무엇 을 출력 하 시 겠 습 니까?
    답: 부류:
    package test; 
    public class FatherClass 
    { 
    public FatherClass() 
    { 
    System.out.println("FatherClass Create"); 
    } 
    }

    하위 클래스:
    package test; 
    import test.FatherClass; 
    public class ChildClass extends FatherClass 
    { 
    public ChildClass() 
    { 
    System.out.println("ChildClass Create"); 
    } 
    public static void main(String[] args) 
    { 
    FatherClass fc = new FatherClass(); 
    ChildClass cc = new ChildClass(); 
    } 
    } 

    출력 결과:
    C:\>java test.ChildClass
    FatherClass Create
    FatherClass Create
    ChildClass Create
    6. 내부 류 의 실현 방식 은?
    답: 예시 코드 는 다음 과 같다.
    package test; 
    public class OuterClass 
    { 
    private class InterClass 
    { 
    public InterClass() 
    { 
    System.out.println("InterClass Create"); 
    } 
    } 
    public OuterClass() 
    { 
    InterClass ic = new InterClass(); 
    System.out.println("OuterClass Create"); 
    } 
    public static void main(String[] args) 
    { 
    OuterClass oc = new OuterClass(); 
    } 
    } 

    출력 결과:
    C:\>java test/OuterClass
    InterClass Create
    OuterClass Create
    또 하나의 예제:
    public class OuterClass {
    private double d1 = 1.0; 
    //insert code here 
    } 
    You need to insert an inner class declaration at line 3. Which two inner class declarations are
    
    valid?(Choose two.) 
    A. class InnerOne{ 
    public static double methoda() {return d1;} 
    } 
    B. public class InnerOne{ 
    static double methoda() {return d1;} 
    } 
    C. private class InnerOne{ 
    double methoda() {return d1;} 
    } 
    D. static class InnerOne{ 
    protected double methoda() {return d1;} 
    } 
    E. abstract class InnerOne{ 
    public abstract double methoda(); 
    } 

    설명 은 다음 과 같다.
    1. 정적 내부 클래스 는 정적 구성원 이 있 을 수 있 지만 정적 내부 클래스 가 아 닌 정적 구성원 이 있 을 수 없습니다. 그러므로 A, B 오류
    2. 정적 내부 클래스 의 비정 상 구성원 은 외부 클래스 의 정적 변 수 를 방문 할 수 있 으 며 외부 클래스 의 비정 상 변 수 를 방문 할 수 없습니다. return d1 오류 가 발생 했 습 니 다.
    그러므로 D 잘못
    3. 비정 상 내부 클래스 의 비정 상 구성원 은 외부 클래스 의 비정 상 변 수 를 방문 할 수 있 습 니 다. 그러므로 C 가 정확 합 니 다.
    4. 정 답 은 C, E 입 니 다.
    7. float 형 float f = 3.4 가 정확 합 니까?
    답: 정확 하지 않 습 니 다. 정밀도 가 정확 하지 않 으 면 강제 유형 으로 전환 해 야 합 니 다. 다음 과 같 습 니 다. float f = (float) 3.4
    8. JAVA 의 Collection FrameWork (자신의 데이터 구 조 를 어떻게 쓰 는 지 포함) 를 소개 합 니까?
    답: Collection FrameWork 는 다음 과 같다.
    Collection
    ├List
    │├LinkedList
    │├ArrayList
    │└Vector
    │ └Stack
    └Set
    Map
    ├Hashtable
    ├HashMap
    └WeakHashMap
    Collection 은 가장 기본 적 인 집합 인터페이스 로 하나의 Collection 은 Object, 즉 Collection 의 요소 (Elements) 를 대표 합 니 다.
    Map 은 key 에서 value 까지 의 맵 을 제공 합 니 다.
    9. 추상 류 와 인터페이스?
    답: 추상 류 와 인 터 페 이 스 는 모두 추상 화 에 사용 되 지만 추상 류 (JAVA 에서) 는 자신의 부분 을 실현 할 수 있 고 인 터 페 이 스 는 하나의 표지 (동시에 다 중 계승 기능) 이다.
    10. JAVA 로 순 위 를 정 하고 JAVA 류 를 서열 화 하 는 방법 (두 가지)? 예 를 들 어 COLLECTION 프레임 워 크 에서 비 교 를 실현 하려 면 어떤 인 터 페 이 스 를 실현 해 야 합 니까?
    답: 삽입 법 으로 정렬 코드 는 다음 과 같다.
    package test; 
    import java.util.*; 
    class InsertSort 
    { 
    ArrayList al; 
    public InsertSort(int num,int mod) 
    { 
    al = new ArrayList(num); 
    Random rand = new Random(); 
    System.out.println("The ArrayList Sort Before:"); 
    for (int i=0;i=((Integer)al.get(MaxSize-1)).intValue()) 
    { 
    al.add(MaxSize,tempInt); 
    MaxSize++; 
    System.out.println(al.toString()); 
    } else { 
    for (int j=0;j=tempInt.intValue()) 
    { 
    al.add(j,tempInt); 
    MaxSize++; 
    System.out.println(al.toString()); 
    break; 
    } 
    } 
    } 
    } 
    System.out.println("The ArrayList Sort After:"); 
    for(int i=0;i 
     
    JAVA java.io.Serializable
    Collection Comparable Comparator


    11、STRING STRINGBUFFER 。
    :STRING ,STRINGBUFFER 。 , , StringBuffer, String, StringBuffer toString()

    ######################################################################
    Jsp

    1、jsp ? ?
    :JSP 9 ( ASP 6 ):
     
    • request , GET/POST
    • response
    • pageContext
    • session
    • application servlet
    • out
    • config servlet
    • page JSP
    • exception ,


    2、jsp ? ?
    :JSP 6
    • jsp:include: 。
    • jsp:useBean: JavaBean。
    • jsp:setProperty: JavaBean 。
    • jsp:getProperty: JavaBean 。
    • jsp:forward: 。
    • jsp:plugin: Java OBJECT EMBED


    3、JSP INCLUDE INCLUDE ?
    : INCLUDE jsp:include
    , ,
    INCLUDE include , ,


    4、 ? ?
    : , :


    include , , 。 , 。 . , 。 go to 。


    #####################################################################
    Servlet

    1、 Servlet ?
    :servlet , 、 、 。 javax.servlet.Servlet init,service destroy

    2、JAVA SERVLET API forward() redirect() ?
    : , ; , , 。 , 。 , , , forward() , , 。 , , , sendRedirect() 。


    3、Servlet
    public class ServletName extends HttpServlet { 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws 
    ServletException, IOException { 
    } 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws 
    ServletException, IOException { 
    } 
    }

    ###################################################################
    Jdbc, Jdo 측
    1. Jdbc 연결 Oracle 프로그램 을 작성 하고 데이터 조 회 를 실현 할 수 있 습 니 다.
    답: 프로그램 은 다음 과 같 습 니 다.
    package hello.ant; 
    import java.sql.*; 
    public class jdbc 
    { 
    String dbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl" 
    String theUser="admin" 
    String thePw="manager" 
    Connection c=null; 
    Statement conn; 
    ResultSet rs=null; 
    public jdbc() 
    { 
    try{ 
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
    c = DriverManager.getConnection(dbUrl,theUser,thePw); 
    conn=c.createStatement(); 
    }catch(Exception e){ 
    e.printStackTrace(); 
    } 
    } 
    public boolean executeUpdate(String sql) 
    { 
    try 
    { 
    conn.executeUpdate(sql); 
    return true; 
    } 
    catch (SQLException e) 
    { 
    e.printStackTrace(); 
    return false; 
    } 
    } 
    public ResultSet executeQuery(String sql) 
    { 
    rs=null; 
    try 
    { 
    rs=conn.executeQuery(sql); 
    } 
    catch (SQLException e) 
    { 
    e.printStackTrace(); 
    } 
    return rs; 
    } 
    public void close() 
    { 
    try 
    { 
    conn.close(); 
    c.close(); 
    } 
    catch (Exception e) 
    { 
    e.printStackTrace(); 
    } 
    } 
    public static void main(String[] args) 
    { 
    ResultSet rs; 
    jdbc conn = new jdbc(); 
    rs=conn.executeQuery("select * from test"); 
    try{ 
    while (rs.next()) 
    { 
    System.out.println(rs.getString("id")); 
    System.out.println(rs.getString("name")); 
    } 
    }catch(Exception e) 
    { 
    e.printStackTrace(); 
    } 
    } 
    }
    

    2, Class. forName 의 역할?
    답: 이 접근 을 호출 하여 문자열 로 클래스 이름 을 지정 한 대상 을 되 돌려 줍 니 다.
    3. 제 도 는 무엇 입 니까?
    답: JDO 는 자바 대상 의 지속 적 인 새로운 규범 으로 자바 data object 의 줄 임 말 이자 특정한 데이터 창고 에 있 는 대상 을 액세스 하 는 표준화 API 입 니 다. JDO 는 투명 한 대상 저장 소 를 제공 하기 때문에 개발 자 에 게 데이터 저장 대상 은 액 외 코드 (예 를 들 어 JDBC API 사용) 가 전혀 필요 하지 않 습 니 다.. 이러한 번 거 로 운 정례 작업 은 이미 JDO 제품 공급 업 체 에 이전 되 어 개발 자 들 을 해탈 시 켜 업무 논리 에 시간 과 정력 을 집중 시 켰 다. 또한 JDO 는 모든 데이터 베이스 에서 실행 할 수 있 기 때문에 매우 유연 하 다. JDBC 는 관계 데이터 베 이 스 를 대상 으로 만 작 동 된다.(RDBMS) JDO 는 더욱 통용 되 고 모든 데이터 베이스 에 저장 기능 을 제공 합 니 다. 예 를 들 어 관계 데이터 베이스, 파일, XML 과 대상 데이터 베이스 (ODBMS) 등 을 제공 하여 응용 을 이식 할 수 있 게 합 니 다.
    ###################################################################
    Xml 쪽:
    1. xml 는 어떤 해석 기술 이 있 습 니까? 차이 점 은 무엇 입 니까?
    답: DOM, SAX, STAX 등 이 있 습 니 다.
    DOM: 대형 파일 을 처리 할 때 성능 이 매우 떨 어 집 니 다. 이 문 제 는 DOM 의 트 리 구조 로 인해 발생 합 니 다. 이 구조 가 사용 하 는 메모리 가 비교적 많 습 니 다. 또한 DOM 은 파일 을 처리 하기 전에 전체 문 서 를 메모리 에 불 러 와 야 합 니 다. XML 에 대한 무 작위 접근 에 적합 합 니 다. SAX 는 DOM 이 아 닙 니 다. SAX 는 이벤트 구동 형의 XML 해석 방식 입 니 다. XML 파일 을 순서대로 읽 습 니 다. 한 번 에 모두 불 러 올 필요 가 없습니다.전체 파일 입 니 다. 파일 시작, 문서 끝, 탭 시작 과 탭 이 끝 날 때 이벤트 가 발생 합 니 다. 사용 자 는 리 셋 이벤트 에 처리 코드 를 기록 하여 XML 파일 을 처리 합 니 다. XML 순서 에 접근 하기에 적합 합 니 다.
    STAX:Streaming API for XML (StAX)
    2. 프로젝트 에서 xml 기술 의 어떤 부분 을 사 용 했 습 니까? 어떻게 실 현 했 습 니까?
    답: 데이터 저장, 정보 설정 두 가지 측면 을 사 용 했 습 니 다. 데이터 교환 플랫폼 을 만 들 때 데이터 원본 이 되 지 않 는 데 이 터 를 XML 파일 로 조립 한 다음 XML 파일 을 압축 하여 암호 화 한 후 네트워크 를 통 해 수신 자 에 게 전송 하고 복호화 와 압축 해 제 를 받 은 후 XML 파일 과 관련 정 보 를 복원 하여 처리 합 니 다. 소프트웨어 설정 을 할 때 XML 을 이용 하여 편리 하 게 진행 할 수 있 습 니 다. 소프트웨어 설정의 각종 설정 매개 변 수 는 XML 파일 에 저 장 됩 니 다.
    3. jdom 으로 xml 파일 을 분석 할 때 중국어 문 제 를 어떻게 해결 합 니까? 어떻게 해석 합 니까?
    답: 다음 코드 를 보고 인 코딩 방식 으로 해결 합 니 다.
    package test; 
    import java.io.*; 
    public class DOMTest 
    { 
    private String inFile = "c:\\people.xml" 
    private String outFile = "c:\\people.xml" 
    public static void main(String args[]) 
    { 
    new DOMTest(); 
    } 
    public DOMTest() 
    { 
    try 
    { 
    javax.xml.parsers.DocumentBuilder builder =
    
    javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
    org.w3c.dom.Document doc = builder.newDocument(); 
    org.w3c.dom.Element root = doc.createElement("  "); 
    org.w3c.dom.Element wang = doc.createElement(" "); 
    org.w3c.dom.Element liu = doc.createElement(" "); 
    wang.appendChild(doc.createTextNode("     ")); 
    root.appendChild(wang); 
    doc.appendChild(root); 
    javax.xml.transform.Transformer transformer = 
    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 (Exception e) 
    { 
    System.out.println (e.getMessage()); 
    } 
    } 
    }

    4. 프로 그래 밍 은 JAVA 로 XML 을 해석 하 는 방식 입 니 다.
    답: XML 을 SAX 방식 으로 해석 합 니 다. XML 파일 은 다음 과 같 습 니 다.
     
     
        
         
    6258113 
     ,1955  ,  ,95        
     

    이벤트 리 셋 클래스 SAXHandler. java
    import java.io.*; 
    import java.util.Hashtable; 
    import org.xml.sax.*; 
    public class SAXHandler extends HandlerBase 
    { 
    private Hashtable table = new Hashtable(); 
    private String currentElement = null; 
    private String currentValue = null; 
    public void setTable(Hashtable table) 
    { 
    this.table = table; 
    } 
    public Hashtable getTable() 
    { 
    return table; 
    } 
    public void startElement(String tag, AttributeList attrs) 
    throws SAXException 
    { 
    currentElement = tag; 
    } 
    public void characters(char[] ch, int start, int length) 
    throws SAXException 
    { 
    currentValue = new String(ch, start, length); 
    } 
    public void endElement(String name) throws SAXException 
    { 
    if (currentElement.equals(name)) 
    table.put(currentElement, currentValue); 
    } 
    } 

    JSP 콘 텐 츠 디 스 플레이 원본, SaxXml. jsp:
     
     
      XML  people.xml 
     
     
     
     
     
     
     
     
     
     
         "); 
    out.println("  " + "" + 
    (String)hashTable.get(new String("name")) + ""); 
    out.println("  " + "" + 
    (String)hashTable.get(new String("college"))+""); 
    out.println("  " + "" + 
    (String)hashTable.get(new String("telephone")) + ""); 
    out.println("  " + "" + 
    (String)hashTable.get(new String("notes")) + ""); 
    out.println(""); 
    %> 
     
    

    ################################################################
    J2EE, MVC 쪽
    1. MVC 의 각 부분 은 모두 그런 기술 로 이 루어 집 니까? 어떻게 실현 합 니까?
    답: MVC 는 Model - View - Controller 의 약자 입 니 다. "Model" 은 응용 업무 논리 (자바 빈, EJB 구성 요 소 를 통 해 이 루어 짐) 를 대표 합 니 다. "View" 는 응용 표현 면 (JSP 페이지 에서 생 성 됨) 이 고 "Controller" 는 응용 프로 세 스 제어 (일반적으로 Servlet) 를 제공 합 니 다.이러한 디자인 모델 을 통 해 응용 논리, 처리 과정 과 디 스 플레이 논 리 를 서로 다른 구성 요소 로 나 누 어 실현 합 니 다. 이 구성 요소 들 은 상호작용 과 재 활용 을 할 수 있 습 니 다.
    2, J2EE 는 무엇 입 니까?
    답: Je 22 는 Sun 회사 가 제시 한 다 층 (multi - diered), 분포 식 (distributed), 구성 요소 (component - base) 를 바탕 으로 하 는 기업 급 응용 모델 (enterpriese application model) 입 니 다. 이러한 응용 시스템 에서 기능 에 따라 서로 다른 구성 요소 로 나 눌 수 있 습 니 다. 이 구성 요소 들 은 서로 다른 컴퓨터 에서 도 사용 할 수 있 고 해당 하 는 차원 (tier) 에 있 습 니 다. 소속 차원 은 고객 층 을 포함 합 니 다.(clietn tier) 구성 요소, 웹 층 과 구성 요소, Business 층 과 구성 요소, 기업 정보 시스템 (EIS) 층.
    3. WEB SERVICE 명사 해석. JSWDL 개발 패키지 의 소개. JAXP, JAXM 의 해석. SOAP, UDDI, WSDL 해석.
    답: 웹 서비스 설명 언어 WSDL
    SOAP 는 단순 대상 접근 프로 토 콜 (Simple Object Access Protocol) 로 XML 인 코딩 정 보 를 교환 하 는 경량급 프로 토 콜 입 니 다.
    UDDI 의 목적 은 전자 상 거래 를 위 한 기준 을 구축 하 는 것 이다. UDDI 는 웹 기반 의 분포 식, 웹 서비스 에 제공 하 는 정보 등록 센터 의 실현 표준 규범 이자 기업 이 자신 이 제공 하 는 웹 서 비 스 를 등록 하여 다른 기업 이 실현 할 수 있 도록 하 는 방문 협의의 실현 기준 도 포함한다.
    4. STRUTS 의 응용 (예 를 들 어 STRUTS 구조)
    답: Struts 는 자바 Servlet / 자바 서버 페이지 기술 을 사용 하여 웹 응용 프로그램의 오픈 소스 코드 를 개발 하 는 framework 입 니 다. Struts 를 사용 하면 MVC (Model - View - Controller) 디자인 모델 을 기반 으로 하 는 응용 구 조 를 열 수 있 습 니 다. Struts 는 다음 과 같은 주요 기능 이 있 습 니 다.
  • 1. controller servlet 를 포함 하여 사용자 의 요청 을 해당 하 는 Action 대상 에 보 낼 수 있 습 니 다.
  • 2. JSP 자유 태그 라 이브 러 리, contrller servlet 에서 관련 지원 을 제공 하여 개발 자 들 이 대화 형 폼 애플 리 케 이 션 을 만 드 는 데 도움 을 줍 니 다.
  • 3. 일련의 실 용적 인 대상 을 제공 합 니 다. XML 처리, 자바 reflection API 를 통 해 자바 빈 스 속성, 국제 화 된 알림 과 정 보 를 자동 으로 처리 합 니 다.
  • 좋은 웹페이지 즐겨찾기