
자바에서 함수로 전달된 객체의 값이 변경될지언정 전달되는 것이 객체의 주소값을 복사해서 전달하기 때문에 Call by value라는 것은 알고 있었는데 의문이 들어 좀더 자세히 찾아봤다. 내가 든 의문은 주소값을 복사해서 전달하더라도 어쨌든 주소를 넘겼고 실제로 객체의 데이터도 변경이 되는데 왜 call by reference가 아닌지였다. 우선 call by value와 call by reference를 좀더 정확히 정의해보면 Call by value 복사된 데이터를 전달한다 callee(호출을 받은쪽) 에서 수정해도 원본은 영향을 받지 않는다 Call by reference 실제 주소값을 전달한다 callee 에서 수정하면 원본이 영향을 받는다 햇갈리는점 : Java는 함수내에서 값을 변경하면 값이 ..

인터페이스 타입의 매개변수 메서드 호출 시 해당 인터페이스를 구현한 클래스의 인스턴스를 매개변수로 받겠다. void attack(Fightable f) { } Fightable이 인터페이스라면, attack 메소드는 Fightable 인터페이스를 구현한, 즉 implements Fightable 인 클래스만 매개변수로 받을수 있다. 인터페이스는 관계 없는 클래스들에 관계를 맺어준다 인터페이스는 관계 없는 클래스들에 관계를 맺어 주는데도 사용된다. 다음과 같은 상속관계가 있다고 생각해 보자. SCV에게 기계 유닛, 즉 탱크와 드롭쉽을 수리할수 있는 repair 메소드를 추가하고 싶다. 하지만 탱크의 조상은 GroundUnit이고 드롭쉽의 조상은 AirUnit이다. 첫 번째 방법은 SCV 클래스에 각 유닛..
- java는 call by value다. - 기본형은 그대로 값을 전달한다. - 참조형은 객체의 주소를 값으로서 전달한다. - 메소드에서 객체를 리턴할때 객체의 주소값을 전달한다. - String은 같은 문자열을 가르킨다면 같은 객체이다. String str1 = "abcd" String str2 = "abcd" str1과 str2는 같은 객체이다. - java에서 객체는, 해당 객체를 참조하는 변수가 있다면 소멸하지 않는다. c++에서는 함수 내 선언한 객체가 있다면 함수를 벗어날때 소멸하지만(정확히 말하면 프로그래머가 직접 해제해줘야한다), 자바에서는 해당 객체를 참조하고 있는 곳이 남아 있다면 소멸시키지 않는다. http://ehpub.co.kr/java-4-4-%EA%B0%9C%EC%B2%B4%..
c++에서 벡터에 pair이나 tuple을 저장을 java에서는 클래스를 따로 만들어서 사용한다. class Pair { int distance, cur; public Pair(int _dis, int _cur) { distance = _dis; cur = _cur; } } 이런식으로. 자바의 우선순위큐에 custom class를 넣으면 c++의 compare 함수를 정의하듯이 우선순위큐가 비교할 기준을 제시해 줘야한다. class Pair implements Comparable { int distance, cur; public Pair(int _dis, int _cur) { distance = _dis; cur = _cur; } @Override public int compareTo(Pair targe..
- Total
- Today
- Yesterday
- Tree
- db
- permutation
- recursion
- priority queue
- Python
- 재귀
- Implementation
- CSS
- BFS
- dfs
- Unity
- Brute Force
- DP
- floyd warshall
- Spring
- Stack
- binary search
- graph
- back tracking
- 이분탐색
- 자료구조
- Dijkstra
- two pointer
- C++
- C
- 조합
- greedy
- Kruskal
- MVC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |