본문 바로가기

Java47

하나의 JVM 은 멀티 core 를 사용할 수 있는가? 하나의 JVM 은 멀티 core 를 사용할 수 있는가? JVM 은 하나의 프로세스에서 동작하는 것이 맞다. 해당 JVM 에서 스레드를 생성해 사용할 때는 OS 의 스레드를 사용함. OS 는 OS 스레드를 스케줄링하는 책임이 있다. 이 OS 의 스레드는 다른 multi core 에 있으며, 결국 하나의 JVM 에서 멀티 코어를 사용할 수 있다. 1개 프로세스 멀티 쓰레드 vs 멀티 프로세스 정리 1개의 프로세스 멀티 쓰레드가 이론적으로 더 속도가 나올 것이라 생각되지만 막상 벤치마킹 하면 속도차이가 얼마 안난다. 스레드 간 문맥교환이 프로세스 간 문맥교환 보다 적은 비용이지만 실제 성능은 비슷하다. 멀티 쓰레드는 사용하기 어렵다. 스레드 간 자원 공유를 고려하며, 프로그래밍 해야하기 때문 배치 같은 프로그.. 2020. 11. 6.
자바 클래스, 객체, 인스턴스란? 자바 클래스, 객체, 인스턴스란? 클래스(Class) 란 객체를 만들어 내기 위한 설계도 혹은 틀 연관성있는 상태와 행위의 집합 객체(Object) 란 소프트웨어 세계에 구현할 대상 클래스에 선언된 상태, 행위 그대로 생성된 실체 인스턴스 (Instance) 란 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체 객체를 소프트웨어에 실체화 하면 그것을 ‘인스턴스’라고 부른다. 즉, 실체화된 인스턴스는 메모리에 할당된다. 인스턴스는 객체에 포함된다고 볼 수 있다. 객체와 인스턴스의 차이 public class Animal { /* 객체와 인스턴스 */ public class Main { public static void main(String[] args) { Animal cat, dog; // &#3.. 2020. 11. 4.
singleton pattern 설명 singleton pattern 설명 singleton pattern 이란 인스턴스를 하나만 만들어서 사용하는 것. 이렇게 하는 이유는 비즈니스 로직상 굳이 공통된 인스턴스를 사용해도 될 때. 사용할 때마다 만드는게 아니라 하나만 만들어서 재활용하면 자원 절약이 되기에 예를 들면, 환경 Config 등은 하나의 인스턴스만 있어도 되니 싱글톤 패턴을 이용 public class Singleton { // Private constructor prevents instantiation from other classes private Singleton(){} /** * SingletonHolder is loaded on the first execution of Singleton.getInstance() * or .. 2020. 10. 29.
java string contains time complexity (java string contains 시간복잡도) java string contains time complexity 결론만 얘기하면 O(nm) 이다. n 은 string 길이. m 은 찾고자하는 string 길이 증명 아래 내용을 보면 contains 는 indexOf 를 호출하고, IndexOf 는 최악의 경우 O(nm) 인 것을 알 수 있다. 아래 소스는 자바 String 소스이다. public boolean contains(CharSequence s) { return indexOf(s.toString()) > -1; } static int indexOf(char[] source, int sourceOffset, int sourceCount, char[] target, int targetOffset, int targetCount, int fromIn.. 2020. 10. 6.