앞에 작성
우선 제가 하고 싶은 말은 Java 프로그래밍 사고 - 지식 카드라는 글이 될 것입니다. 기사의 내용은 제가 "Java 프로그래밍 사고"라는 책을 읽은 경험을 바탕으로 작성되었습니다. , 그렇다면 왜 이 기사 시리즈를 쓰고 싶습니까? 여러 가지 이유가 있습니다:
Java를 다시 시작합니다. 작업 프로젝트의 특수성으로 인해 저는 1년 넘게 Java 언어를 사용하지 않았습니다.
저는 여가 시간을 활용하여 도움이 필요한 사람들을 돕는 글을 쓰고 싶습니다.
책 전체의 지식을 조각조각 나누고 조각난 시간을 최대한 활용하세요.
일반적인 상황에서 최신 기사는 내 WeChat 공개 계정인 Java 프로그래밍 커뮤니티에 업데이트됩니다. 관심이 있으시면 팔로우하세요.
자, 본론으로 들어가겠습니다:
카드 01, 참조를 이용한 객체 조작
Java를 공부하는 사람이라면 누구나 Java가 객체지향 언어(OOP)라는 것을 알고 있습니다. 보다 "순수한" 객체 지향 프로그래밍 언어입니다. "모든 것이 객체이다"라는 속담처럼 Java 언어는 우리가 객체 지향 프로그래밍만 한다고 가정합니다. 즉, 디자인을 위해 Java를 사용하기 전에 생각을 바꾸고 객체에 관심을 옮겨야 합니다. 이것이 Java 언어를 사용하는 기본 기술입니다.
모든 프로그래밍 언어에는 데이터를 처리하는 고유한 방법이 있습니다. 때때로 프로그래머는 어떤 유형을 다루고 있는지 항상 주의를 기울여야 합니다. 요소를 직접 조작해야 할까요, 아니면 객체를 조작하기 위해 특수 구문을 기반으로 하는 간접적인 표현을 사용해야 할까요? C와 C++에서는 포인터를 사용합니다. Java에서는 "모든 것이 객체이고" 모든 것이 객체로 간주되기 때문에 이 모든 것이 단순화됩니다. 모든 것이 객체로 취급되지만 조작되는 식별자는 실제로 객체에 대한 참조입니다. 이해를 돕기 위해 실제 사례를 들어보겠습니다. 생활 속에서 우리는 TV(객체)를 제어하기 위해 리모컨(참조)을 사용합니다. TV의 채널이나 볼륨을 바꾸고 싶을 때에는 실제로 리모컨(참조)을 조작하고, 리모컨으로 TV(객체)를 제어하게 됩니다. 방을 돌아다니면서도 여전히 TV를 작동하고 싶다면 TV(물체) 대신 리모컨(참조)을 들고 다니세요 .
문자열 참조를 만들어 보겠습니다.
String str;
여기서 str은 객체가 아닌 참조일 뿐입니다. 참조는 독립적으로 존재할 수 있으며 반드시 객체와 연관될 필요는 없습니다. 리모콘이 있더라도 마찬가지입니다. TV는 독립적으로 존재할 수 없습니다. 그러나 위의 생성은 안전하지 않습니다. 안전한 방법은 참조를 생성할 때 초기화하는 것입니다. 예:
String str = "hello";
Card 02. 프로그램이 실행될 때 메모리는 어떻게 할당되나요?
프로그램이 실행 중일 때 데이터를 저장할 수 있는 위치는 5가지입니다:
1, Register: 가장 빠른 저장 영역입니다. 다른 저장소와 위치하기 때문입니다 장소--프로세서 내부. 하지만 레지스터의 개수는 극히 제한되어 있어 요구에 따라 레지스터를 할당하게 되며, 이를 직접적으로 제어할 수도 없고, 프로그램 내에서 레지스터가 존재한다는 느낌을 전혀 느낄 수도 없습니다.
2, Stack: 범용 RAM(Random Access Memory) 에 위치하지만 스택 포인터를 통해 프로세서에서 직접 지원합니다. 스택 포인터가 아래로 이동하면 새 메모리가 할당되고, 위로 이동하면 해당 메모리가 해제됩니다. 이는 레지스터에 이어 두 번째로 빠르고 효율적인 스토리지 할당 방법입니다. 프로그램을 생성할 때 Java 시스템은 스택 포인터를 위아래로 이동하기 위해 스택 내에 저장된 모든 항목의 정확한 수명을 알아야 합니다. 이 제약 조건은 프로그램의 유연성을 제한하므로 일부 Java 데이터(특히 객체 참조)가 스택에 저장되더라도 Java 객체는 스택에 저장되지 않습니다.
3. Heap: 모든 Java 개체를 저장하는 데 사용되는 일반 메모리 풀(RAM 영역에도 위치) 힙이 스택과 다른 장점은 다음과 같습니다. 컴파일러는 저장된 데이터가 힙에 얼마나 오래 남아 있는지 알 필요가 없습니다. 따라서 힙 할당에는 많은 유연성이 있습니다. 객체가 필요한 경우 new를 사용하여 간단한 코드 한 줄만 작성하면 됩니다. 이 코드 줄이 실행되면 저장소가 자동으로 힙에 할당됩니다. 물론 이러한 유연성에는 대가가 지불되어야 합니다. 힙을 사용한 저장소 할당 및 정리는 스택을 사용한 저장소 할당보다 시간이 더 걸릴 수 있습니다
- 4
일정한 저장소: 상수 값은 일반적으로 내부에 직접 저장됩니다. 프로그램 코드 는 변경할 수 없으므로 이렇게 하는 것이 안전합니다. 임베디드 시스템에서는 상수가 다른 부분과 분리되는 경우가 있으므로 이 경우 ROM(읽기 전용 메모리)에 저장하도록 선택할 수 있습니다.
5. RAM이 아닌 저장소: 데이터가 프로그램 외부에서 완전히 살아남는 경우, 프로그램의 제한을 받지 않고 프로그램이 실행되지 않는 동안에도 존재할 수 있습니다. 두 가지 기본 예는 다음과 같습니다: 스트림 객체 및 영구 객체 "스트림 객체"에서 객체는 일반적으로 다른 시스템으로 전송되는 바이트 스트림으로 변환됩니다. 프로그램이 종료되더라도 상태는 유지됩니다. 이 저장 방법의 비결은 객체를 다른 미디어에 저장할 수 있는 것으로 변환한 다음 필요할 때 일반 RAM 기반 객체로 복원하는 것입니다. Java는 경량 지속성에 대한 지원을 제공하는 반면, JDBC 및 최대 절전 모드와 같은 메커니즘은 데이터베이스에 객체 정보를 저장하고 읽기 위한 보다 정교한 지원을 제공합니다.
관련 기사:
Java 객체 지향 프로그래밍의 객체, 참조 및 내부 클래스 이해
위 내용은 Java 프로그래밍 아이디어: 참조를 사용하여 객체를 작동하고 프로그램이 실행될 때 메모리가 할당되는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

