집 >Java >Java인터뷰 질문들 >javaweb 인터뷰 질문 (3)
AJAX의 장점과 단점은 무엇인가요?
장점:
1. 가장 큰 포인트는 페이지가 새로고침되지 않고, 사용자 경험이 매우 좋습니다. > (권장 학습: java 인터뷰 질문 )
2. 비동기 모드를 사용하여 더 빠른 응답 기능으로 서버와 통신합니다.
3. 이전에 서버에서 부담했던 작업 중 일부를 클라이언트로 전송하여 클라이언트의 유휴 용량을 활용하여 처리할 수 있어 서버 및 대역폭의 부담을 줄이고 공간 및 광대역 임대 비용을 절약할 수 있습니다. 그리고 서버의 부담을 줄이기 위해 ajax의 원칙은 "요청 시 데이터를 가져오는 것"인데, 이는 중복된 요청과 응답으로 인해 발생하는 서버의 부담을 최소화할 수 있습니다.
4. 표준화되고 널리 지원되는 기술을 기반으로 플러그인이나 애플릿을 다운로드할 필요가 없습니다.
단점:
1. Ajax는 브라우저 뒤로 버튼을 지원하지 않습니다.
2. 보안 문제 AJAX는 서버와의 상호 작용 세부 정보를 노출합니다.
3. 검색 엔진에 대한 지원이 상대적으로 약합니다.
4. 프로그램의 예외 메커니즘을 삭제했습니다.
5. 디버깅이 쉽지 않습니다.
AJAX 애플리케이션과 기존 웹 애플리케이션의 차이점은 무엇인가요?
기존 Javascript 프로그래밍에서는 서버 측 데이터베이스나 파일에서 정보를 얻거나 클라이언트 정보를 서버로 보내려면 HTML 양식을 만든 다음 데이터를 서버에 GET 또는 POST해야 합니다.
사용자는 데이터 정보를 보내거나 받으려면 "제출" 버튼을 클릭해야 하며, 서버가 요청에 응답하고 페이지가 다시 로드될 때까지 기다려야 합니다.
서버가 매번 새 페이지를 반환하기 때문에 기존 웹 애플리케이션은 느리고 사용자에게 친숙하지 않을 수 있습니다.
AJAX 기술을 사용하면 Javascript는 XMLHttpRequest 객체를 통해 서버와 직접 상호 작용할 수 있습니다.
HTTP 요청을 통해 웹 페이지는 웹 서버에 요청을 보내고 웹 서버에서 반환된 정보를 받아들일 수 있습니다(페이지를 다시 로드하지 않고). 사용자는 페이지가 계속 표시된다는 느낌을 받습니다. 새로 고쳐지고 Javascript가 표시되지 않습니다. 백그라운드에서 요청을 보내고 응답을 받는 경험이 매우 좋습니다.
Ajax 구현 과정은 어떻게 되나요?
(1) XMLHttpRequest 객체를 생성합니다. 즉, 비동기 호출 객체를 생성합니다.
(2) 새 HTTP 요청을 생성하고 HTTP 요청의 메서드, URL 및 확인 정보를 지정합니다.
(3) 설정합니다. HTTP 요청 상태 변경에 대한 응답 함수입니다.
(4) HTTP 요청을 보냅니다.
(5) 비동기 호출로 반환된 데이터를 가져옵니다.
(6) JavaScript 및 DOM을 사용하여 부분 새로 고침을 구현합니다.
됩니다. 특정:
1. XNLHttpRequest 객체를 생성합니다
(不考虑ie)XMLHttpRequest request = new XMLHttprequest();
2. 새로운 Http 요청을 생성합니다
XMLHttprequest.open(method,url,flag,name,password);
3. Http 요청 변경에 응답하는 함수를 설정합니다
XMLHttprequest.onreadystatechange=getData; function getData(){ if(XMLHttprequest.readyState==4){ //获取数据 } }
5. 비동기 호출에 의해 반환된 객체,
XMLHttprequest.send(data);
6. js와 DOM을 사용하여 부분 새로 고침 달성
myDiv.innerHTML=''새로 고친 데이터입니다.''
데이터베이스의 세 가지 패러다임에 대해 간략하게 이야기해 주시겠습니까?첫 번째 정규형: 데이터베이스 테이블의 모든 필드는 분할할 수 없습니다.
두 번째 정규형: 데이터베이스 테이블의 기본이 아닌 속성은 기본 키에만 의존합니다.
세 번째 정규형: 기본이 아닌 속성 간에는 관계가 없습니다. 속성 및 키워드 전이적 기능 종속성
Java 컬렉션 프레임워크란 무엇입니까? 컬렉션 프레임워크의 장점을 말해 보세요.모든 프로그래밍 언어에는 컬렉션이 있으며 Java의 초기 버전에는 Vector, Stack, HashTable 및 Array와 같은 여러 컬렉션 클래스가 포함되어 있습니다.
컬렉션이 널리 사용됨에 따라 Java 1.2는 모든 컬렉션 인터페이스, 구현 및 알고리즘을 포함하는 컬렉션 프레임워크를 제안합니다. Java는 오랫동안 스레드 안전성을 보장하면서 제네릭 및 동시 컬렉션 클래스를 사용하는 과정을 거쳐 왔습니다. 또한 Java 동시성 패키지의 차단 인터페이스와 해당 구현도 포함됩니다.
컬렉션 프레임워크의 장점은 다음과 같습니다.(1) 자체 컬렉션 클래스를 구현하는 대신 핵심 컬렉션 클래스를 사용하여 개발 비용을 줄입니다.
(2) 엄격하게 테스트된 컬렉션 프레임워크 클래스를 사용하면 코드 품질이 향상됩니다.
(3) JDK와 함께 제공되는 컬렉션 클래스를 사용하면 코드 유지 관리 비용을 줄일 수 있습니다.
(4) 재사용성 및 조작성.
Java 컬렉션 프레임워크의 기본 인터페이스는 무엇입니까?Collection은 컬렉션 수준의 루트 인터페이스입니다. 컬렉션은 해당 요소인 개체 집합을 나타냅니다. Java 플랫폼은 이 인터페이스의 직접적인 구현을 제공하지 않습니다.
세트는 중복된 요소를 포함할 수 없는 세트입니다. 이 인터페이스는 수학적 집합 추상화를 모델로 하며 카드 한 벌과 같은 집합을 나타내는 데 사용됩니다.
List는 반복되는 요소를 포함할 수 있는 순서가 지정된 컬렉션입니다. 인덱스를 통해 모든 요소에 액세스할 수 있습니다. 목록은 길이가 동적으로 변경되는 배열과 비슷합니다.
Map은 키를 값에 매핑하는 개체입니다. Map에는 중복 키가 포함될 수 없습니다. 각 키는 최대 하나의 값만 매핑할 수 있습니다.
다른 인터페이스로는 Queue, Dequeue, SortedSet, SortedMap 및 ListIterator가 있습니다.
컬렉션 프레임워크에서 제네릭의 장점은 무엇인가요?Java1.5에는 제네릭이 도입되었으며 모든 컬렉션 인터페이스와 구현에서는 이를 광범위하게 사용합니다. 제네릭을 사용하면 보유할 수 있는 개체 유형을 컬렉션에 제공할 수 있습니다. 따라서 다른 유형의 요소를 추가하면 컴파일 시 오류가 발생합니다. 이렇게 하면 컴파일 타임에 오류 메시지가 표시되므로 런타임 시 ClassCastException이 발생하지 않습니다. Generics는 또한 코드를 더 깔끔하게 만들어주므로 명시적인 변환 및 instanceOf 연산자를 사용할 필요가 없습니다. 또한 유형 확인 바이트코드 명령어가 생성되지 않기 때문에 런타임에 이점을 제공합니다. Enumeration 인터페이스와 Iterator 인터페이스의 차이점은 무엇인가요? Enumeration은 Iterator보다 두 배 빠르며 메모리도 덜 사용합니다. 열거는 매우 기본적이며 기본 요구 사항을 충족합니다. 그러나 열거형에 비해 Iterator는 컬렉션을 탐색할 때 다른 스레드가 컬렉션을 수정하는 것을 방지하므로 더 안전합니다. Iterator는 Java 컬렉션 프레임워크의 열거를 대체합니다. 반복자를 사용하면 호출자가 컬렉션에서 요소를 제거할 수 있지만 열거형은 그렇지 않습니다. 반복기 메서드 이름이 개선되어 기능이 더욱 명확해졌습니다. Iterator와 ListIterator의 차이점은 무엇인가요? 1 Iterator를 사용하면 Set 및 List 컬렉션을 순회할 수 있지만 ListIterator는 List만 순회할 수 있습니다. 2. Iterator는 앞으로만 이동할 수 있는 반면 LISTIterator는 양방향으로 이동할 수 있습니다. 3. ListIterator는 Iterator 인터페이스에서 상속한 다음 요소 추가, 요소 교체, 이전 또는 다음 요소의 인덱스 위치 가져오기와 같은 몇 가지 추가 기능을 추가합니다. 객체 세트를 어떻게 정렬하나요? 객체 배열을 정렬해야 하는 경우 Arrays.sort() 메서드를 사용할 수 있습니다. 객체 목록을 정렬해야 하는 경우 Collection.sort() 메서드를 사용할 수 있습니다. 두 클래스 모두 자연 정렬(Comparable 사용) 또는 기준 기반 정렬(Comparator 사용)을 위해 sort() 메서드를 오버로드했습니다. Collections는 내부적으로 배열 정렬 방법을 사용하므로 둘 다 동일한 성능을 갖지만 Collections가 목록을 배열로 변환하는 데 시간이 걸릴 뿐입니다. Java 컬렉션 프레임워크와 관련된 모범 사례는 무엇입니까? 1. 필요에 따라 올바른 컬렉션 유형을 선택하세요. 예를 들어 크기가 지정되면 ArrayList 대신 Array를 사용합니다. 삽입 순서에 따라 Map을 순회하려면 TreeMap을 사용해야 합니다. 반복하고 싶지 않다면 Set을 사용해야 합니다. 2. 일부 컬렉션 클래스에서는 초기 용량을 지정할 수 있으므로 저장된 요소 수를 추정할 수 있으면 이를 사용하고 재해싱이나 크기 조정을 피할 수 있습니다. 3. 구현 프로그래밍이 아닌 인터페이스 프로그래밍을 기반으로 하여 나중에 구현을 쉽게 변경할 수 있습니다. 4. 런타임 시 ClassCastException을 방지하려면 항상 유형이 안전한 제네릭을 사용하세요. 5. hashCode() 및 equals()를 직접 구현하지 않으려면 JDK에서 제공하는 불변 클래스를 Map의 키로 사용하세요. 6. 가능할 때마다 컬렉션 도구 클래스를 사용하거나, 직접 구현을 작성하는 대신 읽기 전용, 동기화 또는 빈 컬렉션을 가져오세요. 코드 재사용성을 제공하고 안정성과 유지 관리성이 향상됩니다. 거래란 무엇인가요? 트랜잭션은 복구 및 동시성 제어의 기본 단위입니다. 트랜잭션의 네 가지 기본 특성 원자성, 일관성, 격리성, 내구성 원자는 일관성과 거의 동일합니다. 즉, 모든 것이 성공하거나 모든 것이 실패함을 의미합니다. 일관성은 하나의 일관성 상태에서 다른 일관성 상태로 전환하는 것을 의미합니다. 격리성은 트랜잭션 실행이 다른 트랜잭션에 의해 방해받을 수 없음을 의미합니다. 지속성은 트랜잭션이 제출되면 데이터베이스에 미치는 영향이 데이터 변경에 미치는 영향을 의미합니다. 영구적이어야 하며 변경할 수 없습니다. (여기서는 인터뷰에서 이해한 내용을 간략하게 설명했습니다. 자세한 내용은 Du Niang에게 문의하세요.)
위 내용은 javaweb 인터뷰 질문 (3)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!