Java 지식은 하루아침에 습득할 수 없습니다. 일부 새로 배운 사람들은 독선적이고 기본을 배웠다고 생각하며 항상 고급 지식을 빨리 배우고 싶어합니다. 나는 초보 학자들을 얕잡아보려는 것이 아닙니다. 속담처럼, 높은 빌딩은 기초를 튼튼하게 다진 후에야 땅에서 솟아오릅니다. 아래에서 신인의 당황스러움을 살펴보자.
여기에는 예외 스택, 컴파일 시간, 주요 기능 및 기타 기본 지식이 포함됩니다. 무례하고 이해하기 쉽게 설명하는 것이 어떻습니까? 무슨 의미가 있나요?
이해하기 쉽지만 비용이 많이 듭니다.
Exception은 프로그램이 예상하지 못한 비정상적인 상황을 처리할 수 없어 프로그래머에게 처리를 맡깁니다. Stack은 매우 기본적인 데이터 구조입니다. 그 모양은 스택 상단에 있는 요소가 스택에 푸시되는 마지막 요소라는 것을 의미합니다. 그렇다면 오류를 범한 후 콘솔에서 던져지는 텍스트 더미를 본 적이 있습니까? 게시하면 XXXException에 가장 가까운 것이 일반적으로 가장 중요한 정보입니다.
보세요. "콘솔에서 던진 텍스트 더미"로 줄이더라도 "예외 스택"은 결국 양쪽 모두에게 더 많은 시간을 절약해 줍니다. 베테랑은 회사에 수십 달러를 낭비했을 수도 있습니다.
게다가 일부 사람들은 기능 2와 관련된 "콘솔"조차 이해하지 못할 수도 있습니다.
실용적이지 않고 과장된 초보자도 있습니다.
저는 이력서를 보고 quartz, POI, easyUI, jquery 등을 잔뜩 썼습니다. 이 사람은 이 용어가 고급스럽고 강력하다고 생각할 수도 있지만, 이 스킬 목록을 보면
자신의 문제가 드러납니다. 이 사람은 자신이 말하는 이 용어가 무엇인지 이해하지 못합니다.
적어도 기본 프로그래머는 xml, json 및 dom4j 기술에 익숙하다고 쓰지 않을 것이며 "온라인 결제"와 servletjsp를 같은 열에 넣지 않을 것입니다. 그는 자신의 스킬 트리가 얼마나 풍부한지 설명하기 위해 길게 설명할 필요가 없습니다. 적절한 콘텐츠와 합리적인 레이아웃 자체가 그의 수준을 나타냅니다.
초보자가 탄탄한 기초가 없어도 상관없습니다. 천천히 배울 수 있지만, 학습 태도와 방법이 있어야 하고, 문제 해결 능력이 있어야 하며, 자신의 주도성을 발휘해야 합니다. 모든 문제를 직접 해결하고 다른 사람이 문제를 해결하도록 하세요. 이 경우 자신이 성장하기 어려울 것입니다.
예:
일반적으로 세 번 연속 비난을 받은 늙은 새들은 예외가 있는 한 모두 마음 속으로부터 화가 납니다. 너무 잘생겼어요.
적합한 솔루션: 키워드 검색->문서 보기->소스 코드 읽기->베테랑 키워드 물어보기->*.
이전에 해결되지 않은 문제를 해결하는 방법은 무엇입니까? 아니면 좀 더 확장해서, 제가 작성한 함수가 미래의 다양한 요구에 어떻게 적응할 수 있을까요? 물론 이는 본질적으로 코드량과 판독량의 문제이다.
여기로 와서 초보자에게 학습 방법과 아이디어를 제공하세요.
학습을 여러 단계로 나눕니다.
(1) 기본 이해 단계 . 기본 지식 포인트를 보면 그 의미를 이해하기 시작합니다. 예를 들어 Animal cat=new Cat()을 보면 선언, 인스턴스화, 참조 및 다형성과 같은 지식 포인트가 구현되어 있음을 반영할 수 있습니다.
(2) 연결 단계 , 지식 포인트를 함께 연결하여 위의 예와 같이 JVM 관련 지식과 결합하면 다음 그림과 같은 대략적인 스택 다이어그램이 내 마음 속에 나타납니다.
이러한 능력은 기원을 추측하는 데 사용될 수 있을 뿐만 아니라 지식 포인트를 적극적으로 결합하여 새로운 구조를 만들 수도 있습니다. 예를 들어 새로운 요구 사항은 "구성에 따라 동물을 생성"하는 것입니다.
그러면 구성 항목을 기반으로 동물 인스턴스를 생성하는 빌드 도구가 있을 것으로 분석합니다. 코드는 다음과 같습니다.
Animal Animal=AnimalFactory.createAnimal("cat");
createAnimal에서는 문자열에 대해 if 판단을 수행하여 새 고양이인지 새 개인지 결정합니다
In 사실 이 구조는 GoF에 요약되어 있습니다. 안녕하세요, GoF가 무엇인가요? 이 단락이 무엇에 관한 것인지 잊으셨나요?
(3) 고급 단계 지식 포인트를 연결하는 능력이 있으면 알려지지 않은 기술의 구체적인 구현을 볼 수 있는 능력이 있어야 합니다. 예를 들어 최대 절전 모드의 기능은 무엇입니까? 핵심은 "영속성 계층과 데이터 계층의 동기화 실현", 즉 데이터 테이블과 JavaBeanPOJO의 매핑에 있습니다. 그렇다면 최대 절전 모드와 유사한 ORM 프레임워크가 없었다면 이 기능을 어떻게 구현하는지 생각해 봅시다.
먼저 데이터베이스와 통신하기 위한 도구와 구성이 필요합니다. Java는 jdbc를 사용할 수 있으며 데이터베이스 관련 구성은 xml, json 또는 bean과 같은 모든 방법을 사용할 수 있습니다. 또한 최대 절전 모드의 맨 아래 계층이 jdbc이고 Configuration이라는 구성 항목도 있음을 알 수 있습니다.
그러면 데이터 테이블과 빈을 통합하는 구성 방법이 있어야 합니다. 왜? 예를 들어, 포함된 정보의 양이 일관되지 않고 교차하기 때문에 모두 유사한 데이터 유형(varchar->String)을 가지며 호환되지 않는 내용(색인 및 제약 조건)을 갖습니다. 교차점을 일치시키고 누락된 콘텐츠를 채우는 매핑 도구입니다. 그러므로 우리는 Hibernate가 매핑 도구(xml과 Annotation)를 가지고 있어야 한다고 추론할 수 있습니다.
나중에는 다양한 데이터베이스에 적응하기 위해 각 문이 다른 표현을 가질 수 있습니다. 예를 들어 Oracle에는 mysql에 적용되지 않는 Number(*,*) 유형이 있습니다. 어댑터. Hibernate에서는 이 부분을 Dialect, Dialect라고 부릅니다.
이러한 분석 과정을 거쳐 새로운 요구 사항을 구현하든, 알려지지 않은 프레임워크를 분석하든 이론적 토대를 마련하게 됩니다.
개인적인 생각으로는 이 단계에 도달한 프로그래머만이 자격을 갖춘 프로그래머라고 할 수 있습니다. 이렇게 말했지만, 자신의 문제가 어디에 있는지 성찰하고 문제를 찾아 해결해야 합니다.
관련 기사:
관련 동영상:
위 내용은 면접에 필요한 기본적인 Java 지식을 알고 계시나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!