'Programming'에 해당되는 글 1721건

  1. 2014.03.20 java assert
  2. 2014.03.19 java thread
  3. 2014.03.19 java 날짜 관련 패키지
  4. 2014.03.19 2중 포인터 사용이유
  5. 2014.03.19 python이 인기라는데..
  6. 2014.03.18 java collection
  7. 2014.03.18 java generic
  8. 2014.03.18 cpp static 변수 및 메소드
  9. 2014.03.18 cpp scope 연산자
  10. 2014.03.17 java static import
Programming/Java2014. 3. 20. 13:40
c에서의 assert 문 처럼
특정 조건에 대해서 참/거짓 시에 강제로 종료하는 역활을 한다.

[링크 : http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html]

assert는 디버깅 용도이기 때문에
assertion mode가 꺼져있어
-ea 옵션(Enable Assertion)을 통해 디버깅 모드로 작동하도록 설정해야 한다.


[링크 : http://javacan.tistory.com/70]
[링크 : http://stackoverflow.com/questions/5509082/eclipse-enable-assertions]

'Programming > Java' 카테고리의 다른 글

java 8을 윈XP에 설치하자?  (2) 2014.03.20
java 8 released!!  (0) 2014.03.20
java thread  (0) 2014.03.19
java 날짜 관련 패키지  (0) 2014.03.19
java collection  (0) 2014.03.18
Posted by 구차니
Programming/Java2014. 3. 19. 21:09
Thread는 Runnable interface를 구현한 클래스이다.
Runnable에는 run() 메소드 하나가 있으며
thread에서 오버라이딩한 run() 을 통해 쓰레드를 실행하게 된다.

 public class Thread extends Object implements Runnable 

[링크 : http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html]
 
Thread에는 쓰레드 제어관련 명령어들이 있으나
thread-safe 하지 않아서 인지 deprecated method가 많이 있다.
(이것들이 모두 deprecated되면 쓰레드는 실행하고 양보하는 것 외에는 제어가능한 게 없다?)

run() - 태스크에서 실행할 내용 구현
join() - 호출한 태스크만 실행함(해당 태스크 종료시 까지 싱글 태스크로 전환, 나머지는 sleep)
sleep() - 지정한 시간 만큼 태스크를 실행하지 않음
start() - 멀티태스크를 시작함
yield() - ?

'Programming > Java' 카테고리의 다른 글

java 8 released!!  (0) 2014.03.20
java assert  (0) 2014.03.20
java 날짜 관련 패키지  (0) 2014.03.19
java collection  (0) 2014.03.18
java generic  (0) 2014.03.18
Posted by 구차니
Programming/Java2014. 3. 19. 20:21
Date는 1.0부터
Calendar는 1.1부터 JDK에 추가되었으나
하위호환성으로 인해 Date를 주로 사용한다.

import java.util.Calendar; // 1.1 이후
import java.util.Date; // 1.0  + 호환성으로 인해 주로 사용

[링크 : http://docs.oracle.com/javase/7/docs/api/java/util/Date.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html]

'Programming > Java' 카테고리의 다른 글

java assert  (0) 2014.03.20
java thread  (0) 2014.03.19
java collection  (0) 2014.03.18
java generic  (0) 2014.03.18
java static import  (0) 2014.03.17
Posted by 구차니
Programming/C Win32 MFC2014. 3. 19. 14:15
2중 포인터는 포인터에 대한 포인터 이다.
라고 하면 먼가 중의적인 설명인데...

간단하게
포인터 변수를 다른 함수에게 포인터로 넘겨주어
포인터 변수의 값(다르게 말하면 malloc()한 주소)을
변경(용량 부족으로 realloc() 하거나 새롭게 malloc() 하거나) 하는데 사용한다.

예전에 linked list를 하면서 알았던거 같은데 왜 까먹었을까 ㅠㅠ

[링크 : http://eirenehue.egloos.com/1000688]
[링크 : http://debugjung.tistory.com/258]
[링크 : http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=50&MaeulNo=20&no=794484&ref=794461

'Programming > C Win32 MFC' 카테고리의 다른 글

vc++ vector와 Vector 차이점?  (0) 2014.07.03
순열생성관련  (0) 2014.06.27
typeof  (0) 2014.03.11
const / pointer  (0) 2014.02.25
assert()  (0) 2013.12.18
Posted by 구차니
한동안 죽어있다가 이제야 조금 살아나는 기미가 보이긴 한데
학원이나 아는 사람들에게 이야기를 들으면
요즘 각광받는 언어라고 해서 참으로 의아한..

python2 2.7.x 에서 한동안 3.x 대로의 이전이 쉽지 않았는지 거의 3년 가량을 죽어 있다가
2014년 3월 16일 3.4.0이 릴리즈 된 걸 봐서는 이제 이 언어도 살아 날지도 모르겠다.

[링크 : https://www.python.org/download/releases/]

'Programming > python(파이썬)' 카테고리의 다른 글

python sqlite3  (0) 2017.03.30
python smtplib의 신비..?  (0) 2016.12.30
python2 vs python3  (0) 2013.01.02
PyOpenGL  (0) 2011.10.04
python 3.2.2 64bit 버전 설치  (4) 2011.09.13
Posted by 구차니
Programming/Java2014. 3. 18. 18:17
collection은 cpp로 치면.. STL?
제너릭스(generics)를 이용해서 만든 자료구조이다.

Set  / List / Queue / Map이 주로 사용되며,
4개는 interface로 implement 되어 각각에 대해 패키지를 제공하게 된다.
Set - HashSet / TreeSet
List - Stack / Vector / ArrayList
Queue - LinkedList
Map - HasMap

[링크 : http://docs.oracle.com/javase/7/docs/api/java/util/Set.html]
    [링크 : http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/util/List.html]
    [링크 : http://docs.oracle.com/javase/7/docs/api/java/util/Stack.html]
    [링크 : http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html]
    [링크 : http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/util/Queue.html]
    [링크 : http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/util/Map.html]
    [링크 : http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html]

[링크 : http://docs.oracle.com/javase/tutorial/collections/interfaces/index.html]
[링크 : http://docs.oracle.com/javase/tutorial/collections/implementations/index.html]


>>>>
set(interface)
-> HashSet / TreeSet(implements)
set - 정렬되지 않음 / 중복 허용하지 않음 (대소문자 구별함)

>>>>
 List(가장 많이 씀 / array와 유사함)
- Stack / Vector / ArrayList (stack은 별로 사용하지 않음)

Stack - push / pop

Vector
 new Vector<String>(2,5) // 초기 2개, 확장 시 5개씩 확장
contains() remove() cacacity() size()
trimToSize() // 메모리 공간 줄이기

>>>>
Queue
- LinkedList 
offer() // push() 개념
poll() // pop() + 삭제

collection - interface
collections - class

>>>>>>
Map
-  HashMap
put()// 저장
get() // 꺼내기

ArrayList / HashMap을 많이 씀

Iterator(반복자)
- hasNext() remove()

---
2014.03.21 추가
결국에 Collection 하위는 Collection과 Iterable의 상속관계이며
toArray를 통하거나 Iterator를 통해서 상호 변환이 가능하다.

public interface Collection<E> extends Iterable<E>
- Object[] toArray()
- <T> T[] toArray(T[] a)
Iterator<E> iterator()
=======================================================
public interface Iterator<E>
- boolean hasNext()
- E next()
- void remove()
=======================================================


public interface Set<E> extends Collection<E>
public interface List<E> extends Collection<E>
public interface Queue<E> extends Collection<E>
public interface Deque<E> extends Queue<E>
public interface Map<K,V>
=======================================================
>> public interface Set<E> extends Collection<E>
public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E>
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable
public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, Serializable
public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, Serializable

>> public interface List<E> extends Collection<E>
public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
public class Stack<E> extends Vector<E>
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, Serializable 


 

'Programming > Java' 카테고리의 다른 글

java thread  (0) 2014.03.19
java 날짜 관련 패키지  (0) 2014.03.19
java generic  (0) 2014.03.18
java static import  (0) 2014.03.17
java inner class / anonymous class  (0) 2014.03.17
Posted by 구차니
Programming/Java2014. 3. 18. 18:05
collection - c/cpp의 자료구조
generic은 jdk 1.5.0 부터 지원됨

해당 패키지를 사용하기 위해서는 java.util을 포함해야 함.
import java.util.*;  

제너릭스 (Generics)
API문서에 4개의 식별자가 존재한다. <T,E,K,V>
Type
Element
Key
Value

사용방법은 다음과 같으며, cpp의 template와 거의 유사하다.
class className <T>
{
    T[] v;
}

className<String> t = new className<String>(); 

[링크 : http://docs.oracle.com/javase/7/docs/api/java/util/package-summary.html]


자바는 타입을 강하게 확인하지만 유연성을 위해 몇가지 확장 키워드를 제공한다.

<?> // 클래스 타입 상관없음
<? super class> 해당 클래스의 상위 클래스까지 허용 (본인 클래스는 포함되지 않음)
<? extends class> 해당 클래스의 하위 클래스만 적용 (본인 클래스는 포함되지 않음) 


'Programming > Java' 카테고리의 다른 글

java 날짜 관련 패키지  (0) 2014.03.19
java collection  (0) 2014.03.18
java static import  (0) 2014.03.17
java inner class / anonymous class  (0) 2014.03.17
java private constructor  (0) 2014.03.14
Posted by 구차니
Programming/C++ STL2014. 3. 18. 13:05
static 멤버 변수는 클래스 공용변수로 적용되며(global shared variable scope on class)
static 멤버 메소드는
객체로 생성하지 않아도(new) 실행이 가능한 함수이다.

일단.. static 멤버 변수는
아무래도... 공용데이터로 인해서 동기화나 데이터 의존성이 문제가 될 수 있으므로 되도록이면 안쓰는게 좋을것 같고
static 멤버 메소드는 instance 로 만들지 않고 객체 단위로 함수들을 정리할때 유용할 것으로 생각된다.

They cannot access nonstatic class member data using the member-selection operators (. or –>).
They cannot be declared as virtual.
They cannot have the same name as a nonstatic function that has the same argument types.

[링크 : http://msdn.microsoft.com/ko-kr/library/yyh8hetw.aspx] 멤버 메소드
[링크 : http://msdn.microsoft.com/ko-kr/library/s1sb61xd.aspx] 멤버 변수

함수 인자나 지역변수는 스택에 생성되고
static 변수는 data 영역에 선언되므로
data 영역에는 프로그램이 실행중에는 스택과 같이 임시로 사용되는게 아니기에 데이터가 유지되는 특징을 지닌다.

[링크 : http://sfixer.tistory.com/30

'Programming > C++ STL' 카테고리의 다른 글

c++ 현변환 연산자(cast operator in c++)  (0) 2015.01.26
functor / 펑터  (0) 2014.04.16
cpp scope 연산자  (0) 2014.03.18
cpp class에서 변수값을 미리 선언 못하는 이유  (0) 2014.03.15
cpp 와 java의 차이점(문법)  (0) 2014.03.14
Posted by 구차니
Programming/C++ STL2014. 3. 18. 10:11
cpp에 scope 연산자를 이용하면
클래스 내의 변수에 접근하는데 사용할 수 있으나 (class::variable 혹은 class::memberfunc)
클래스가 아닌 곳에서 그냥 ::만 사용할 경우 글로벌 변수를 접근할 수 있다.

int error;
void Error(int error)
{
    if(::error != 0) ; // global error
}
[링크 : http://www.pragsoft.com/books/CppEssentials.pdf] 62쪽

'Programming > C++ STL' 카테고리의 다른 글

functor / 펑터  (0) 2014.04.16
cpp static 변수 및 메소드  (0) 2014.03.18
cpp class에서 변수값을 미리 선언 못하는 이유  (0) 2014.03.15
cpp 와 java의 차이점(문법)  (0) 2014.03.14
cpp 디폴트 매개변수  (0) 2014.03.12
Posted by 구차니
Programming/Java2014. 3. 17. 20:11
JDK 1.5.0부터 추가된 import static은
c++의 using namespace와 같은 역할을 한다.

아래의 문장이
double r = Math.cos(Math.PI * theta); 
 
이렇게 축약될 수 있다.
import static java.lang.Math.PI;
import static java.lang.Math.*;
double r = cos(PI * theta); 


타이핑이 줄어서 편할수도 있지만 
물론 이렇게 name space를 파괴하면서 다른 패키지와의 충돌이나
가독성(System.out.println이 워낙 익숙한데 out.println이라고 쳐놓으면.. )의 문제로
그리 많이 쓰이진 않는 듯 하다. 

[링크 : http://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html]

'Programming > Java' 카테고리의 다른 글

java collection  (0) 2014.03.18
java generic  (0) 2014.03.18
java inner class / anonymous class  (0) 2014.03.17
java private constructor  (0) 2014.03.14
java abstract / interface & cpp virtual  (0) 2014.03.14
Posted by 구차니