반응형

간단 지식/Java 15

05. main 메소드의 매개값 - String[] args

public class Test{ public static void main(String[] args){ System.out.println("hello"); } } 메소드는 매개값을 이용할 수 있다. 이는 main 메소드도 매개값을 가질 수 있다는 의미이다. 위 코드를 보면 main의 매개값이 String[] args임을 알 수 있다. 즉, 이름이 args이고 타입이 String인 일차원 배열이 매개값이 된다는 것을 이해할 수 있어야한다. 왜 main 메소드에 매개값이 필요할까? 자바 클래스로 프로그램을 실행하면 JVM이 구동된다는 것을 우리는 안다. JVM이 하는 일 중 길이가 0인 String 타입의 배열을 생성하는 일이 있다. 그리고 생성된 그 배열을 main의 매개값으로 전달해준다. 그러나 위 코..

간단 지식/Java 2020.05.26

04. 참조타입변수 - String, 배열, 열거

String 자바에서 문자열은 변수 String에 저장한다. 특이점이 있다면 String은 다른 참조타입변수들과는 달리 저장된 문자열이 같으면 객체를 공유하게 되어 같은 객체를 참조하게 한다. 따라서 아래 코드를 실행시켜보면 "같은 객체 참조" 라는 출력문이 나올 것이다. String name1 = "KSH"; String name2 = "KSH"; if(name1 == name2){ system.out.println("같은 객체 참조"); }else{ system.out.println("다른 객체 참조"); } 만일 같은 문자열이더라도 다른 객체를 참조하게 하고싶다면 객체 생성 연산자인 new를 사용하면 된다. String name1 = new String("KSH"); String name2 = ne..

간단 지식/Java 2020.05.10

03. Java의 메모리 영역 간단정리

자바에서 메모리를 관장하는 것은 JVM(Java Virtual Machine)이다. JVM은 파일.exe가 실행이 되면 OS가 할당해준 메모리를 3개의 영역으로 구분해서 사용할 수 있게 해준다. method영역, heap영역, stack영역 이 3가지에 대해 알면 객체지향 언어인 자바를 이해하기 쉬울 것이다. method 영역 한 프로그램을 이루는 코드에 있는 각 class별로 runtime constant pool, field & method data, method code, constructor code 를 분류한다. heap 영역 객체와 배열이 생성되는 영역 생성된 객체나 배열을 참조하는 변수 혹은 필드가 없으면 쓰레기가 된다. -> JVM이 garbage collector를 실행시켜 제거 JVM ..

간단 지식/Java 2020.05.10

02. 기본 타입 변수와 참조 타입 변수

데이터 타입은 기본타입변수와 참조타입변수로 구분된다. 기본타입변수는 흔히 사용하는 int, char, double 등을 말하며 정수, 실수, 논리 타입으로 구성된다. 참조타입변수는 객체지향인 자바에서 볼 수 있는 특징으로 배열타입, 열거타입, 클래스, 인터페이스로 구성된다. 이 둘의 차이점은 무엇을 값으로 갖는지이다. 기본타입변수는 말 그대로 값을 저장하며, 참조타입변수는 메모리 번지(주소)를 값으로 갖는다. 자바에서 생성되는 메모리에는 일단 stack영역과 heap영역이 존재한다는 것을 알아두자. 변수가 선언되면 해당 변수는 stack영역에, 객체는 heap 영역에 생성된다. 예를 들어 int age = 23; String name = "KSH"; int[] num = {1, 2, 3}; 이란 코드가 ..

간단 지식/Java 2020.05.08

01. 자동타입변환과 강제타입변환

데이터 타입을 크기 순으로 나열해보면 다음과 같다. byte(1) < short(2) byte, short, int, long : 소수점 아래 값은 누락 3) 예외사항 자동타입변환에서 다른 타입을 char형으로 변환하는 것은 컴파일 에러가 발생한다. char의 범위는 0부터 시작되기 때문에 음수가 저장될 수 있는 타입인 byte, short, int, long, float, double은 캐스팅 후 char형으로 변환할 수 있다. 4-1) 주의사항1 아무래도 개발자가 직접 지정해야 하는 강제타입변환에는 주의해야 하는 점이 있다. 그건 바로 위에서도 언급한 손실이 발생하지 않도록 검사하는 것이 중요하다. 가장 기본적인 검사방법은 if문을 이용한 방법이다. 대략적인 구조는 다음과 같다. if (i최댓값상수)..

간단 지식/Java 2020.05.01
반응형