본문 바로가기

프로그래밍

[자바 질문] 자바 가비지 콜렉션 질문드립니다. 자바 가비지 콜렉션 질문드립니다. 아래와 같은 소스가 있습니다.public class Tahiti {Tahiti t;public static void main(String[] args) {Tahiti t = new Tahiti();Tahiti t2 = t.go(t);t2 = null;// 프로그램이 이곳에 도달 했을때 // 몇 개의 객체가 가비지 콜렉터에 의해 수집이 가능한지 // more code here...}Tahiti go(Tahiti t) {Tahiti t1 = new Tahiti();Tahiti t2 = new Tahiti();t1.t = t2;t2.t = t1;t.t = t2;return t1;}} 질문이 저 빨간색인데답은 0개라고 하는데 저는 왜 0개가 되는지 잘 모르겠습니다.t2 에 nu.. 더보기
[안드로이드] 안드로이드 Failed to install timeout Failed to install XXx.apk on device '디바이스명 ' : timeout 개발을 하다보면 위와 같은 에러가 가끔 발생합니다. 지금이야 검색하면 바로바로 나오니 큰문제가 되지 않지만 초창기에는 관련문제를 알아내는게 그리 쉽지 만은 않았습니다. 보시는 바와 같이 에러의 마지막에 보시면 timeout 라고 되어 있습니다. 개인적인 생각으로는 이클립스가 이리말하는것 같습니다. " 단말기에 apk파일을 인스톨 할려고 하는데 apk가 용량이 크네. 근데 니가 설치 시간을 짧게 잡아놔서 내가 설치하다가 시간 제한에 걸린거아냐? " 다분히 개인적인 생각입니다. 해결책은 간단합니다. 이클립스에서 상단 메뉴바에서 Window 클릭 --> Preferences 클릭 --> 좌측 메뉴중 Android.. 더보기
[안드로이드/Android] 안드로이드 ViewGroup 안드로이드 ViewGroup ViewGroup는 “ View를 담는 통 ” 이라고 생각하시면 됩니다. ViewGroup를 상속받은 녀석들은 또다른 View를 포함할 수 있습니다. 잘보시면 ViewGroup도 View를 상속 받았습니다. 그러니 ViewGroup는 또다른 ViewGroup도 포함할 수 있다는 것이 되겠죠. 이러한 특징을 잘 이용하시면 보다 멋진 화면구성을 하실 수가 있습니다. 다음은 ViewGroup에서 사용되는 속성들 입니다. ViewGroup은 View를 상속 받기 때문에 대부분의 속성을 View안에 있는 것을 사용 한답니다. 대신 ViewGroup는 내부 클래스인 ViewGroup.LayoutParams 를 가지고 있습니다. 이 녀석 자주 쓰인답니다.^^ 이 ViewGroup.Layo.. 더보기
[안드로이드/Android] 안드로이드 View 안드로이드 View 뷰는 화면상에서 유저 인터페이스를 구성하는 녀석입니다. 뷰가 여러개가 모여서 Activity가되고 Activity가 여러개 모여 하나의 앱이 나오게 됩니다. Button, ImageView, TextView, EditText, RadioButton, CheckBox 등의 기본적인 화면 구성 요소들이 뷰에 포함됩니다. 또한 WebView, Map, Video등을 표시하는 고급 구성 요소들도 모두 뷰에 포함됩니다. 그리고 뷰는 이벤트를 통해서 사용자로 부터 입력을 받아 들일 수 있습니다. 쉽게 말해서 “View는 유저에게 보여지는 하나의 화면 단위” 라고 생각하시면 됩니다. 그리고 View를 상속받은 녀석들은 모두 “아하! 이 녀석은 View를 상속받았으니 유저들이 볼수 있는 녀석이구나”.. 더보기
[안드로이드/Android] 안드로이드 인텐트 - 2 [안드로이드] 안드로이드 인텐트 - 2 Activity 액티비티인텐트 - 1 인텐트 - 2 ☞ 현재 보는곳Activity 간에 값 전달 하기 인텐트로 액티비티 띄우기1. 명시적 액티비티 시작하기 가장 간단하게 사용되는 녀석이라 말할수 있겠네요. Intent intent = new Intent(AAA.this, BBB.class);startActivity(intent);위와 같이 작성하면 끝납니다. startActivity()메소드가 호출되면 BBB라는 이름의 액티비티가 화면에 보여지게 됩니다. 새로 보이는 이 액티비티에서 코드상에서 finish() 를 호출하게 되면 액티비티가 종료되게 됩니다. 아주 간단하죠? 2. 암시적 인텐트 익명의 어플리케이션 컴포넌트가 액션 요청을 서비스할 수 있도록 하는 메커니즘.. 더보기
[안드로이드/Android] 안드로이드 - 리소스 (1) [안드로이드] 안드로이드 - 리소스 (1) 리소스 1 ☜ 현재 보는 곳리소스 2 리소스(Resource)는 안드로이드 아키텍처에서 중요한 역활을 담당한다. 안드로이드 리소스란 실행 가능 애플리케이션에 연결돼 있는 파일(ex : mp3)이나 값(ex : 대화창 제목)을 의미한다. 이러한 파일과 값들은 애플리케이션을 다시 컴파일 해서 디플로이(deploy)하지 않고도 변경할 수 있게끔 실행파일에 연결된다. 리소스는 보편화된 각종 UI프레임워크에서 매우 중요한 역활을 담당한다. 리소스에 대한 보편적 예제들 중에는 문자열, 컬러, 비트맵 예제도 있다. 일례로 애플리케이션에서 문자열을 하드코딩하지 않고 그 문자열들의 ID를 이용할 수도 있다. 이러한 간접적 방법을 사용하면 개발자는 소스코드를 수정하지 않고도 문자.. 더보기
[안드로이드] 안드로이드 - 리소스 (2) [안드로이드] 안드로이드 - 리소스 (2) 리소스 1 리소스 2 ☜ 현재 보는 곳 ◈ 나중을 위해 고유 리소스 ID 정의하기 id를 할당하는 일반적인 방법은 새id를 생성하거나 안드로이드 패키지에 의해 생성된 id를 사용하는 것이다. 그러나 미리 id를 생성해 두었다가 개발자의 패키지에서 나중에 사용하는 방법도 가능하다. 은 text라는 id가 존재할 경우 그 id가 사용될 예정임을 나타낸다. 만일 그 id가 존재하지 않는다면 새 id가 생성될 것이다. 그렇다면 text 같은 id가 재사용되도록 R.java 안에 id 정의를 미리 넣을 수 있는 시점은 언제인가? item이라는 리소스 태그를 사용해서 특정 리소스에 부착하지 않고 id를 정의하는 것이다. Ex) 샘플 파일 .............. type.. 더보기
[자바/JAVA] 자바 - 피라미드 만들기 + 모래시계 만들기 소스 자바 - 피라미드 만들기 + 모래시계 만들기 소스 import java.io.*; class Pyramid{ public static void main(String[] args) throws IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int num = 0; System.out.print("숫자 입력: "); num = Integer.parseInt(in.readLine()); for(int i = 0; i < num; i++){ for(int j = 0; j < num - i; j++){ System.out.print(" "); } for(int k = 0; k < i*2 + .. 더보기