본문 바로가기

자바6

ArrayList remove 주의사항 Java로 개발이나 알고리즘 문제를 풀다보면 아래와 같이 ArrayList로 정보를 저장하고 이를 제거하는 경우가 있습니다. 문자열인 경우는 신경쓸 필요가 없지만 숫자 일 때는 주의할 부분이 있는데요. 바로 remove() 함수가 2개가 있다는 것입니다. 1) remove 함수에 int형을 변수로 넣어주면 아래와 같이 배열의 해당 index에 값을 제거해줍니다. public E remove(int index) { Objects.checkIndex(index, size); final Object[] es = elementData; @SuppressWarnings("unchecked") E oldValue = (E) es[index]; fastRemove(es, index); return oldValue; .. 2024. 2. 20.
'스레드 기초' Java #11 Muti tasking두 가지 이상의 작업을 동시에 처리하는 것 운영체제는 멀티 태스킹을 할 수 있도록 CPU 및 메모리 자원을 프로세스마다 적절히 할당 Multi thread하나의 프로세스가 두 가지 이상의 작업을 처리할 수 있도록 해줌 스레드가 하나라도 동작하고 있으면 프로세스는 종료되지 않음 하나의 스레드는 하나의 코드 실행 흐름 *스레드가 두 개이면 두 개의 코드 실행 흐름이 발생함 Multi process는 운영체제에서 할당받은 자신의 메모리를 가지고 실행됨으로 서로 독립적 Multi thread는 하나의 프로세스 내부에 생성되고 하나의 스레드 예외가 발생하면 프로세스 종료 스레드 필요성ANR, 시간이 많이 걸리는 작업을 수행하는 경우 ANR 방지 Network, 데이터를 가져오는 등의 오래걸리.. 2017. 4. 10.
'전위(++i) 후위(i++) 증감연산자' 필수상식 전위 증감 연산자(++i, --i)기존에 선언한 변수에 값을 증가 또는 감소시킨 후 반환i = i + 1;return i;코드: int i = 1; int j = ++i;결과: i = 2, j = 2 후위 증감 연산자(i++, i--)새로운 임시 변수에 값을 대입한 뒤에 증가 또는 감소시킨 후 반환const int temp = i;i = i + 1;return temp;코드: int i = 1; int j = i++;결과: i = 2, j = 1 컴파일러에 의한 최적화를 하지 않은 경우 전위 증감 연산자를 사용하면 성능이 좋아질 수 있음*연산자 오버로딩으로 증감 연산자를 만든 경우 후위 증감연산자는 클래스를 복사해야함따라서 후위, 전위 둘다 사용해도 되는 경우( for문 'o', while문 'x' )에.. 2016. 12. 23.
'Object-Oriented' 패턴 기초 객체지향의 4가지 특징상속성(Inheritance) / 캡슐화(Encapsulation) / 다형성(polymorphism) / 추상화(Abstraction)*추상화를 위하여 두 가지 특징이 존재장점, 재사용성 / 확장성 / 이식성 / 유지보수의 편리성 메소드 중복 정의(overloading)오버해서 로딩한다, 비슷한 업무지만 다른 양식을 주면서 일을 더 시킴 메소드 재정의(overriding)부모 위에 태운다, 부모를 새로 정의부모로부터 자식이 태어났지만 자식의 모든 것을 부모가 컨트롤 할 수 없다 추상화를 사용하는 이유'갑', '을', '병' 이 존재할 때 '갑'이 인터페이스를 정의하면'을'은 인터페이스에 따라서 메소드를 구현'병'은 '을'이 어떻게 구현했는지 상관 없이 '갑'이 정의해둔 인터페이스로.. 2016. 11. 28.