>  기사  >  Java  >  Java 엔지니어가 되기 위한 요구 사항은 무엇입니까?

Java 엔지니어가 되기 위한 요구 사항은 무엇입니까?

零下一度
零下一度원래의
2017-07-26 16:48:471284검색

1. Core Java는 Java의 기본이자 JDK의 클래스 라이브러리입니다. 많은 어린이들이 JDK를 이해하지만 그것이 무엇인지 알기에는 JDK의 소스 코드도 알아야 합니다. 문자열, 컬렉션 클래스(List, Map, Set) 및 기타 데이터 구조와 같이 자주 사용되는 클래스의 경우 해당 구현과 다른 컬렉션 클래스 간의 차이점을 알아야 합니다. 특정 상황에 어떤 컬렉션을 사용해야 할지 알 수 있습니다. 이러한 콘텐츠의 소스 코드를 살펴보세요

2. 이제 동시성은 서버 측 프로그램 작성에 거의 필요한 기술입니다. , 객체 잠금 메커니즘, 동기화 키워드 및 동시 패키지를 포함하여 Java의 멀티스레딩에 대해 잘 알고 있어야 합니다. 이 부분에 대해서는 "Java Concurrent 프로그래밍" 책을 읽어 보는 것이 좋습니다. 실습"에 자세히 설명되어 있습니다

3. I/O, 소켓 프로그래밍, 우선 Java 및 I/O 패키지의 소켓 프로그래밍에 익숙합니다. 더 깊게 들어가는 것이 Java NIO입니다. 더 깊게 들어가는 것은 맨 아래에 있는 소켓 구현입니다. Windows 및 Linux에서 소켓이 어떻게 구현되는지 이해합니다. 4. JVM에 대한 지식이 있어야 하지만, 이것이 Java의 본질이라고 할 수 있습니다. Java를 이해한 후에는 Java 메모리 모델(Java 잠금 및 멀티스레딩을 이해하는 데 도움이 됨), 바이트코드, JVM 모델, 다양한 가비지 수집기 및 선택, JVM과 같은 시야가 더 넓어질 것입니다. 실행 매개변수(JVM 최적화) 등에 대한 지식은 "심층 Java Virtual Machine" 책에 자세히 설명되어 있거나 Oracle 웹사이트에 가서 특정 버전의 JVM 사양을 확인하세요.

5. 싱글톤, 템플릿 메소드, 프록시, 어댑터 등과 같은 디자인 패턴과 Core Java 및 일부 Java 프레임워크의 특정 시나리오 구현은 천천히 축적되어야 할 수 있습니다. 먼저 특정 사용법을 더 많이 볼수록 이해하십시오. 시나리오를 사용할수록 자연스럽게 더 많이 사용하게 됩니다.

6. 일반적으로 사용되는 데이터베이스(Oracle, MySQL 등), SQL 문 및 일반 최적화

7. Spring, iBatis 및 기타 프레임워크와 같은 JavaWeb 개발 프레임워크도 가장 중요합니다. 그들의 일반적인 원리를 알아라.

8. 기타 유명하고 널리 사용되는 오픈 소스 프레임워크 및 패키지, Netty 네트워크 프레임워크, Apache 공통 N 패키지, Google의 Guava 등. 또한 종종 Github에 가서 일부 코드를 찾을 수도 있습니다.

거시적으로:

1. 기술적인 측면에서

적어도 다양한 오픈 소스 기술에 능숙해야 하며, Strutsspring의 소스 코드를 연구한 경험이 있어야 합니다.


2. 프로젝트 경험상
저는 여러 대형 프로젝트를 처음부터 끝까지 따라왔습니다. 시작은 수요 조사를 포함한 수요 단계를 말합니다.
종료는 유지보수 단계를 포함한 온라인 배송 이후를 의미합니다.

3. 아키텍처 경험
분산 시스템 아키텍처 및 개발 경험이 있습니다. 그는 시스템 간 구조 최적화 및 데이터 스토리지 성능 지표에 대한 광범위한 경험을 보유하고 있습니다. 캐싱, 데이터베이스의 수직 분할, 비즈니스 추상화 및 수평 분할 등은 모두 익숙할 것입니다.

