찾다
Javajava지도 시간Java 프로그래머들 사이에서 가장 일반적으로 사용되는 20% 기술은 무엇입니까?

프로그래밍 언어에 대해 들었는데, 거기에 담긴 기술의 20%가 자주 사용됩니다. Java 언어에서 이 20%에는 무엇이 포함됩니까? 교육을 받은 지 두 달이 지났고, 아직 두 달이 남았습니다. 두 달 안에 주니어 자바 프로그래머로 취업하려면, 내가 마스터해야 할 것은 무엇이며, 무엇을 할 수 있습니까? 지금 배우고 판매하시나요? 전체 Javaweb 프로젝트의 특정 모듈은 무엇이며, 각 모듈에는 어떤 기술이 사용됩니까?

자주 사용하는 API(String, StringBuffer/StringBuilder 등)

1. Collection 클래스, Thread 클래스

2. 순수 서블릿 작성이지만 많은 프레임워크가 서블릿 캡슐화를 기반으로 하기 때문에 이해해야 합니다.

3.json, xml 읽기 및 쓰기

4. 데이터베이스 액세스(CRUD, 트랜잭션, 연결 풀) )

5.http 요청(HttpClient)

6 기타, 공통 프레임워크, 디자인 패턴, 객체 지향


주니어 프로그래머 이것을 알고 나면 프로젝트를 작성할 수 있습니다. 나중에 직면하는 문제는 훨씬 더 복잡할 것이며 다양한 경험과 지식의 축적에 달려 있을 것입니다.

통합해야 할 20% 외에, 쉽게 할 수 있으려면 어떤 지식을 익혀야 하나요? 제가 접한(사용한) 물건에 대해 이야기하겠습니다.


Java는 풍부한 분산 애플리케이션 생태계로 유명하며 분산 시스템에서 CAP 결정을 피할 수 없습니다. 일부 분산 일관성 프로토콜인 paxos, raft 등에 대해 일찍 알아보세요. Zookeeper(메타데이터, 분산 잠금, LeaderEletion... 등)의 원리와 사용 시나리오를 알아보세요.

RPC 프레임워크는 SOA 아키텍처에서 중요한 역할을 하며, Alibaba의 것을 주의 깊게 연구하는 것이 좋습니다. 여기에는 dubbo 프레임워크와 netty 및 mina와 같은 네트워크 라이브러리

Hadoop 시리즈 Storm Spark 및 기타 오프라인 실시간 컴퓨팅 프레임워크

ElasticSearchSolrCloud 분산 검색 ELK 로그 관련 항목이 이에 더 민감합니다. 물론 ES가 사용되는 시나리오는 더 많습니다

메시지 큐 kafkaMetaQ RabbitMQ 글쎄, 어제 ZeroMQ의 저자(MQ로 완전히 계산되지 않음)는 천국에 고통이 없기를 바랍니다

.

그 다음에는 다양한 기본 지식, 프로그래밍 언어, 네트워킹 측면, 데이터베이스, 데이터 구조 및 알고리즘이 있습니다. 당신이 그 중 어느 하나에 능숙하다고 생각하지 마십시오. 나는 그것에 능숙한 Zhihu가 몇 명 있다고 감히 말합니다.


프로그래머 Xiaobai는 2015년 7월에 입사했습니다. 현재 성장 과정만 공유하므로 정확하지 않을 수 있습니다.

2015년 5월 Bai (C 배경)는 대학 전공에 관심이 없었기 때문에 한 달 넘게 Java를 공부했습니다. JavaWEB 개발에 합류한 후 두 개의 큰 프로젝트에 참여하고 n개의 기능을 독립적으로 개발했습니다. 농담이군요) 질문자가 언급한 20% 진술을 아직 듣지 못했습니다.


처음 일을 시작할 때 새로운 프로젝트를 독립적으로 시작하는 것이 아니라 개발 중인 프로젝트를 따라갈 수 있도록 허용해야 합니다.


