해 콘 웨 이 면접 기록
3121 단어 개인 소감 과 계획.
1. 운동회 성적 관리 에 관 한 사이트 의 데이터베이스 시트 디자인
경기 종목 표 기록 종목 상황 종목 번호 종목 명칭 종목 유형 종목 경기 시간
데이터 구조 명
설명 하 다.
경기 종목 표
프로젝트 상황 기록
종목 번호 종목 명칭 종목 유형 종목 경기 시간
학급 점수 표
학급 득점 을 기록 하 다
프로젝트 번호 항목 순위 항목 득점 학급 총 학급 번호
성적 표
경기 성적 기록
종목 번호 종목 명칭 운동선수 번호 성적 순위
운동 선수
선수 기본 정보
성명 성별 학 번 학급 번호
2. 왜 service 층, contrller 층, dao 층 과 의 관계 가 필요 합 니까?
service 는 업무 층 이 고 dao 는 데이터 액세스 층 입 니 다.
DAO 층: DAO 층 은 데이터 액세스 층 이 라 고 하 는데 모두 data access object 라 고 하 는데 비교적 밑바닥 에 속 하고 비교적 기초적인 조작 에 속한다. 구체 적 으로 보면 특정한 표 에 대한 첨삭 검사, 즉 특정한 DAO 는 반드시 데이터베이스 의 특정한 표 와 일일이 대응 하 는 것 이다. 그 중에서 첨삭 검사 기본 조작 을 봉인 하고 DAO 는 원자 조작 만 하고 첨삭 검 사 를 하 는 것 을 권장 한다.
Service 층: Service 층 은 서비스 층 이 라 고 하 는데 서비스 라 고 불 린 다. 대충 이해 하면 하나 이상 의 DAO 에 대한 재 포장 이 고 하나의 서비스 로 포장 되 기 때문에 여 기 는 원자 조작 이 아니 라 사물 통제 가 필요 하 다.
Controler 층: Controler 는 전송 을 요청 하고 페이지 에서 온 인 자 를 받 아들 여 Service 처리 에 전달 하 며 반환 값 을 받 고 페이지 에 전달 합 니 다.
3. ArrayList 를 옮 겨 다 닐 때 요 소 를 삭제 하면 어떤 문제 가 발생 합 니까?
1. Array List 의 remove 방법 에서 요 소 를 옮 겨 다 닐 때 삭제 조건 에 부합 하면 이 요 소 를 배열 에서 삭제 하고 다음 요 소 를 이동 합 니 다 (이때 다음 요소 가 현재 요소 와 같 으 면 한 자리 앞으로 이동 합 니 다). 다음 순환 이 지나 간 후에 같은 요 소 를 옮 겨 다 니 지 않 아서 삭제 할 수 없습니다.이러한 상황 에 대해 거꾸로 삭제 하 는 방식 으로 피 할 수 있다.
2. for - each 법 으로 삭제 하면 Concurrent ModificationException 이 나타 날 수 있 습 니 다.
foreach 표기 법 은 실제 Iterable, hasNext, next 방법 에 대한 약자 로 문 제 는 fast Remove 방법 에 있 습 니 다.
private void fastRemove(int index){
modCount++;
intnumMoved=size-index-1;
if(numMoved>0)
System.arraycopy(elementData,index+1,elementData,index,numMoved);
elementData[--size]=null;// Let gc do its work
}
첫 번 째 줄 에서 modCount 변수의 값 을 하나 로 추가 하 는 것 을 볼 수 있 지만, Array List 에서 되 돌아 오 는 교체 기 (이 코드 는 부모 클래스 AbstractList 에 있 습 니 다)
public Iterator iterator() {
return new Itr();
}
AbstractList 클래스 내부 의 교체 기 가 private class Itr implements Iterator 를 실현 하 는 것 을 되 돌려 줍 니 다. 이 종류의 next 방법 을 보십시오.
public E next() {
checkForComodification();
try {
E next = get(cursor);
lastRet = cursor++;
return next;
} catch (IndexOutOfBoundsException e) {
checkForComodification();
throw new NoSuchElementException();
}
}
첫 번 째 줄 checkForComodification 방법:
final void checkForComodification() {
if (modCount != expectedModCount)
throw new ConcurrentModificationException();
}
위 에 있 는 reove (Object) 방법 이 modCount 의 값 을 수 정 했 기 때문에 교체 기 내부 수정 횟수 검 사 를 합 니 다.이러한 상황 을 피 하려 면 교체 기 를 사용 하여 교체 할 때 (표시 또는 for - each 의 암시 적) Array List 의 reove 를 사용 하지 말고 Iterator 의 reove 로 바 꾸 면 됩 니 다.
4. 파일 저장, 어떤 방안 이 있 는 지, 데이터베이스 에 두 지 않 으 면
지금 이런 문 제 를 보면 기본 적 이 고 어렵 지 않 은 것 같 지만 면접 을 볼 때 상대방 이 일부러 나 를 난처 하 게 하 는 것 같 기도 하 다.아니면 자신의 기초 가 튼튼 하지 않 고 전체적인 이해 가 부족 한 것 같 아 요...................................................대기업 과 는 거리 가 좀 멀다.
마음 이 좀 아 픈 데...