>  기사  >  Java  >  Java 프로젝트 경험 - 프로그래머 성장 과정

Java 프로젝트 경험 - 프로그래머 성장 과정

巴扎黑
巴扎黑원래의
2017-06-26 10:25:281236검색

Java는 프로젝트에 사용됩니다! Java의 주요 응용 분야는 엔터프라이즈급 프로젝트 개발입니다! 엔터프라이즈급 프로젝트 개발에 참여하려면 다음 사항을 숙지해야 합니다.

1. 프로젝트 개발의 기본 단계를 마스터합니다.

2. 강력한 객체 지향 분석 및 설계 기술을 보유합니다.

3. -driven, Architecture-based 핵심 주류 개발 방법

아무도 평생 동안 일부 코드 구현 기술을 습득하는 데 만족하고 싶어하지 않습니다. 다른 사람들은 무엇을 달성해야 할지 알려주고 다른 사람들의 요구 사항을 달성하기 위해 코드 스태킹을 사용합니다! 전체 프로젝트의 관점에서 생각하는 법을 배워야 합니다! 당신이 프로젝트 매니저라면 생각하는 법을 배워야 합니다! 건축가라면 생각하는 법을 배워야 합니다! 특정 문제 영역에 대한 분석 방법을 마스터해야 합니다!

TB 기본 지식 정보: 이러한 명사 또는 지식 포인트를 보고 하나, 둘, 셋, 넷을 말할 수 있는지 확인할 수 있습니다.

JavaSE

----기본 구문, 데이터 유형, 연산자 등: int, long, Integer, Long, if, else, for, while

----객체 지향: 클래스(클래스), 객체(객체), 인스턴스(instance), 상태(state), 동작(behavior), 필드, 메서드, new, 가시성(접근 제어), 속성, 속성, 패키지, 가져오기, 정적 변수, 클래스 변수, 인스턴스 변수, 힙 , 메소드 영역, 스택, GC(가비지 수집), 재정의, 오버로드, 객체 변환(캐스팅), 다형성, this, super

------예외 처리: 컴파일 타임 오류와 런타임 오류의 차이점 이해, 예외, RuntimeException, 확인된 예외, 확인되지 않은 예외, try, catch, finally, throw new XXXException, throws XXXException, 예외 처리의 기본 원칙

----배열 및 컬렉션: 배열의 정의 및 사용, Collection, List, Set , Map, ArrayList, HashSet, HashMap, Iterator, equals, hashCode, Comparable, Comparator

----일반적으로 사용되는 클래스: String, intern, Constant pool, StringBuffer, java.util.Date, SimpleDateFormat, Regex(정규식)

- ---반사 메커니즘: Class, Method, Field, Invoke, newInstance, BeanUtils(apache-commons), PropertyUtils(apache-commons)

----입력 및 출력 스트림: InputStream, OutputStream, Reader, Writer , 어댑터 디자인 패턴 원본 스트림 클래스, 데코레이터 디자인 패턴 및 래핑된 스트림 클래스, 객체 직렬화 및 역직렬화

----멀티스레딩: 스레드, 실행 가능, 절전, 대기, 알림, 동기화, 잠금

서블릿 및 JSP

- ---HttpServlet, doGet, doPost, HttpServletRequest, HttpServletResponse, request.getParameter(), request.setAttribute(), request.getAttribute(), request.getSession(), ServletContext, 필터, web.xml, tomcat, 전달 및 리디렉션, http 프로토콜의 상태 비저장, 쿠키, JSP 범위 개체, ,

HTML 및 JavaScript

----일반적인 웹 페이지 태그를 이해하고, 웹 페이지에 JavaScript를 도입하는 방법을 이해하고, 그리고 JavaScript의 기본 구문과 구문 사용법

위는 Java를 더 배우기 위해 필요한 기본 지식입니다. 특히 일부 전문용어나 명사 등은 친아버지를 보는 것처럼 친근하게 느껴진다면 자바에 대한 기본지식을 매우 잘 알고 있다는 뜻이다.

다음은 SSH입니다.

