일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- 디자이어HD
- c언어
- 잡담
- 엑티브엑스
- 스타2
- 윈도우7
- 재귀함수
- Qt OpenGL
- 바이크
- 알람프로그램
- QTcpServer
- qt 설치
- 이륜차
- 스타크래프트2
- Java
- 마영전
- 자료구조
- FFI
- vuejs
- 고속도로
- HTML
- 오토바이
- 양평역
- Qt 소켓프로그래밍
- 정성하
- QT
- 안드로이드
- Qt4
- android SAF
- Today
- Total
목록프로그래밍 (173)
프로그래밍과 잡담
지금 나한테는 디자이어HD 와 트랜스포머 프라임이 있다. 하나는 ICS(커스텀 롬 ) 이고 JB( 순정)이다. 둘의 차이는 cpu와 램에서 차이가 난다. cpu는 폰은 스냅드래곤3세대. 태블릿은 태그라3 폰은 768MB이고 태블릿은 1기가다. 둘의 최대 Heap 크기 차이가 많이 난다. 폰은 64메가 밖에 안되는 반면 태블릿은 256메가나 된다. 허 이것은 어디서 오는거지.. 최대 힙메모리 보고 싶으면 아래 처럼 쓰면 된다. android.util.Log.d("TAG","MAX MEMORY : "+ (Runtime.getRuntime().maxMemory() / (1024 )) + "KB"); 그냥 램용량에 따라서 자동으로 할당이 되는건가? 1기가 폰이 없으니 나중에 동생껄로 해봐야겠군.. 아니면 그냥 ..
망할 쓰레드를 이상하게 사용해버렸군.. 그냥 싱글 쓰레드인데.. 멀티 쓰레드로 착각 해버린거지.. 뭐냐하면 // class MyThread extends Thread{ public void run(){ //작업1 doSomething1(); //작업2 doSomething2(); } } 이런식을 써버린거지..저래 써 놓고서 아 이러면 멀티쓰레드가 되겠지하고 생각을 한것이다.. 아 이런 병신짓을 이제야 깨닫다니.. 멀티 쓰레드를 할려면 그야 말로 쓰레드 클래스를 여러개 생성해야하는데 하나로 해버리는 미친짓을 했다는것.. 멀티 쓰레드를 사용할려면 // //관리용 클래스.. class ThreadManager extends Thread { public void run(){ // 작업1 쓰레드 시작 MyThre..
뭐 이펙티브자바 보면 나오는 말이다.. 상속보다는 인터페이스를 이용하라고 나온다. 왜냐하면 상속은 캡슐화( 정보 은닉) 를 깨는 것이기 때문에 사용하지 말라고 한다. 그러면서 각종 상속을 쓰면 안돼는 이유가 줄줄줄 나온다. 1. 상위 클래스에서 만든 버그가 상속 받은 자식 클래스로 같이 간다는것.2. 오버라이드 가능한 메소드로 인해서 하위 클래스가 망가지던가 이상하게 동작할 수 있다는것.3. 오버라이드 가능한 메소드들의 자기 사용을 조심해야한다.등등등.. 그리고 일반 클래스를 만들 꺼면 final을 붙이거나 private 생성자를 이용해서 상속을 못하게 하라고 한다. 예1) final class super{...} 예2) class super{ private super(){...} } 상속을 써서 가장 ..
알림은 위에 스크린샷 처럼 되있는걸 보고 알림이라 한다. 알림 사용법: * 전체 소스는 귀찮아서 안적음 알림 부분만 쓰겠음.. //중략 ...... //알림을 터치했을때 뜰 엑티비티 Intent in = new Intent(this, 엑티비티.class); //새로운 작업으로 실행 in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pin = PendingIntent.getActivity(this, id, in, 0); // 순서대로 아이콘 id, 제목, 표시할 시각 Notification notification = new Notification(R.drawable.icon, "제목", System.currentTimeMillis()); // 이것을 쓰..
클래스의 상속을 막는 방법은 2가지 방법이 있다. 1. 클래스를 final로 만든다. 2. 기본 생성자를 private로 만든다. 위에 2가지 방법을 쓰면 해당 클래스의 상속을 막을 수 있다. 예) public final class Parent{ protected void fnc(){ ... } ... } public class Parent{ private Parent(){ } ... }
http://stackoverflow.com/questions/2321332/detecting-which-selected-item-in-a-listview-spawned-the-contextmenu-android 위에 사이트로 들어가면 자세히 나온다. 그냥 코드만 보고 해도된다. 메뉴 생성시 @Override public void onCreateContextMenu(ContextMenu contextMenu, View v, ContextMenu.ContextMenuInfo menuInfo) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; selectedWord = ((TextView) inf..
ADT가 20번대가 되면서 안드로이드 프로젝트가 생성이 안된다. 마지막 부분에서 compatibilty 라이브러리를 설치해도 안돼는 문제가 있다. 스크린샷을 안찍어놔서 못 올리는데 어쨌든 무슨 라이브러리를 설치하라는데 설치해도 안넘어가는 현상이 있다. [ install ] [check ..?] 마지막 부분에 이런 식의 이름을 가진 버튼 2개창이 나온다. 해결법은 그냥 compatibilty 라이브러리를 지운 다음에 하면 된다.
인터페이스란 어탭터라고 생각하면 된다. 110 볼트는 [| |]이런 모양으로 되어 있지만 220 볼트는 [o o] 이런 모양이다. 전파상에 가면 어댑터 달라하면 이런거 본 적 있을 것이다. 프로그래밍에서 인터페이스도 마찮가지다..인터페이스는 그냥 저런 구멍을 제공할 뿐 외부 클래스에서는 내부 구현을 어떻게 하는지에 대해서 알 필요가 없다. 자바는 그냥 interface라는 이름이 아예 있고 c++ 같은 경우는 애초에 인터페이스라는게 없다. 왜냐하면 다중상속이 가능한 언어이기 때문에 인터페이스같은게 필요 없다.그냥 일반적인 상속하는 것처럼 만들면 된다. 물론 자바 인터페이스처럼 함수들은 다 순수가상함수로 만들어야겠지만.. 뭐 난 자바가 편하니까 자바형식으로 하겠다.. 예를 들어서 압축을 해제하는 라이브러리..
젠장.. 이노무거 커넥션 풀인지 지랄인지 때문에 시간 보냈네.. 결국 인터넷 검색으로 해결을 했지만 내 블로그 적어놔야겠어.. 내가 사용한 것들 1.이클립스 indigo 버전2.mysql 5.53.tomcat 7.0.23 기본적인 것들 1.jdbc 드라이버 2.commons-dbcp 최신파일 3.commons-pools 최신파일 1. 위에 있는 다 톰켓 폴더의 lib 폴더에 넣기..zip 파일은 넣지 말것. 2. 이클립스로 톰켓을 쓰면 Servers 해가지고 알아서 프로젝트 폴더가 생김.아니면 폴더를 찾아서 들어가거나.. Tomcat v7.0 Server at localhost-config 이런식의 이름을 가진 폴더에 들어가서 3. context.xml을 연다. 태그 아래에 이것을 쓴다. 4. web.x..