[Java] JVM Method Area(메서드 영역, Static Area) & Stack Area(스택 영역) & Heap Area(힙 영역)
·
수수한 코딩세상/Java
JVM 이란JVM이란 Java Virtual Machine의 약자로, 자바 가상 머신입니다. JVM은 소프트웨어로서 Java의 바이트 코드를 해석하여 서로 다른 플랫폼에서 자바 프로그램이 실행될 수 있도록 동일한 환경을 만들어 주는 소프트웨어입니다. 그렇기 때문에 OS에 상관없이 Java 파일을 실행시켜주어 Java 언어가 플랫폼에 종속되지 않고, 독립적인 언어가 될 수 있었습니다.하지만 JVM은 플랫폼마다 서로 다르게 작성되어 배포되며 플랫폼 종속적입니다. JVM이 플랫폼에 종속적이지만 그 소프트웨어 위에서 구동되는 Java 언어는 플랫폼에 종속적인 부분을 JVM이 처리해 줌으로써 플랫폼에 종속되지 않고 독립적일 수 있게 된 것입니다.JVM은 자바 개발사인 오라클은 물론, IBM, 마이크로소프트 등 다..
[Programmers][Java] 음양 더하기 (배열을 이용해 부호 식별)
·
수수한 코딩세상/Code Kata
문제 설명어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 `absolutes`와 이 정수들의 부호를 차례대로 담은 불리언 배열 `signs`가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 `return` 하도록 `solution` 함수를 완성해 주세요. 제한 사항absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.signs의 길이는 absolutes의 길이와 같습니다. signs[i]가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 입출력 예 입출력 예 설명입출력 예 #1signs가 [true, false, true] 이므로, 실제 수들의 값은 각각 4, -..
[Java][Error] java.lang.ClassNotFoundException 문제해결
·
수수한 코딩세상/Java
Language : JavaVersion : JDK 17IDE : IntelliJ Error MessageError: Could not find or load main class camp.CampManagementApplicationCaused by: java.lang.ClassNotFoundException: camp.CampManagementApplication 원인해당 프로젝트 파일의 메인 클래스의 모듈이 제대로 설정되어 있지 않거나, 모듈에 있는 것들 중 경로가 꼬이면서 발생한 오류였습니다.(저의 경우 해당 프로젝트 모듈 설정 오류였지만 ClassNotFoundException 오류가 발생하는 이유는 다양하기 때문에 이글 (링크첨부)을 참조하여 해당 사항에 맞는 오류 해결을 하시면 됩니다.) 해결..
[Java][Error] Prohibited package name 문제해결
·
수수한 코딩세상/Java
Language : JavaVersion : JDK 17IDE : IntelliJ Error MessageError: A JNI error has occurred, please check your installation and try againException in thread "main" java.lang.SecurityException: Prohibited package name: java.adventure.immutable  원인실행하는 패키지 이름(경로)이 `java`로 시작하는 경우 main Method 실행 시 Exception이 발생하면서 생긴 문제였습니다.  해결방안해당 패키지 이름을 변경해 주면 해결 가능합니다.패키지 이름 우클릭RefactorRename이름 변경(java가 아닌 다른 이..
[Java] Java에서 this 와 this()란 무엇인가
·
수수한 코딩세상/Java
Java에서 프로그래밍을 하다 보면 빠질 수 없는 키워드가 this입니다. this는 자바의 중요한 키워드로서 단어 뜻 그대로 객체 즉, 인스턴스 자신을 표현하는(가리키는) 레퍼런스 키워드입니다. this 란this는 현재 실행되고 있는 메서드가 속한 객체 자신에 대한 레퍼런스입니다. this는 컴파일러에 의해서 자동으로 관리가 되기 때문에 개발자는 this 키워드를 사용하기만 하면 됩니다. this는 객체 내부 생성자 및 메서드에서 객체 내부 멤버(필드 + 메서드)에 접근하기 위해 사용됩니다. 객체 내부 멤버에 접근할 때 this 키워드가 필수는 아니지만 상황에 따라서 필수가 될 수 있습니다. this의 필요성 예를 들어 원의 반지름을 입력받으면 원을 생성해 주는 클래스가 있을 때 그 클래스 코드는 다..
[Java] Project, Package, Class, Method, Variable, Constant 이름 짓는 규칙 (명명 규칙)
·
수수한 코딩세상/Java
Java 프로그램을 작성하다 보면 프로젝트의 이름과 패키지 이름, 클래스 이름, 메서드 이름, 변수 이름을 어떻게 작성하면 좋은지 헷갈릴 때가 많았습니다.그래서 통상적으로 각 요소들의 이름을 짓는 규칙을 찾아서 정리한 후 숙지하고자 글을 작성하게 되었습니다.협업을 하면서 팀원과 회사 또는 조직에 따라서 명명하는 기준들은 다 다르기 때문에 저는 제일 통상적이고 잘 알려져 있는 방법들을 찾아 정리해 보았습니다. 공통적인 명명 규칙대소문자를 구분한다.예약어를 사용해서는 안 된다.숫자로 시작해서는 안 된다. (뒤에 숫자가 오는것은 가능)특수문자는 '_' ghrdms '$'만 허용한다.파스칼 표기법(PascalCase)과 카멜 표기법(CamelCase)을 사용한다.반의어는 반드시 대응하는 개념으로 사용해야 한다...
[Java] 호출 방식으로 알아보는 인스턴스 멤버 & 클래스 멤버 차이
·
수수한 코딩세상/Java
Java 프로그램은 최소 한 개의 클래스로 구성되어 있습니다. 그리고 클래스는 필드(field, 멤버 변수) 또는 메서드(method, 멤버 함수)로 구성되어 있습니다.정확하게는 클래스를 구성하는 요소는 필드, 생성자, 메서드입니다. 하지만 생성자는 클래스 멤버는 아닙니다. 생성자는 인스턴스화 되어 객체를 생성할 때 객체의 초기화를 위해 사용되는 코드 블럭이기 때문입니다. 따라서, 생성자는 자바 클래스의 멤버가 아니며, 멤버가 아니기 때문에 상속되어 오버라이딩 되는 대상이 될 수 없습니다.클래스 구성요소로는 필드, 생성자, 메서드 가 맞지만, 클래스 멤버는 필드와 메서드만 가능합니다.그렇기 때문에 해당 글에서는 필드와 메서드를 중점적으로 설명하려 합니다. 해당 클래스를 구성하고 있는 필드와 메소드를 그 ..
[Programmers][Java] 콜라츠 추측 (정수형 자료형의 중요성)
·
수수한 코딩세상/Code Kata
문제 설명1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.예를 들어, 주어진 수가 6이라면 `6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1` 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, `solution`을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요. 제한 사항입력..
수수한 코딩열공생
수수한 코딩세상