초보자에게는 이 세 가지 주요 프레임워크에 너무 많은 수수께끼가 주어지며, 가장 중요한 지식인 것 같습니다! 하지만 다년간의 Java 개발 경험이 있는 전문 기술 인력, Java에 능숙한 사람들에게는 이 세 가지 주요 프레임워크에 별로 관심이 없습니다! 중요하지 않나요?

현재 많은 회사에서 이 세 가지 주요 프레임워크를 사용하고 있기 때문에 많은 회사에서는 이 세 가지 주요 프레임워크를 숙지하는 것을 채용의 전제 조건으로 간주합니다. 이 세 가지 주요 프레임워크를 사용하지 않는 대기업이 많다는 것은 부인할 수 없는 사실입니다. 이러한 기업은 수년간의 개발을 통해 어느 정도의 기술을 축적하고 고유한 기술 프레임워크 시스템을 형성했습니다. 이 세 가지 주요 프레임워크는 매우 중요하다고 할 수도 있고 중요하지 않다고 말할 수도 있습니다.

중요한 이유는 이 세 가지 주요 프레임워크가 JavaEE 개발의 일반적인 문제에 대한 아름다운 솔루션을 제공한다는 것입니다. 여기에는 업계 대부분의 NB 개발자의 노력과 아이디어가 포함되어 있으므로 이를 배우면 세 가지 주요 프레임워크를 엿볼 수 있습니다. 기술의 정점에 있는 이 인재들이 문제에 대해 어떻게 생각하는지, 그리고 문제를 해결하기 위해 어떤 디자인 아이디어를 사용하는지. 그렇다면 당신은 프로젝트 개발 경험이 많지 않은데, 당신의 경험은 어떻습니까? 경험이란 어떤 문제가 발생할 수 있는지, 각 문제에 대해 어떤 솔루션을 사용할 수 있는지, 특정 상황에서는 어떤 솔루션이 더 나은지, 어떤 방법이 좋지 않은지 등을 아는 것을 의미합니다! 어떤 프로젝트도 해본 적이 없다면 어떤 문제가 발생할 수 있는지 알지 못할 것이며 이러한 문제는 종종 매우 중요합니다! 잘 해결되지 않으면 프로그램의 안정성, 확장성 등에 영향을 미치게 됩니다! 세 가지 주요 프레임워크는 초보자에게 앞으로 발생할 수 있는 문제에 대한 이해와 이러한 문제에 대한 솔루션을 제공합니다!

이 세 가지 주요 프레임워크가 왜 중요한지 이해하면 이 세 가지 주요 프레임워크도 중요하지 않다고 할 수 있는 이유도 이해할 수 있을 것입니다. 많은 프로젝트를 개발하고 다양한 문제에 직면했다면 기술력을 바탕으로 이러한 문제를 하나씩 해결한 것입니다. 이 사람들의 눈에는 세 가지 주요 프레임워크(N 프레임워크가 있습니까? ㅎㅎ)가 모두 클라우드입니다!

당신은 어떤 사람에 속해 있나요? 프로젝트 개발 경험이 많지 않다면 세 가지 주요 프레임워크가 매우 중요합니다! 또한 이를 통해 세 가지 주요 프레임워크를 배우는 방법도 알 수 있습니다. 세 가지 주요 프레임워크를 학습할 때 초점은 문제를 보여주고 자신의 적극적인 사고를 촉발하는 것입니다. 어쩌면 여러분의 아이디어가 바보 같을 수도 있지만 결국 그것은 여러분 자신의 아이디어입니다. 위대한 사람들이 어떻게 생각하는지 모르면서 자신의 생각이 바보라는 것을 어떻게 알 수 있습니까? 이러한 아이디어의 충돌 과정에서 당신은 점차적으로 자신을 향상시킬 것입니다! 따라서 세 가지 주요 프레임워크를 배운 후에는 구성 파일만 많이 보면 안 되고, 일부 작업, 일부 서비스, 일부 매핑 파일만 보면 안 됩니다. struts2에 인터셉터가 많다는 것만 알면 안 되고, jar 패키지만 보면 안 됩니다...