1. eclipse, svn 및 기타 IDE 및 도구 사용법을 배웁니다. (물론 말할 필요도 없이 주로 작업 위치에 따라 다릅니다. 예를 들어 eclipse를 사용하는 경우 IntelliJ IDEA를 사용할 수 있지만 반드시 처음 작업을 시작할 때 많이 이해하지 마세요. 궁금한 점이 있으면 물어보세요. 물론 IDE 마스터이므로 무시하세요.)


2. 막 입사해서 아직 핵심업무에 들어가지 못했기 때문에 먼저 페이지를 바꾸거나 할 필요는 없습니다. HTML, CSS, JavaScript에 능숙해야 합니다. 최소한 사용법과 구문을 이해해야 합니다. 프론트 엔드 엔지니어가 있지만 이를 이해해야 합니다. (저희 회사의 소규모 프로젝트 팀에서는 모두 풀 스택입니다.) JavaScript는 실제로 매우 강력하지만 처음부터 아주 깊게 작성할 필요는 없습니다. easyui와 같이 사용할 수 있는 휠이 많이 있습니다. @王大 Fat이 말했듯이 그는 공식 문서를 확인할 것입니다. 사용법, 웹 페이지에 삽입한 다음 백그라운드에서 데이터를 포맷하고 프런트 데스크에 전달하기만 하면 됩니다.


3. 그러다가 점차 배경에 글을 쓰기 시작했고, 디자인 패턴이 너무 많아 이해하기 어렵다면 먼저 이해하시면 됩니다. 팩토리 패턴을 작성하고 인터페이스를 하나 이상 사용합니다. 각 구현 클래스는 이 인터페이스를 구현합니다. 필요한 경우 필요에 따라 사용할 구현 클래스를 결정합니다. (처음에는 이렇게 복잡한 방식으로 이렇게 한다는 게 이해가 안 됐는데, 지난 프로젝트의 데이터베이스를 Oracle에서 MySQL로 변경한 이후로 실제로는 매우 유용하다는 것을 알았습니다.) 디자인 패턴은 일반적으로 다음과 같은 프로젝트에서 사용됩니다. 프로젝트 개발을 이해하지 못하면 전체 프로젝트의 구조를 파악하지 못할 수도 있습니다.


4. 회사마다 다른 프레임워크를 사용하지만 여전히 Struts와 Spring을 더 자주 사용하므로 이 두 가지를 알아두는 것이 좋습니다. 전체 프로젝트의 구조도 모르고 직접 작성하는 것은커녕 수정조차 어렵습니다. 예를 들어 프로젝트 점프를 구성하는 방법과 어떤 구성 파일이 무엇을 나타내는지 등이 있습니다. (로컬에서 프로젝트를 실행하기 시작한 이후에는 홈페이지가 어디에 있는지, 어떤 파일이 입력되어 있는지조차 몰랐습니다. 계속 index.jsp를 찾아보니 프로젝트가 freemarker로 만들어졌고 ftl 파일이라는 것을 알게 되었습니다.)


5. 제가 작업하고 있는 프로젝트는 SQL을 접속하기 위해 주로 StringBuffer를 사용하지 않습니다. SQL은 여전히 ​​​​비교되어야합니다. 저를 지도해준 동생은 SQL이 너무 강력해서 SQL이 못하는 것이 없다고 말했습니다.


? 사용하면 할수록 SQL이 정말 샤프하다는 걸 느꼈어요) –>


6. 고급 알고리즘을 하시는 분들은 웹 프로젝트 디자인은 더 고급인 경우에만 접할 수 있으며, 이는 데이터베이스에서 백그라운드로 데이터를 추출하여 프런트 데스크에 표시하는 방법, 저장하는 방법과 같은 문자열 및 숫자 형식에 대한 작업에 관한 것입니다. 사용자가 데이터베이스에 입력한 데이터이므로 문자열 작업, 분할 및 병합, 문자열을 부동 소수점으로 변환, 정수 등, 날짜 형식 등에 대해 잘 아는 것이 가장 좋습니다.


