목록Some Memos/Java (57)
Wanna be Brilliant Full-Stack Developer
메서드의 매개변수와 인수에대해 배워보려고한다! 자판기가 있다! 자판기에는 동전투입구가 있다! 또한 지폐 투입기까지 와 카드 투입구까지 있는데 이 자판기를 이용하려면 동전을 넣든, 지폐를 넣든, 카드를 넣어야한다 음료수를 뽑으려면 이 셋중에 하나는 넣어야한다! 그래서 이 투입구를 매개변수라고 부른다! 어떠한것들이 그러면 인수일까? 여기에 들어갈 실제 동전, 실제 지폐, 실제 카드 이런것들이 인수라고 부른다! 자판기를 사용하려면 두가지의 개념을 알아야하는데 어떤 매개변수가 있고 어떤 인수를 넣어야하는지 알아야한다. 동전 투입구에는 동전 넣고, 지폐 투입구에는 지폐 넣고, 카드 투입구에는 카드 넣는것 만약에 지폐 투입구에 카드를 넣으면 제대로 동작하지 않을것이다. package ch02; public clas..
메서드는? 어떤 클래스의 행위이다. 자동차 클래스가 있다. 이 자동차 클래스는 여러가지 행위를 가지고 있을 수 있다. 첫번쨰는 1) 전진 , 2) 후진 , 3) 멈춤 이 세개가 다 행위이다. 자 그러면 앞서 배운것처럼 메서드는 이 행위들이 일어날떄 이 각각 메서드의 Stack 공간이 만들어진다. ( 생명주기가 가장 짧은 메모리공간은 stack이다) 계산기라는 클래스가 있는데 행위를 또 가지고있다. 1) 더하기 , 2) 뺴기 라는 행위를 가지고있는데 void 더하기() { int sum = 5 + 6 ; } sum 의 값은 11이 될것이다. 더하기라는것을 호출하면 저 내부가 열리는데 오픈이 되고 저 메서드가 종료 될떄 sum값은 없어진다. 왜냐하면 stack이라는 공간은 이 메서드가 호출되서 잠깐 실행중일..
지역 변수는 stack영역에 저장되는것이다. 전역 변수는 heap이나 static에 저장되는 것들이다. 쉽게 이야기하면 생명주기가 전역변수가 길고 지역변수는 짧다! 메모리에 잠깐 떠있는 시간이 짧고 길다는 것으로 차이가 있는데! 코드를 통해 예를 들자면! package ch02; public class StackEx02 { void a() { int n1 = 1; } public static void main(String[] args) { } } 여기서 main이 n1을 접근할 수 있는 방법이 없다. 만약에 메서드 앞에 static을 붙이면 호출이 가능하다. 12번 라인에서 a 메서드의 n1을 접근 할 수 있는 방법이 없다. 왜냐하면 n1이라는 변수는 a라는 메서드가 호출이 될떄 이 코드 영역이 오픈되면..
큐라는 Queue라는 자료구조와 스택 Stack이라는 자료구조가 있다. 자료구조라는것이니까 어떤 자료를 저장할 수 있는 구조라는건데! 어떤식으로 저장이 되냐면 원통이 있는데 내가 처리해야될 데이터가 3개가 있으면 Stack의 처리순서는 입력순서와는 다르게 3, 2 , 1이다 왜냐하면 출구가 없기때문에 하지만 큐는 다르다 빠져나갈 구멍이 있기 때문에 처리순서는 들어온순서와 같이 1, 2, 3 이렇게 처리가된다. package ch02; public class StackEx01 { static void a() { StackEx01 .b(); System.out.println("a2"); System.out.println("a3"); System.out.println("a4"); } static void b(..