Language/Java

    Java 자료형

    primitive(원시) 자료형 int / long / boolean / char String string → char .charAt(인덱스숫자) : 인덱스에 있는 문자 반환 String string = "apple is orange"; System.out.println(string.charAt(4)); // e System.out.println(string.charAt(2)); // p char → string String.valueof( ) char[] arrCh = {'a', 'b', 'c' }; String str = String.valueOf(arrCh); .toCharArray() string형식을 charArray 형태로 변환 string = "apple is apple pen orange ..

    POJO, DAO, DTO, VO 차이

    POJO (Plain old java object) 프레임워크를 사용하기 위해서 해야만 하는 어떤 제약이 없는 평범한 자바 객체 비즈니스 처리가 아닌 데이터를 유지하는 책임짐 getter / setter를 가진 단순한 자바 오프젝트"이며 의존성이 없고, 테스트도 용이하며 추후 수정이 편리한 오프젝트라 DAO (Data access object) 지속성 / 데이터베이스 처리를 담당 한마디로 DB에 액세스하는 객체 DAO는 POJO 객체를 사용하여 저장하거나 가져올 수 있음 DTO (Data Transfer Object) DAO는 POJO 객체를 사용하여 저장하거나 가져올 수 있음 VO(Value Object) VO는 DTO와 동일한 개념이지만 read only 속성을 갖음 VO는 특정한 비즈니스 값을 담는..

    메모리 누수 (Memory leak)

    Java Virtual Machine (JVM)과 메모리 관리 C 나 C++ 에서는 OS 레벨의 메모리에 직접 접근하기 때문에 free() 라는 메소드를 호출하여 할당받았던 메모리를 명시적으로 해제해주어야 한다. 그렇지 않으면 memory leak 이 발생하게 되고, 현재 실행중인 프로그램에서 memory leak 이 발생하면 다른 프로그램에도 영향을 끼칠 수 있습니다. 반면, 자바는 OS 의 메모리 영역에 직접적으로 접근하지 않고 JVM 이라는 가상머신을 이용해서 간접적으로 접근한다. JVM 은 C 로 쓰여진 또 다른 프로그램인데, 오브젝트가 필요해지지 않는 시점에서 알아서 free() 를 수행하여 메모리를 확보한다. 웹 애플리케이션을 만들 때 모든 것을 다 직접 개발하여 쓰기보다 검증된 라이브러리나 ..

    자바 가상머신 (JVM: Java Virtual Machine)

    JVM 이란? 자바 가상 머신(Java Virtual Machine, JVM)은 시스템 메모리를 관리하면서 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공한다. JVM은 다른 프로그램을 실행시키는 것이 목적인 프로그램이다. 방어적 코딩(Coding Kung Fu)의 가장 훌륭한 예 가운데 하나이기도 한 간단한 아이디어이기도 하다. JVM은 당시에도 상황을 뒤집어 놓았고 지금까지도 프로그래밍 혁신을 지원하고 있다. JAVA program 실행 과정 프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당받습니다. (JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리함 ) 자바 컴파일러(javac)가 자바 소스코드(.java)를 읽어들여 자바 바이트 코드(.cla..

    1. BinaryGap : Find longest sequence of zeros in binary representation of an integer.

    A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. The number 20 has binary r..