회사에 전문적인 운영과 유지보수가 있다면 서버 배포는 그들에게 맡기세요. 그렇지 않다면 원격 연결과 Linux에 대한 몇 가지 간단한 사항을 알아두는 것이 가장 좋습니다. 명령어, 톰캣 등


우선 질문자가 언급한 20%를 어떻게 이해해야 할지 모르겠습니다. 다음으로, 지난 몇 년간 작업에 자주 사용했던 기술을 나열하겠습니다.


1.html, css

2.java 작동 원리(jvm)

3.java 구문, 데이터 구조 및 알고리즘

4.java 언어 기능(캡슐화, 상속, 다형성, 추상화)

5.java 디자인 패턴(개발에서 자주 사용됨)

6.java 반사 메커니즘(반사 메커니즘) 일반적인 프레임워크에서 사용됨)

http://7.io(파일 읽기 및 쓰기)

8. 멀티스레딩

9. 네트워크 프로그래밍

10.javascript

11.jquery

12. 데이터베이스(oracle, mysql 등)

13.servlet

14.JDBC

15.javabean

16. WEB 프로젝트 계층 아키텍처

17. 프론트엔드와 백엔드 상호작용

18.ajax

19. 필터 및 필터 원칙

20. 일반적으로 사용되는 프레임워크(Struts, hibernate, spring, springMVC, i/mybatis)

21. 프레임워크 통합

22. (프로세스 엔진 작동 메커니즘)

23.xml, 속성, json

24. 공통 페이지 및 배경 플러그인(트리, 시간, poi 등)

25.nosql 데이터베이스 및 애플리케이션 시나리오(mongoDB)

26. 캐시 데이터베이스 및 메커니즘(redis, memcached)

27. 타사 인터페이스 호출

28. 🎜>

29. 웹 애플리케이션 서버(tomcat, weblogic)

30.linux

31. 로그

32. 33.maven

34.svn

35. 모델링 도구 사용(powerdesiner, axure)

36.TCP/IP

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Java가 크로스 플랫폼 데스크톱 응용 프로그램을 개발하기 위해 인기있는 선택 인 이유는 무엇입니까?Java가 크로스 플랫폼 데스크톱 응용 프로그램을 개발하기 위해 인기있는 선택 인 이유는 무엇입니까?Apr 25, 2025 am 12:23 AM

javaispopularforcross-platformdesktopapplicationsduetoits "writeonce, runanywhere"철학

Java의 플랫폼 별 코드 작성 상황에 대해 토론하십시오.Java의 플랫폼 별 코드 작성 상황에 대해 토론하십시오.Apr 25, 2025 am 12:22 AM

Java에서 플랫폼 별 코드를 작성하는 이유에는 특정 운영 체제 기능에 대한 액세스, 특정 하드웨어와 상호 작용하고 성능 최적화가 포함됩니다. 1) JNA 또는 JNI를 사용하여 Windows 레지스트리에 액세스하십시오. 2) JNI를 통한 Linux 특이 적 하드웨어 드라이버와 상호 작용; 3) 금속을 사용하여 JNI를 통해 MacOS의 게임 성능을 최적화하십시오. 그럼에도 불구하고 플랫폼 별 코드를 작성하면 코드의 이식성에 영향을 미치고 복잡성을 높이며 잠재적으로 성능 오버 헤드 및 보안 위험을 초래할 수 있습니다.

플랫폼 독립성과 관련된 Java 개발의 미래 트렌드는 무엇입니까?플랫폼 독립성과 관련된 Java 개발의 미래 트렌드는 무엇입니까?Apr 25, 2025 am 12:12 AM

Java는 Cloud-Native Applications, Multi-Platform 배포 및 교차 운용성을 통해 플랫폼 독립성을 더욱 향상시킬 것입니다. 1) Cloud Native Applications는 Graalvm 및 Quarkus를 사용하여 시작 속도를 높입니다. 2) Java는 임베디드 장치, 모바일 장치 및 양자 컴퓨터로 확장됩니다. 3) Graalvm을 통해 Java는 Python 및 JavaScript와 같은 언어와 완벽하게 통합되어 언어 교차 수용 가능성을 향상시킵니다.