jar 패키지를 복사하고 일련의 구성 파일을 정의하는 방법만 안다면 , 세 가지 주요 SSH 프레임워크가 실행될 수 있고 작동할 수 있습니다. 그렇다면 매우 슬픈 점은 세 가지 주요 프레임워크의 본질을 아직 마스터하지 못했다는 것입니다! 다음 질문에 답하십시오.

Struts2:

모든 요청에 ​​대해 Action 객체를 생성해야 하는 이유는 무엇입니까?

ModelDriven 인터셉터 구성에서 RefreshModelBeforeResult는 어떤 문제를 해결합니까?

web.xml에 구성된 StrutsPrepareAndExecuteFilter가 모든 요청을 필터링하는 이유는 무엇입니까?

ValueStack에 대해 알려주실 수 있나요?

Struts2는 MVC 디자인 패턴을 어떻게 구현합니까?

Spring:

Spring을 사용해야 하는 이유는 무엇인가요?

IOC/DI에 대해 이야기해주실 수 있나요?

선언적 트랜잭션 관리란 무엇인가요? 선언적 트랜잭션 관리를 사용하는 이유는 무엇입니까? Spring은 선언적 트랜잭션 관리를 어떻게 구현합니까?

Spring과 Hibernate를 통합하고 트랜잭션 관리 기능을 정의할 때 추가, 삭제, 업데이트 작업 이외의 메소드, 즉 주로 쿼리 작업을 수행하는 메소드를 읽기 전용으로 정의해야 하는 이유는 무엇입니까?

Hibernate:

OR 매핑에 대한 이해를 공유해 주시겠습니까?

많은 사람들이 Hibernate가 대규모 프로젝트에 적합하지 않고 성능 문제가 있다고 말합니다. 어떻게 이해하시나요?

Hibernate는 왜 데이터베이스 식별자를 정의해야 합니까?

Hibernate는 왜 당신의 엔터티 클래스가 hashCode와 equals 메소드를 구현하도록 권장합니까?

Hibernate 엔터티 클래스의 데이터베이스 식별자와 데이터베이스 기본 키 간의 관계에 대해 이해하고 계시나요?

Hibernate 연관 매핑과 데이터베이스 외래 키 사이의 관계에 대해 어떻게 이해하고 계시나요?

session.save() 메서드가 호출되면 최대 절전 모드에서 반드시 insert 문을 발행하나요? 여러분의 이해에 대해 이야기해 보세요

session.update() 메소드를 호출할 때 최대 절전 모드가 확실히 업데이트 문을 발행합니까? 이해에 대해 이야기해 주세요

다음 명사, 개념 또는 사용법에 대해 이야기해 주세요:lazy,lazy=”extra”,inverse,fetch,fetch=”join”,fetch=”subselect”,batch-size

lazy isconfigured = "true"가 확실히 게으른 로딩을 달성할까요?

Hibernate의 "N+1" 문제에 대해 이야기해 주세요

Hibernate의 모범 사례가 무엇인지 이야기해 주세요.

위 내용이 SSH의 핵심 질문이 전부는 아니지만 SSH 프레임워크를 유연하게 사용할 수 있는지 테스트할 수 있습니다! 이러한 문제를 깊이 이해하고 적절한 실제 프로젝트 교육을 병행한다면 점차 전문가가 될 것입니다!

마지막으로, 프로젝트 개발 능력:

Java를 배우든 다른 기술을 배우든, 기본 목적은 고객을 위한 가치를 창출하는 것입니다! 그렇지 않으면, 당신이 열심히 배우려고 노력한 것들은 기술이 발전하고 업데이트됨에 따라 곧 낡은 것이 될 것입니다! 그러므로 기술의 핵심은 기술을 활용하여 가치 있는 결과를 창출하는 것입니다! 즉, 고객이 필요로 하는 것이 무엇이든 기술을 사용하여 고객이 필요로 하는 것을 만들어야 합니다! 회사가 다양한 복지 조건으로 여러분을 유지하기 위해 최선을 다하는 이유는 여러분이 회사에 엄청나게 높은 혜택을 가져올 수 있기 때문입니다! 그렇다면 기업이 사용할 수 있는 것은 무엇입니까? 회사에서는 귀하의 어떤 능력을 가장 중요하게 생각합니까?

