swap함수로 값을 넘기는 경우와 참조값을 넘기는 경우의 차이에 대해 이해 바랍니다.[자바개발자교육/자바교육/자바강좌/자바,Spring교육잘하는곳/자바,spring교육추천/자바실무교육/JAVA/JAVA교육/JAVA스프링학원/JAVA실무교육]
class Swap {
static void swap(int x, int y) {
int temp;
temp = x;
x = y;
y = temp;
// x,y,temp는 local변수라서 스택에 저장되고
// 메소드의 실행이 끝나면 값이 사라진다.
//즉 main함수에 돌아가기전 모든 변수 값이 사라짐.
//x,y값이 swap함수안에서는 바뀌지만 main으로 돌아가면
//여기있는 변수 x,y, temp는 사라진다.
}
static void swap(int x, int y) {
int temp;
temp = x;
x = y;
y = temp;
// x,y,temp는 local변수라서 스택에 저장되고
// 메소드의 실행이 끝나면 값이 사라진다.
//즉 main함수에 돌아가기전 모든 변수 값이 사라짐.
//x,y값이 swap함수안에서는 바뀌지만 main으로 돌아가면
//여기있는 변수 x,y, temp는 사라진다.
}
public static void main(String[] args) {
int x = 10;
int y = 20;
int x = 10;
int y = 20;
Swap.swap(x, y); //x, y 값자체 10,20을 넘긴다.
//swap함수의 실행이 끝나고 아래 출력하는 변수는 main함수에서
//정의한 local변수(스택에저장)x, y이므로 swap의 x, y와는 관련이 없다.
System.out.println("x.. " + x); //10
System.out.println("y.. " + y); //20
}
}
//정의한 local변수(스택에저장)x, y이므로 swap의 x, y와는 관련이 없다.
System.out.println("x.. " + x); //10
System.out.println("y.. " + y); //20
}
}
class Swap {
int x, y;
static void swap(Swap s) {
int temp;
temp = s.x;
s.x = s.y;
s.y = temp;
}
int x, y;
static void swap(Swap s) {
int temp;
temp = s.x;
s.x = s.y;
s.y = temp;
}
public static void main(String[] args) {
Swap s = new Swap();
s.x=10; s.y=20;
System.out.println("<<<<< before >>>>>>");
System.out.println("s.x.. " + s.x);
System.out.println("s.y.. " + s.y);
Swap.swap(s); //참조를 넘기므로 돌아오면 값이 바뀌어있다.
System.out.println("<<<<< after >>>>>>");
System.out.println("s.x.. " + s.x); //20
System.out.println("s.y.. " + s.y); //10
}
}
Swap s = new Swap();
s.x=10; s.y=20;
System.out.println("<<<<< before >>>>>>");
System.out.println("s.x.. " + s.x);
System.out.println("s.y.. " + s.y);
Swap.swap(s); //참조를 넘기므로 돌아오면 값이 바뀌어있다.
System.out.println("<<<<< after >>>>>>");
System.out.println("s.x.. " + s.x); //20
System.out.println("s.y.. " + s.y); //10
}
}
오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급
www.oraclejavacommunity.com
평일주간(9:30~18:20) 개강
(5/28)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/30)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/30)[기업100%환급]SQL기초에서 Schema Object까지
(6/09)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(6/09)[기업100%환급]안드로이드개발자과정
(6/09)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(6/16)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
평일야간(19:00~21:50) 개강
(5/26)웹퍼블리싱 마스터
(5/28)Spring3.X, MyBatis, Hibernate실무과정
(5/28)SQL초보에서실전전문가까지
(5/29)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(6/03)안드로이드개발자과정
(6/10)C#4.0, ADO.NET, Network 프로그래밍
(6/19)C#,ASP.NET마스터
주말(10:00~17:50) 개강
(5/31)Spring3.X, MyBatis, Hibernate실무과정
(5/31)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/31)SQL초보에서실전전문가까지
(5/31)C#,ASP.NET마스터
(5/31)실무예제로 배워보는 jQuery(개발자/디자이너를위한)
(5/31)안드로이드개발자과정
주말저녁(18:30~22:20) 개강
(6/21)JAVA,Network&WEB&Framework
(6/21)SQL기초에서실무까지
www.oraclejavacommunity.com
평일주간(9:30~18:20) 개강
(5/28)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/30)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/30)[기업100%환급]SQL기초에서 Schema Object까지
(6/09)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(6/09)[기업100%환급]안드로이드개발자과정
(6/09)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(6/16)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
평일야간(19:00~21:50) 개강
(5/26)웹퍼블리싱 마스터
(5/28)Spring3.X, MyBatis, Hibernate실무과정
(5/28)SQL초보에서실전전문가까지
(5/29)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(6/03)안드로이드개발자과정
(6/10)C#4.0, ADO.NET, Network 프로그래밍
(6/19)C#,ASP.NET마스터
주말(10:00~17:50) 개강
(5/31)Spring3.X, MyBatis, Hibernate실무과정
(5/31)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/31)SQL초보에서실전전문가까지
(5/31)C#,ASP.NET마스터
(5/31)실무예제로 배워보는 jQuery(개발자/디자이너를위한)
(5/31)안드로이드개발자과정
주말저녁(18:30~22:20) 개강
(6/21)JAVA,Network&WEB&Framework
(6/21)SQL기초에서실무까지
댓글 없음:
댓글 쓰기