java
-
[JAVA] 컴퓨터와 자바 메모리에 대한 이해Programming🧑💻/Java 2023. 3. 7. 12:52
컴퓨터 메모리 컴퓨터 메모리는 두가지 종류로 구분된다. 비휘발성 기억 장치 : 전원 공급이 없어도 저장된 데이터를 유지한다. (컴퓨터가 종료되어도 데이터가 저장되어 있음) ex)HDD,SDD휘발성 기억 장치 : 데이터 유지를 위해서는 지속적인 전원 공급이 필요하다. (컴퓨터 종료시 데이터가 휘발) ex)RAM 메인 메모리CPU는 HDD, SDD 같은 비휘발성 기억장치보다 RAM으로 되어 있는 메인 메모리에 빠른 접근이 가능하다.메인 메모리 상에는 현재 실행중인 어플리케이션과 관련된 데이터들이 저장된다. 어플리케이션 실행시, 종류 직전 후에 다시 실행하는 것보다 컴퓨터 종료 후 다시 실행하는 것이 조금 더 오래 걸리는 이유는 메인 메모리가 캐시 또는 버퍼의 역할을 하기 때문에 어플리케이션 실행에 필요한 일..
-
[JAVA] String Constant Pool은 무엇일까?Programming🧑💻/Java 2022. 12. 17. 21:17
String Constant Pool String Constant Pool 개념에 대해 이해하기 위하여 다음 두개의 유사한 자바 프로그램을 비교해보자 case 1 String의 경우 참조형이기 때문에 "=="을 사용해 변수를 비교하면 가리키고 있는 객체가 동일한지(같은 메모리주소)를 가지고 있는지 확인한다. case1의 경우에는 출력으로 "Yes"가 나온다. class GFG { public static void main(String[] args) { String s1 = "abc"; String s2 = "abc"; if (s1 == s2) System.out.println("Yes"); else System.out.println("No"); } } case 2 위의 프로그램과 같이 String 변수를..
-
[JAVA] finalProgramming🧑💻/Java 2022. 10. 25. 10:48
final final 변수 - 변수를 final로 선언시 클래스의 필드를 final로 설정하면 클래스를 통해 만들어진 객체의 해당 필드는 더이상 값의 변경이 불가능하다. 그래서 객체가 생성될 때 final로 선언된 필드의 값들을 모두 가지지 못하면 객체가 만들어진 이후 값을 부여할 방법이 없다. 따라서 객체 생성시 final로 선언된 필드 값들을 모두 가지고 있어야 객체의 생성이 가능하다. - final로 선언된 필드의 자료형이 참조형일 경우 final를 사용해 선언한 필드의 자료형이 참조형일 경우 객체가 생성된 이후 final 변수가 다른 객체를 가리키도록 할 수는 없지만 대상이 되는 객체를 내부적으로 변경이 가능하다. 예를 들어 final int[] a = arr 로 a가 arr를 가리키고 있으면 이..
-
[JAVA] staticProgramming🧑💻/Java 2022. 10. 21. 10:44
static static 키워드는 메모리 관리에 사용한다. static 키워드를 통해 선언된 변수나 메서드는 클래스내에서 공유된다. static 키워드를 사용하면 클래스를 통해 생성한 객체가 아닌 클래스 단에 속한다. 클래스를 통해서 만들어진 객체들이 모두 공유하는 필드나 메서드는 static을 이용한다. 1. static member member을 static을 이용하여 선언하면 객체를 생성할 필요 없이 직접 접근이 가능하다. 원래 클래스의 필드나 메서드에 접근하기 위해서는 생성된 객체를 통해야한다. class Test { // static method static void m1() { System.out.println("from m1"); } public static void main(String[]..
-
[JAVA] EnumsProgramming🧑💻/Java 2022. 10. 8. 22:52
Enums 보통의 변수는 어떠한 연산이나 논리 관계 속에서 역할은 정해져 있지만 가질 수 있는 값은 입력에 따라 정해지기 때문에 특정할 수 없다. 예를 들어 피타고라스 정리($a^2+b^2 = c^2$) a, b, c는 밑변, 높이, 빗변으로 표현되지만 가질 수 있는 값은 한정할 수 없다. 하지만 월요일 부터 일요일까지 존재하는 요일은 요일이라는 변수에 값의 범위가 정해져 있다. 이처럼 가질 수 있는 값의 범위가 한정된 경우에는 변수가 가질 수 있는 값을 상수의 집합으로 묶음으로써 코드를 명료하게 할 수 있다. * 어떠한 변수 이름을 갖는 객체가 가질 수 있는 값(인스턴스들)이 한정되어 있는 경우 인스턴스들을 그룹화 하여 객체가 지시할 수 있는 인스턴스들을 제한한다. Enums 정의하기 public en..