4. 산업 분야에서는
금융 증권업에 종사한다면 최소한 한두 가지 업무에 능숙해야 합니다. 전력사업에 종사하는 사람은 최소한 전력엔지니어의 절반 이상이어야 합니다.

5. 개인 수양
자신만의 독특한 통찰력을 가지면 다른 사람의 말을 따르지 않습니다.

미시적으로:

1. 객체 지향 분석 및 설계(OOA/OOD), 관련 패턴(GOF, J2EEDP) 및 포괄적 패턴에 능숙해야 합니다. UML, 특히 클래스, 개체, 상호 작용 및 명시된 다이어그램을 잘 이해하고 있어야 합니다.

2. JAVA 언어의 기본과 핵심 클래스 라이브러리(컬렉션, 직렬화, 스트림, 네트워킹, 멀티스레딩, 리플렉션, 이벤트, 처리, NIO, 현지화 등)를 배워야 합니다.


3. JVM, 클래스 로더, 클래스 반사 및 가비지 수집의 기본 작동 메커니즘을 이해해야 합니다. 클래스 파일을 디컴파일하고 몇 가지 기본 어셈블리 지침을 이해할 수 있어야 합니다.


4. 클라이언트 프로그램을 작성하려면 WEB 애플릿을 배워야 하고, GUI 디자인의 아이디어와 방법은 물론 데스크톱 프로그램의 SWING, AWT, SWT도 마스터해야 합니다. 또한 UI 위젯에 대한 JAVABEAN 구성 요소 패턴을 이해하고 있어야 합니다. JAVABEANS는 JSP에서도 프리젠테이션 계층에서 비즈니스 로직을 분리하는 데 사용됩니다.


5 JDBCAPI와 같은 Java 데이터베이스 기술을 배워야 하며 Hibernate, JDO, CocoBase, TopLink, InsideLiberator(국내 JDO 레드 팩토리 소프트웨어) 또는 iBatis와 같은 지속성/ORM 프레임워크를 하나 이상 사용할 수 있어야 합니다.


6 또한 개체 관계에서 임피던스 불일치의 의미, 이것이 비즈니스 개체와 관계형 데이터베이스의 상호 작용에 미치는 영향 및 운영 결과를 이해해야 합니다. 오라클, mysql, mssqlserver.


7 JAVA의 샌드박스 보안 모델(클래스 로더, 바이트코드 검증, 관리자, 정책 및 권한, 공동 서명, 디지털 서명, 암호화, 인증, Kerberos 등)과 JAAS(JavaAuthenticationandAuthorizationService)와 같은 다양한 보안/인증 API를 배워야 합니다. , JCE(JavaCryptographyExtension), JSSE(JavaSecureSocketExtension) 및 JGSS(JavaGeneralSecurityService)입니다.


8. 서블릿, JSP, JSTL(StandardTagLibraries) 및 선택적 타사 TagLibraries를 배워야 합니다.


9 JSF, Struts, Tapestry, Cocoon, WebWork 등의 주류 웹 프레임워크와 MVC/MODEL2 등의 기본 모드에 대해 잘 알고 있어야 합니다.


10. tomcat, resin, Jrun 등 WEB 서버를 사용하고 관리하는 방법을 배우고, 이를 기반으로 WEB 프로그램을 확장하고 유지하는 방법을 알아야 합니다.


11. 분산 객체와 RMI, RMI/IIOP 등의 원격 API를 배워야 합니다.


12 Tuxedo, CROBA 및 javaEE 자체와 같이 널리 사용되는 다양한 미들웨어 기술 표준과 해당 구현을 Java와 결합하여 구현해야 합니다.


13 JAXP(JavaAPI for XMLProcessing), JDOM(JavaforXMLDocumentObjectModel), DOM4J 또는 JAXR(JavaAPIforXMLRegistries)과 같은 XMLAPI를 하나 이상 배워야 합니다.


14. JAVA API와 도구를 사용하여 WebService를 구축하는 방법을 배워야 합니다. 예를 들어 JAX-RPC(JavaAPI for XML/RPC), SAAJ(SOAPwithAttachmentsAPIforJava), JAXB(JavaArchitectureforXMLBinding), JAXM(JavaAPIforXMLMessaging), JAXR(JavaAPIforXMLRegistries) 또는 JWSDP(JavaWebServicesDeveloperPack)가 있습니다.


