반응형 Back-End/Java36 Java(2) 배열변수선언두가지 방법이 있으나 아래의 대부분 아래의 방법으로 사용한다.String[] str; 배열변수는 참조변수이므로 null로 초기화할 수 있다.String[] str = null; 배열의 생성방법1. 값 목록을 이용int[] numbers = {1, 2, 3}; 방법2. new연산자를 사용 배열변수를 미리 선언한 상태에서는 값목록을 직접 주는 방법이 불가능하기 때문에 new연산자를 사용해야한다. new연산자를 사용하면서 값 목록을주어 초기값을 설정하거나, 값 목록이 없을경우엔 길이만 주어 타입별 초기값으로 초기화할 수 있다.int[] numbers; numbers = new int[] {1, 2, 3}; //--- 또는--- numbers = new int[3]; 다차원 배열의 생성자바에서의 배열.. 2023. 3. 14. Java(1) JVM 동작 원리 자바 언어로 작성된 프로그램을 실행하기 위한 가상 머신. 이로인해 자바 언어로 작성된 프로그램은 운영체제나 하드웨어와 상관없이 동일한 방식으로 실행될 수 있음. 1. 자바 코드를 바이트 코드로 컴파일 (javac.exe)하여 클래스 파일 형태(.class)로 저장 컴파일 프로그램에서 "컴파일"은 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 번역하는 과정을 의미한다. 컴파일러(Compiler)는 소스 코드를 입력으로 받아 기계어로 변환하고, 이를 목적 파일(Object File)로 저장한다. 이 과정에서 오류가 발생할 경우, 컴파일러가 오류 메시지를 출력하고 컴파일을 중단한다. 자바에서는 소스 코드가 컴파일러에 의해 바이트 코드로 컴파일된다. 바이트 코드는 JVM이 이해할 수 있는 중간.. 2023. 3. 13. Java 예습 메모리 사용 영역 .java 명령어로 JVM이 구동되면 JVM은 운영체제에서 할당받은 메모리 영역을 구분하여 사용함 메소드 영역 static영역이라고도 함 JVM이 바이트코드 파일(.class)을 읽은 내용이 저장되는 영역 메소드 영역에 저장되는 정보 클래스 정보(멤버 변수의 이름) 변수 정보(데이터타입, 접근제어자 정보) 메소드 정보(메소드이름, 리턴타입, 파라미터, 접근제어자 정보) static변수(정적 멤버 변수, static이 붙은 자료형) final class변수 constant pool(상수풀) : 문자상수, 타입, 필드, 객체참조가 저장됨 메소드 영역에 저장되는 정보는 JVM이 종료될 때 까지 사라지지 않고 고정된 상태로 유지됨 메소드 영역에 있는 것은 어떤곳에서나 접근이 가능해지기 때문에 .. 2023. 3. 11. Java 예습 오버플로우와 언더플로우 오버플로우 : 타입의 최대 허용범위를 벗어나는 것 언더플로우 : 타입의 최소 허용범위를 벗어나는 것 정수 타입 연산에서 오버플로우가 발생하면 컴파일 에러가 발생하지 않고, 해당 타입의 최솟값으로 돌아가서 순환한다. 마찬가지로 언더플로우가 발생하면 해당 타입의 최댓값으로 돌아가서 순환한다. 예를 들어 byte 타입의 허용범위는 -128~127인데 127을 넘어가는 오버플로우가 발생하면, 최솟값으로 돌아가 -128부터 순환한다. 언더플로우도 마찬가지로 127로 돌아가서 순환한다. byte value = 127; value++; System.out.println(value); //-128 value--; System.out.println(value); //127 다른 정수 타입의 경우에.. 2023. 3. 5. Java 예습 변수 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름 초기값 없이 변수 선언만도 가능 → 메모리 할당되지 않았기 때문에 사용 시에는 초기값 지정해야 함 int value; // 변수 선언 - 간응 참조 타입이 아닌 기본 데이터 타입(primitive data type)인 변수는 값 복사에 의한 전달(pass by value)을 하기 때문에 같은 값이라면 모두 같은 메모리 위치에 저장됨 int x = 3; int y = 3; System.out.println(System.identityHashCode(x)); //356573597 System.out.println(System.identityHashCode(y)); //356573597 // 값이 같기때문에 같은 메모리 주소를 갖게되어 같은 해시코드.. 2023. 3. 4. java.base 모듈 Java.base 모듈 모든 모듈이 의존하는 기본 모듈 requires(의존 모율 지정 키워드) 하지 않아도 사용할 수 있음 패키지 용도 java.lang 자바언어의 기본 클래스를 제공 java.util 자료 구조와 관련된 컬렉션 클래스를 제공 java.text 날짜 및 숫자를 원하는 형태의 문자열로 만들어 주는 포맷 클래스를 제공 java.time 날짜 및 시간을 조작하거나 연산하는 클래스를 제공 java.io 입출력 스트림 클래스를 제공 java.net 네트워크 통신과 관련된 클래스를 제공 java.nio 데이터 저장을 위한 Buffer 및 새로운 입출력 클래스 제공 java.lang 패키지 클래스 용도 Object 자바 클래스의 최상위 클래스 System -키보드로부터 데이터를 입력받을 때 사용 -.. 2023. 1. 19. 예외처리 예외와 예외 클래스 에러(Error) : 컴퓨터 하드웨어의 고장으로 발생되는 응용프로그램 실행오류 예외(Exception) : 잘못된 사용 또는 잘못된 코딩으로 인한 오류 자바는 예외가 발생하면 예외 클래스로부터 객체를 생성 Error, Exception : Throwable을 상속받음 예외클래스 : Throwable.Exception 상속받음 일반예외(Exception) 컴파일러가 예외처리 코드 여부를 검사O 예외처리 코드가 없다면 컴파일 오류를 발생시킴 실행예외(Runtime Exception) 컴파일러가 예외처리 코드 여부를 검사X Exception.RuntimeException 클래스를 상속 받음 예외처리 코드가 없다면 오류발생 없이 컴파일 가능하나 실행도중 예외발생 예외처리 코드 예외가 발생했을.. 2023. 1. 19. 라이브러리와 모듈 라이브러리 프로그램 개발 시 활용 할 수 있는 클래스와 인터페이스들을 모아놓은 것 클래스와 인터페이스의 바이트코드 파일(~.class)들을 압축하여 JAR파일형태로 존재(~.jar) 모듈 Java9부터 지원 패키지 관리 기능까지 포함된 라이브러리 일부 패키지를 은닉하여 접근할 수 없게끔 할 수 있음 모듈간의 의존관계 설정도 가능함 모듈을 만들때는 모듈기술자 파일이 반드시 포함되어있어야 하는데, 모듈기술자를 보면 모듈간의 의존관계를 파악할 수있음 모듈도 라이브러리이므로 JAR 파일 형태로 배포할 수 있음 응용프로그램을 기능별로 서브 프로젝트(모듈)로 쪼갠다음 조합해서 개발 할 수있음 2023. 1. 19. 인터페이스 - 01 인터페이스 사전적 의미로 두 장치를 연결하는 접속기 다형성 구현의 주된 기술 인터페이스 선언 class 대신 interface를 사용 접근제한자는 class와 동일 (public, default) 인터페이스 필드 (public static final) 무조건 public, static, final 특성을 갖는 상수필드 public, static, final 을 생략하더라도 컴파일 과정에서 붙게됨 인터페이스 추상 메소드 (public abstract) 무조건 public, abstract 을 가짐 public, abstract 를 생략하더라도 컴파일 과정에서 붙게됨 중괄호 블록 없음 인터페이스 구현객체에는 재정의된 메소드가 반드시 있어야함 인터페이스 디폴트 메소드 (public default) 선언 방법은.. 2023. 1. 5. 이전 1 2 3 4 다음 반응형