프로젝트를 수행하려면 많은 능력이 필요하며, 그 중 가장 핵심적이고 기본적인 것은 모델링 능력입니다(현재 가장 주류는 객체 지향 모델링입니다!). 모델링 능력이란?

면접 질문 드립니다.

보험사의 보험카드 관리모듈 : 영업사원이 보험카드 정보(보험카드 수, 카드번호, 수령일자)를 받아 고객에게 직접 판매하는 방식입니다. 판매가 완료되면 보험사 시스템에 보험카드 정보(판매원 정보, 구매자 정보, 구매한 보험 카드 수, 카드 번호 등)가 입력됩니다. 고객은 보험 회사 웹 사이트에 로그인하여 보험을 활성화합니다. (보험카드번호, 개통비밀번호, 피보험자정보, 수혜자정보 등) 개인정보)

요구사항: 이 모듈을 넘겨받으면 어떻게 하시겠습니까? 어떤 문제를 해결하려고 하시나요? 그림을 그리고 당신의 아이디어가 무엇인지 설명해줄 수 있나요?

이것은 단지 인터뷰 질문입니다. 몇 가지 간단한 문장만 있기 때문에, 소위 모델링이 해결해야 할 문제가 무엇인지 여러분에게 알려주고자 여기에 넣었습니다. 사업분야에는 문제가 너무 많아요! 아마도 수십, 수백 페이지에 달하는 요구사항 문서가 특정 비즈니스 분야의 문제를 명확하게 설명할 수 있으며, 이를 구현하는 것은 귀하의 책임입니다!

회사에서 근태 관리 시스템을 개발하고 싶어하며 기존 인사 시스템과의 연계가 필요합니다. 그러면 귀하는 주요 기술 담당자로서 어떤 일을 하시나요?

특정 ERP 프로젝트에서 일정 관리 모듈을 구현하고 이를 완료하도록 맡기고자 합니다. 어떻게 완료하나요?

프로젝트 매니저가 정보를 너무 적게(몇 문장만) 줬다고 불평하지 마시고, 고객이 자신의 요구 사항을 명확하게 설명하지 않았다고 불평하지 마세요... 당신의 가치는 모든 문제를 정리하는 데 있습니다. , 그리고 다양한 수단을 활용하여 원하는 정보를 얻고, 어떤 생각에 따라 요약하고, 정해진 시간 안에 하나씩 풀어보세요!

Java를 배우는 것은 탱크 전투, 네트워크 스피드스터, CMS, DRP 또는 OA만큼 간단하지 않다는 것을 깨달아야 합니다. 이러한 기술적 세부 사항에 집착해서는 안 됩니다. CRUD 스타일의 프로젝트 요구사항을 실현하기 위해서는(비록 이것이 기초의 기초이기는 하지만) 항상 열심히 노력해야 한다는 목표가 있습니다. 따라잡기 위해!

미래에는 더 복잡한 요구 사항에 직면하게 될 것입니다. 학습 프로젝트의 유일한 목적은 요구 사항을 구현으로 변환하는 방법, 요구 사항을 분석하는 방법, 개념 모델을 구축하는 방법 및 다양한 간의 관계를 정리하는 방법을 배우는 것입니다. 개념, 설계 방법, 설계 계획을 구현하는 데 적합한 기술을 선택하는 방법, 구현을 테스트하는 방법, 직면하는 다양한 문제(성능, 수요 변화 등)를 해결하는 방법. 실제로 몇 년 동안 회사에서 개발에 참여해 보시면 제 말에 동의하실 겁니다!

Java를 사용하여 일자리를 구하려면 프로젝트 경험이 필요합니다. 프로젝트 경험은 프로젝트 개발의 기본 프로세스 이해, 프로젝트 분석 방법 이해, 프로젝트 설계 아이디어 이해, 프로젝트 구현 기술 이해, 프로젝트 테스트 방법 이해를 의미합니다. , 모든 종류의 문제에 대한 솔루션을 이해합니다! ! !

이제 목표를 알아야 할 때입니다!

위 내용은 Java 프로젝트 경험 - 프로그래머 성장 과정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.