Java
-
자바 static변수, 메서드Java 2023. 4. 18. 21:28
개발을 하다보면 변수나 메서드 앞에 static이라는 것을 가끔 확인해 볼 수 있습니다. 그렇다면, 일반적으로 사용하는 방식과 static을 붙여 사용하는 것은 어떤 것이 다를까? 검색을 하며 찾아보면, "정적"이라는 단어가 보이는데, 개인적으로는 100% 이해하기 힘들어 "정적"이라는 표현은 최대한 줄여 설명할 예정입니다. 우선, static 변수나 메서드는 메모리의 static영역에 할당됩니다. * 참고 : 기본 자료형 변수는 stack영역 / 참조형 변수는 heap영역에 할당됩니다. 그렇다면 static영역에 변수나 메서드가 할당된다는 것은 어떤 것을 의미할까? - 자바의 가비지컬렉터가 관여를 하지 않으며, 모든 객체가 메모리를 공유할 수 있는 것을 의미합니다. - 가비지 컬렉터가 관여하지 않기 때..
-
자바 call by value, call by referenceJava 2023. 4. 17. 21:34
자바 개발을 하다보면 자료형과 참조형에 대한 변수를 접하게 된다. 참조형과 자료형 변수를 정확하게 이해하지 않고 이용하게 된다면 call by value, call by reference가 뭔지 이해하기 어려울 것이라 생각한다. call by value - 변수 선언시 값을 복사하여 처리한다. - 값을 복사하여 처리하기 때문에 메모리 사용량을 고려해야한다. - 기본 자료형(int, boolean, char...)이 call by value로 동작한다. call by reference - 변수 선언 시, 주소를 참조하여 값을 출력 - call by value처럼 값을 복사하지 않고 참조하기 때문에 빠른 처리 속도가 장점이다. - 참조형 변수(Array, List...)가 call by reference로 ..
-
자바 문자열 대소문자 전환Java 2023. 3. 15. 13:38
대문자와 소문자가 혼합된 String 변수가 있다고 한다면, 전체를 소문자로 혹은 전체를 대문자로 전환하는 메소드가 존재한다. toUpperCase() : 전체를 대문자로 전환 toLowerCase() : 전체를 소문자로 전환 class Ex { public int ex() { String str = "Hello Java"; String temp1 = str.toUpperCase();// HELLO JAVA String temp2 = str.toLowerCase();// hello java } }
-
자바 substring, split 사용하기Java 2023. 3. 15. 13:32
자바에서 String 관련 메소드 중에 자주 사용하는 메소드를 소개하겠습니다. String메소드의 index는 0부터 시작 substring : 문자열의 특정 부분을 자르는데 사용한다. - substring(int start) : start부터 끝까지 자른다. - substring(int start, int end) : start부터 end까지 자른다. class Ex { public int ex() { String str = "hello"; str.substring(2); // llo str.substring(2,5);// llo str.substring(-1); // OutOfBoundsException 에러 } } split : 문자를 특정 구분자를 기준으로 잘라서 배열에 담는다. - split(S..
-
자바 제곱근, 제곱 사용하기Java 2023. 3. 15. 13:15
제곱근, 제곱 자바에서 제곱근과 제곱을 사용하려면 Math 클래스를 사용해야한다. Math클래스란, 수학에서 자주 사용하는 상수들과 함수들을 미리 구현해 놓은 클래스이다. Math 클래스는 랜덤한 수 추출, 올림, 반올림, 제곱, 제곱, 두 수의 크기 비교 등의 메소드를 제공한다. 제곱근 자바에서 제곱근을 구하려면, Math.sqrt()를 사용하면 된다. 변수가 double형이기 때문에 필요하다면 int형으로 전환해 사용하면 된다. class Ex { public int ex() { // Math.sqrt(double a); : a의 제곱근 double result = Math.sqrt(4); //4의 제곱근 } } 제곱 자바에서 제곱을 구하려면, Math.pow()를 사용하면 된다. 변수가 double..
-
JVM 구조 (자바 가상 머신)Java 2022. 11. 22. 20:35
JVM - 자바 가상 머신 - 자바가 OS에 무관하게 실행될 수 있도록 해준다. - Garbage Collector를 사용해 메모리를 관리한다. - Stack 기반으로 작동 JVM의 구조 - Garbage Collector / Class Loader / Execution Engine / Runtime Data Area로 나뉨 1. Garbage Collector : Heap 메모리의 객체 중 참조하지 않는 객체를 탐색해 제거 2. Class Loader : Runtime 시 동적으로 클래스를 로드, 링크를 통해 배치 작업을 한다. 3. Execution Engine : Runtime Data Area에 배치된 바이트 코드들을 명령어 단위로 읽어서 실행 4. Runtime Data Area : 메모리 영역..
-
자바(JAVA) 기술 면접Java 2022. 11. 16. 21:22
자바 - 객체 지향 프로그래밍 언어 : 데이터를 추상화해 객체를 만들어 그 객체간의 상호작용으로 프로그램을 만드는 언어 객체 지향 프로그래밍 특징 - 다형성 : 어떤 객체를 참조하는지에 따라 해석이 가능하고 다양하게 쓰임 - 상속 : 객체 간의 부모 자식 관계를 정립해 기능을 주고 받음 - 캡슐화 : 변수나 함수를 하나의 단위로 묶기가 가능 / 정보은닉(public, private, protect) 자바의 메모리 영역 - 메소드 영역 : 전역변수와 static 변수를 저장, 프로그램이 종료될 때까지 메모리에 남아있다. - 스택 영역 : 지역변수와 매개변수 저장, 새로운 데이터가 할당되면 이전 데이터는 지워진다. - 힙 영역 : new로 생성되는 객체가 저장, 가비지 컬렉션에 의해 메모리 관리 JVM - ..
-
자바 listJava 2022. 10. 24. 21:23
- 래퍼 클래스(wrapper class) : 기본 자료형을 클래스로 만들어 놓은 것을 의미한다. ex) int - Integer / char - Character / boolean - Boolean # list - 배열은 한번 선언하면 프로그램에서 그 크기를 바꿀 수 없다. - ArrayList 클래스는 데이터가 입력되면, 자동으로 크기가 커지고, 데이터가 제거되면, 자동으로 크기가 작아진다. - 중간에 데이터가 삽입되면, 데이터가 삽입될 위치부터 모든 데이터가 뒤로 이동되고, 중간의 데이터가 제거된 다음 위치부터 모든 데이터가 앞으로 이동한다. - 기본 자료형 데이터를 저장하는 ArrayList를 만들어야 하는 경우에는 래퍼 클래스를 사용한다. 기본 구조 및 활용 // 기본 구조 ArrayList l..