15 ​​Spring, PicoContainer, Avalon 및 해당 IoC/DI 스타일(setter, 생성자, 인터페이스 주입)과 같은 경량 애플리케이션 프레임워크를 배워야 합니다.


16 JNDI(JavaNamingandDirectoryInterface), JMS(JavaMessageService), JTA/JTS(JavaTransactionAPI/JavaTransactionService), JMX(JavaManagementeXtensions) 및 JavaMail과 같은 다양한 J2EE 기술에 익숙해야 합니다.


17 EJB(Enterprise JavaBeans) 및 다양한 구성 요소 패턴(Stateless/StatefulSessionBeans, EntityBeans(Bean-ManagedPersistence[BMP] 또는 Container-ManagedPersistence[CMP] 및 해당 EJB-QL 포함))을 배워야 합니다. 드리븐빈즈(MDB).


18 WebLogic, JBoss 등 J2EE 애플리케이션 서버를 관리 및 구성하고 클러스터링, 연결 풀링, 분산 처리 지원과 같은 추가 서비스를 활용하는 방법을 배워야 합니다. 또한 애플리케이션을 패키징하고 구성하는 방법을 이해하고 성능을 모니터링하고 조정할 수 있어야 합니다.


19 측면 지향 프로그래밍과 속성 지향 프로그래밍(둘 다 AOP로 줄여 혼동됨)과 이들의 주류 JAVA 사양 및 구현에 대해 잘 알고 있어야 합니다. 예를 들어 AspectJ 및 AspectWerkz가 있습니다.


20. 서비스를 제공하려면 다양한 유용한 API와 프레임워크에 익숙해져야 합니다. 예를 들어 Log4J(로깅/추적), Quartz(스케줄링), JGroups(네트워크 그룹 통신), JCache(분산 캐싱), Lucene(전체 텍스트 검색), JakartaCommons 등이 있습니다.


21. 기존 시스템이나 로컬 플랫폼과 연결하거나 연결하려면 JNI(JavaNativeInterface) 및 JCA(JavaConnectorArchitecture)를 배워야 합니다.

22. CROBA 마스터링 등 JINI 기술 및 관련 분산 시스템에 익숙해야 합니다.


23 JavaCommunityProcess(JCP)와 Portlets(168), JOLAP(69), DataMiningAPI(73) 등과 같은 다양한 JavaSpecificationRequests(JSR)가 필요합니다.


24 sunOne, netBeans, IntelliJIDEA 또는 Eclipse와 같은 JAVAIDE에 능숙해야 합니다. (어떤 사람들은 파일 작성에 VI나 EMACS를 선호합니다. 무엇을 사용하든지 :)


25. JAVA(정확히 말하면 일부 구성)는 장황하고 수동 코딩(예: EJB)이 많이 필요하므로 코드에 대한 익숙함이 필요합니다. XDoclet과 같은 생성 도구.


26 단위 테스트 시스템(JNunit)에 익숙해야 하며 다양한 생성 및 배포 도구(Ant, Maven)를 배워야 합니다.


27. JAVA 개발에 자주 사용되는 일부 소프트웨어 엔지니어링 프로세스에 익숙해야 합니다. 예를 들어 RUP(Rational Unified Process) 및 Agile 방법이 있습니다.


28 크로스 플랫폼 소프트웨어 개발자로서 GNU/linux, sunsolaris, macOS 등 다양한 운영 체제를 운영하고 구성하는 데 대한 심층적인 이해와 숙련도가 필요합니다.


29 또한 Java 개발 속도를 따라잡아야 합니다. 예를 들어 이제 javaME는 물론 새로운 웹 리치 클라이언트 기술과 같은 다양한 새로운 Java 사양 및 기술의 응용도 배울 수 있습니다. .


30. 적어도 Java의 많은 기술은 java3D 기술과 같은 오픈 소스에 의해 직접 구동되므로 오픈 소스에 대해 알아야 합니다.

위 내용은 Java 엔지니어가 되기 위한 요구 사항은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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