Java Notes - 배열 문자열 및 컨테이너, 표현식 흐름 및 제어 흐름, 시작하기 소개, 데이터 유형 식별자

  • 1.1
  •  
    • JDK>JRE>JVM
  • 2 식별자 및 데이터 유형
    • 프로세스 지향 언어: C, FORTRAN, COBOL, ALGOL, PASCAL, BASIC
      • 객체 지향 언어: Simula, Smalltalk, Java, Ruby 등
      • 두 언어: C++, Python
    • 폰 노이만 구조

    • JAVA 키워드 - 식별자로 사용할 수 없습니다.
    • JAVA는 ASCII(8비트) 대신 유니코드(16비트)를 사용합니다.
      • 식별자는 문자, 밑줄( _ ) 또는 달러 기호($$)로 시작하는 문자, 숫자, 밑줄( _ ) 또는 달러 기호($$)의 문자열이며 대/소문자를 구분합니다.
    • 자바 데이터 유형

      • 부울 : false / true 8 위
      • 문자: 16비트
      • 정수형 숫자 범위
        • Java의 모든 정수는 부호 있는 숫자입니다. 정수 상수는 int 유형입니다. 긴 정수 상수를 나타내려면 숫자 뒤에 문자 "L"을 써야 합니다.
      • 플로트 유형 데이터 범위
        • 값에 소수점, 지수 부분(e)이 포함되어 있거나 문자 f/F(단정밀도) 또는 d/D(배정밀도)가 뒤에 오는 경우 부동 소수점
        • 유형 변환: 자릿수가 적은 유형에서 자릿수가 큰 유형으로 자동 변환, 그렇지 않으면 필수 변환 필요
    • 클래스와 객체
      • 스토리지 수정자 정적: 클래스의 모든 개체에서 공유할 수 있습니다.
      • final: final로 수정된 클래스는 더 이상 하위 클래스를 파생할 수 없으며 클래스 계층 구조의 맨 아래에 도달했습니다.
      • abstract: abstract로 수정된 클래스 또는 메서드는 수정된 구성 요소가 추상임을 나타냅니다. 추상 메서드는 프로토타입 설명만 제공하면 되고 메서드 본문은 비어 있으며 추상 메서드를 포함하는 클래스는 추상 클래스로 설명해야 합니다.
      • 개체 참조: 메모리에 참조를 만들고 초기 값을 null로 설정하여 메모리 공간을 가리키지 않음을 나타냅니다.
      • 개체 인스턴스화: new를 사용하여 해당 메모리 공간에 적용하고, 메모리 공간의 크기는 클래스 정의에 따라 다르며, 메모리의 첫 번째 주소를 지금 생성된 참조에 할당합니다.
  • 3 발현 흐름 및 프로세스 제어
    • 피연산자
      • 최종: 상수 정의, 정의 후 수정이 허용되지 않음
        • 정적 수정을 사용하지 마십시오. 상수를 만들 때 고정 값을 직접 할당하면 이 상수의 값이 고정됩니다. 즉, 여러 개체의 값도 동일합니다. 상수를 생성할 때 함수나 객체를 사용하는 경우 객체를 생성할 때마다 상수의 초기화 값이 다를 수 있음
        • 정적 수정 사용: 개체를 생성하기 전에 메모리에 이 변수에 대한 저장 공간이 생성되고 나중에 개체를 생성하는 데 이 정적 변수가 필요한 경우 이 변수의 저장 공간을 공유합니다.
      • 보수 코드 최상위 부호 비트: 양수 부호는 0, 음수는 1, 음수와 관련된 연산은 보수 코드를 사용합니다.
        • 부호 비트 0에 양수의 보수 부호를 직접 더하고, 원래 부호를 기준으로 음수의 보수 부호를 먼저 비트 단위로 반전시킨 후 부호 비트에 1을 더한다.
  • 4 문자열 및 컨테이너 배열
    • 정렬
      • 1차원 배열 정의: type arrayName[]; 정의 시 메모리 할당이 없고 []에 길이를 선언하지 않으나 배열을 가리키는 데 참조 변수를 사용함
        • 유형[] arrayName;
      • 배열 만들기: 정적 초기화: 요소 정의와 초기화를 동시에
        • 동적으로 초기화 type[] arrayName=new type[arraySize];
          • type arrayName[]=new type[arraySize];
      • 복합 유형 배열: type arrayName[]=new type[arraySize];
      • toString을 사용하여 배열 탐색
      • 2차원 배열 정의: type arrayName[][];
        • type[][] 배열명;
      • 다중 비트 배열 정적 초기화: int[][] intArray={ {2,3}, {1,5}, {3,4}};
        • 다중 비트 배열의 동적 초기화:

      • 배열 복사: 배열 복사
      •  
        • 복사본
        • 범위 복사
    • 열거 열거 열거 이름 {상수 목록}
      • 열거형은 다음 형식으로 1차원 배열을 반환할 수 있습니다. 열거형의 이름.values();
        • for(평일 b:평일.값()) {System.out.print(b+" ");}
        • 열거 상수를 사용하여 열거 전환
    • 끈:
      • String은 불변의 문자열로 메모리 할당 시 객체에 포함된 실제 문자 수에 따라 균등하게 할당된다.
        • concat(String str) 메서드는 현재 문자열의 끝에 str을 연결하고 "+"는 문자열 연결 작업을 실현할 수 있습니다.
        • 일반적인 방법:

        • String 클래스의 비교 메서드는 compareTo(), equals(), equalsIgnoreCase(), regionMatches()입니다.
        • public boolean regionMatches(int toffset, String other, int ooffset,int len)或 public boolean regionMatches(boolean ignoreCase, int toffset, String other,int ooffset,int len)
      • StringBuffer는 가변 문자열로 메모리 할당 시 문자가 차지하는 공간 외에 16자의 버퍼가 추가된다.
        • length() 문자열의 길이를 가져옵니다.
        • capacity()는 버퍼 용량을 반환합니다.
        • append() 메서드를 사용하여 연결 구현
    • 컨테이너
      • 수집
        • 집합 요소는 순서가 없고 반복할 수 없습니다.
        • lisr 주문 및 반복 가능

          • LinkedList: Linked List를 사용하는 데이터 구조로 삭제와 추가가 매우 효율적이라는 장점이 있지만 요소에 대한 임의 접근의 효율성은 ArrayList 클래스에 비해 떨어진다.
          • ArrayList: 선형 테이블을 사용하는 데이터 구조로, 접근 및 조회가 매우 편리하다는 장점이 있지만 추가 및 삭제 시에는 매우 비효율적입니다. 에스
        • 대기열은 규칙에 따라 순서를 결정합니다.
        • HashSet: 중복 요소를 허용하지 않으며 중복 요소를 추가할 수 없으며 Hash 함수를 사용하여 쿼리 효율성을 최적화합니다.
        • HashMap: 키-값 키-값 쌍 데이터 저장 메커니즘을 제공하여 키 값을 통해 해당 요소를 찾는 것이 매우 편리하며 Hash 해시 메커니즘을 통해 검색이 매우 편리합니다.

        • iteratorfor(반복자 it=courses.iterator();it.hasNext();) {course=(Course)it.next();...}
          • boolean hasnext(); //시퀀스에 더 많은 요소가 있는지 확인
          • Object next(); //시퀀스의 다음 요소를 가져옵니다.
          • void remove(); // 반복자에서 현재 요소를 삭제합니다.
        • "정렬"할 수 있는 모든 클래스는 Comparable 인터페이스를 구현합니다. Comparable 인터페이스에는 public int compareTo(Object obj) 메소드가 하나만 있습니다.

추천

출처blog.csdn.net/qq_56061892/article/details/126224221