Java의 강력한 타이핑은 플랫폼 독립성에 어떻게 기여합니까?Java의 강력한 타이핑은 플랫폼 독립성에 어떻게 기여합니까?Apr 25, 2025 am 12:11 AM

Java의 강력한 유형 시스템은 유형 안전, 통합 유형 변환 및 다형성을 통해 플랫폼 독립성을 보장합니다. 1) 유형 안전성 런타임 오류를 피하기 위해 컴파일 시간에 유형 검사를 수행합니다. 2) 통합 유형 변환 규칙은 모든 플랫폼에서 일관성이 있습니다. 3) 다형성 및 인터페이스 메커니즘은 코드가 다른 플랫폼에서 일관되게 행동하게 만듭니다.

JNI (Java Native Interface)가 플랫폼 독립성을 손상시킬 수있는 방법을 설명하십시오.JNI (Java Native Interface)가 플랫폼 독립성을 손상시킬 수있는 방법을 설명하십시오.Apr 25, 2025 am 12:07 AM

JNI는 Java의 플랫폼 독립성을 파괴 할 것입니다. 1) JNI는 특정 플랫폼에 대한 로컬 라이브러리를 요구합니다. 2) 대상 플랫폼에서 로컬 코드를 컴파일하고 연결해야합니다. 3) 운영 체제 또는 JVM의 다른 버전은 다른 로컬 라이브러리 버전을 필요로 할 수 있습니다.

Java의 플랫폼 독립성을 위협하거나 향상시키는 새로운 기술이 있습니까?Java의 플랫폼 독립성을 위협하거나 향상시키는 새로운 기술이 있습니까?Apr 24, 2025 am 12:11 AM

신흥 기술은 위협을 일으키고 Java의 플랫폼 독립성을 향상시킵니다. 1) Docker와 같은 클라우드 컴퓨팅 및 컨테이너화 기술은 Java의 플랫폼 독립성을 향상 시키지만 다양한 클라우드 환경에 적응하도록 최적화되어야합니다. 2) WebAssembly는 Graalvm을 통해 Java 코드를 컴파일하여 플랫폼 독립성을 확장하지만 성능을 위해 다른 언어와 경쟁해야합니다.

JVM의 다른 구현은 무엇이며, 모두 같은 수준의 플랫폼 독립성을 제공합니까?JVM의 다른 구현은 무엇이며, 모두 같은 수준의 플랫폼 독립성을 제공합니까?Apr 24, 2025 am 12:10 AM

다른 JVM 구현은 플랫폼 독립성을 제공 할 수 있지만 성능은 약간 다릅니다. 1. OracleHotspot 및 OpenJDKJVM 플랫폼 독립성에서 유사하게 수행되지만 OpenJDK에는 추가 구성이 필요할 수 있습니다. 2. IBMJ9JVM은 특정 운영 체제에서 최적화를 수행합니다. 3. Graalvm은 여러 언어를 지원하며 추가 구성이 필요합니다. 4. AzulzingJVM에는 특정 플랫폼 조정이 필요합니다.

플랫폼 독립성은 개발 비용과 시간을 어떻게 줄입니까?플랫폼 독립성은 개발 비용과 시간을 어떻게 줄입니까?Apr 24, 2025 am 12:08 AM

플랫폼 독립성은 여러 운영 체제에서 동일한 코드 세트를 실행하여 개발 비용을 줄이고 개발 시간을 단축시킵니다. 구체적으로, 그것은 다음과 같이 나타납니다. 1. 개발 시간을 줄이면 하나의 코드 세트 만 필요합니다. 2. 유지 보수 비용을 줄이고 테스트 프로세스를 통합합니다. 3. 배포 프로세스를 단순화하기위한 빠른 반복 및 팀 협업.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기