javaachievesplatformincendenceThoughthehoughthejavavirtualmachine (JVM), hittoutModification.thejvmcompileSjavacodeIntOplatform-independentByTecode, whatitTengretsAndexeSontheSpecoS, toplacetSonthecificos, toacketSecificos

javaispowerfuldueToitsplatformincendence, 객체 지향적, RichandardLibrary, PerformanceCapabilities 및 StrongSecurityFeatures.1) Platform IndependenceAllowsApplicationStorunannyDevicesUpportingjava.2) 대상 지향적 프로그래밍 프로모션 Modulara

최고 Java 기능에는 다음이 포함됩니다. 1) 객체 지향 프로그래밍, 다형성 지원, 코드 유연성 및 유지 관리 가능성 향상; 2) 예외 처리 메커니즘, 시도 캐치-패치 블록을 통한 코드 견고성 향상; 3) 쓰레기 수집, 메모리 관리 단순화; 4) 제네릭, 유형 안전 강화; 5) 코드를보다 간결하고 표현력있게 만들기위한 AMBDA 표현 및 기능 프로그래밍; 6) 최적화 된 데이터 구조 및 알고리즘을 제공하는 풍부한 표준 라이브러리.

javaisnotentirelyplatformindent의 의존적 duetojvmvariationsandnativecodeintegration

TheJavavirtualMachine (JVM) isanabstractcomputingmachinecrucialforjavaexecutionasitsjavabytecode, "writeonce, runanywhere"기능을 가능하게합니다

javaremainsagoodlugageedueToitscontinuousevolutionandrobustecosystem.1) lambdaexpressionsenhancececeadeabilitys.2) Streamsallowforefficileddataprocessing, 특히 플레어로드 라트 웨이션

javaisgreatduetoitsplatform incendence, robustoopsupport, extensibraries 및 strongcommunity.1) platforminceptenceviajvmallowscodetorunonvariousplatforms.2) oopeatures inncapsulation, Nheritance, and Polymorphismenblularandscode.3)

Java의 5 가지 주요 특징은 다형성, Lambda Expressions, Streamsapi, 제네릭 및 예외 처리입니다. 1. 다형성을 사용하면 다른 클래스의 물체가 공통 기본 클래스의 물체로 사용될 수 있습니다. 2. Lambda 표현식은 코드를보다 간결하게 만듭니다. 특히 컬렉션 및 스트림을 처리하는 데 적합합니다. 3.StreamSapi는 대규모 데이터 세트를 효율적으로 처리하고 선언적 작업을 지원합니다. 4. 제네릭은 유형 안전 및 재사용 성을 제공하며 편집 중에 유형 오류가 잡히립니다. 5. 예외 처리는 오류를 우아하게 처리하고 신뢰할 수있는 소프트웨어를 작성하는 데 도움이됩니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

드림위버 CS6
시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

Dreamweaver Mac版
시각적 웹 개발 도구