본문 바로가기

Java

(25)
레퍼런스 변수와 메모리, 에러 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 레퍼런스 변수 자바에서 레퍼런스 변수는 primitive 자료형(기본 자료형 8개) 외에 다른 모든 것을 가리키는 변수를 의미합니다. 자바는 객체지향 언어이기 때문에, 사실상 레퍼런스 변수를 가장 많이 사용할 것입니다. 이런 레퍼런스 변수는 다음과 같은 구조를 갖습니다. 객체(Object)가 new를 통해 할당될 때 힙 메모리에 자신만의 영역을 갖게 됩니다. 위 그림에서 int []는 기본 자료형이 아닌, 레퍼런스 자료형입니다. (배열 자료형) new로 할당한 레퍼런스 자료형은 '힙 영역'에 할당됩니다. 또한 할당과 동시에 모두 0으로 초기화가 됩니다. 또한 배열 자체의 연속된 공간 외에도, 기타 정보들이 들어가는 자..
Scanner로 키보드 입력 받기 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com Scanner 자바에서 어떤 곳에서든(키보드, 파일, 하드웨어 등) 입력(읽어 들이기)을 편하게 할 수 있도록 만든 것 오늘은 초보자용 "표준 입력" 즉 키보드에서 입력을 받는 방법에 대해서 간단하게 알아보겠습니다. 예제 import java.util.Scanner; public class ScannerExample { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { System.out.println(scanner.next()); } scanner.close(); } }..
타입 변환 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 자동 타입 변환 전에 자바의 기본 자료형(링크)에 대해서 말씀드렸던 적이 있었습니다. 자료형들은 각각 크기를 갖고 있었죠? 서로 다른 자료형으로 연산 or 할당을 하고 싶으면 어떻게 할까요? 서로 다른 자료형으로는 연산 or 할당을 할 수 없습니다. 그래서 연산을 하기 전에 자료형을 같게 만들어 주는 과정이 필요합니다. 자료형을 같게 만들어 주는 것에도 기준이 있습니다. 오늘은 그 기준에 대해서 알아보겠습니다. 자동 변환의 기준은 다음과 같습니다. byte(1), short(2), char(2) -> int(4) -> long(8) -> float(4) -> double(8) 1. 작은 타입은 큰 타입으로 변환된다 위..
상수 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com Java의 상수 프로그래밍에서 상수(constant but not literal)란, 프로그래머가 지정한 값을 변경하지 못하도록 하는 변수를 의미합니다. C언어를 사용해보신 분이라면 const 키워드를 통해 변수를 상수화 해보신 적이 있을 것입니다. Java에서는 const대신 final이라는 키워드를 사용하여 상수를 만듭니다. 예제 public class FinalExample { public static final String MY_CITY = "seoul"; (O) public static final String MY_COUNTRY; static { MY_COUNTRY = "korea"; (static 초기화) ..
var변수 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com Var Java 진영에서도 인간 중심적 프로그래밍 언어로 나아가고자 하는 노력들이 있습니다. 그중 하나가 Java 10에서부터 도입된 var변수입니다. var변수는 프로그래머가 타입을 직접 표기하는 것이 아니라, 컴파일러가 컴파일 시 타입을 추론하여 자동 지정해주는 것을 의미합니다. 예시 public class VarExample { var name = "ok"; (X) public static void main(String[] args) { var price = 1; (O) var str = "string"; (O) var list = new ArrayList(); (O) var one; (X) } } 주의사항은 있..
Java의 데이터 타입 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 서론 Java는 데이터 타입을 엄격하게 제한하는 언어입니다. (요즘은 var 등의 키워드로 인간 중심의 프로그래밍 언어로 나아가는 중이긴 합니다) 그래서 Java로 코딩을 하려면 이런 자료형들에 대해서 잘 알아야 합니다. Java의 데이터 타입 Java의 데이터 타입 종류는 크게 2가지로 나눌 수 있습니다. 1. Primitive type 기본 자료형을 의미합니다. 2. Reference type 사용자 정의 자료형을 의미합니다. 아래에서 조금 더 자세히 알아보겠습니다. Primitive type (기본 자료형) Java의 기본 자료형에는 8가지 종류가 있습니다. 1. boolean true / false 만을 표현하..
Java의 식별자 (좋은 이름 붙이기) 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 식별자 Java에서 식별자란 무엇일까요? 클래스, 변수, 상수 등에 붙이는 이름입니다. 프로그래밍을 하다 보면 이름을 지어야 하는 경우가 매우 많습니다. Java에서도 이렇게 이름을 짓는 데 규격화된 틀이 있는데요, 오늘은 어떻게 좋은 이름을 지을 수 있는지에 대해서 공부해보겠습니다. 알아야 할 규칙 1. 한글이 사용 가능하다. ex) int 나이 = 30; 하지만 일반적인 관습에 따라 식별자의 이름은 영어로 짓는 것이 좋겠죠? 2. 특수문자는 사용 불가능하다. 단, '_'와 '$'는 예외적으로 사용이 가능하다. ex) int my_age = 30; 특수문자 중에는 _와 $만 기억하시면 됩니다. 3. 숫자는 첫 글자로..
Hello, World! 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 첫 자바 프로그램 실행해보기 소스코드 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } 실행 결과 이어서 설명하겠습니다. 자바의 main함수 자바는 객체 지향 언어이고, 자바의 모든 것은 "클래스"로 이루어집니다. C언어를 해보신 분들이라면 아시겠지만 프로그램의 시작은 main함수부터였죠? 자바도 마찬가지입니다. 단지 차이점이라 하면, C언어는 main 외에는 모두 "전역"이라 불리는 부분이고, 자바는 main함수조차 클래스 안에 소속됩니다. (자바의 main함수는 public..