본문 바로가기

Study/Language6

[Java] int, Integer, int[] .. ? 1. int - 기본 데이터 타입으로 정수의 바이너리 값만 저장한다. Integer에 비해 flexibility가 떨어진다. - 메서드에서 value를 전달할 시에는 값만 전달한다. 2. Integer - int 데이터 타입의 wrapper class이다. - int 데이터 타입에 비해 flexibility가 높다. (저장, 변환, 조작 등에 관해서) - 하나의 클래스이기 때문에 다양한 method에서 활용이 가능하다. - 특히 컬렉션프레임워크에 포함되어 있는 List, Set, Map 등에서 자주 쓰일 수 있는데, int는 값만을 표시하지만 Integer는 하나의 정수 객체이기 때문이다. (java.util 패키지의 경우 objects만 다루며 그 속에 있는 자료구조들도 마찬가지 => wrapper c.. 2023. 4. 19.
[Java] 컬렉션 프레임워크를 알아보자 를 요약 정리한 글입니다. 문제가 될 시 글을 내리도록 하겠습니다. 1. 컬렉션 프레임워크란? 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제 , 검색할 수 있도록 인터페이스와 클래스들을 java.util 패키지에 포함시켜놓은 것이다. 크게 3가지가 있는데 List, Set, Map이 그것이다. List는 순서를 유지하고 저장하며, 중복저장이 가능하다. 대표적으로 ArrayList, Vector, LinkedList가 있다. Set은 순서를 유지하지않고 저장하며 중복 저장이 불가능하다. 대표적으로 HashSet, LinkedHashSet, TreeSet이 있다. Map은 키와 값으로 구성된 엔트리를 저장한다. 키는 중복 저장되지 않는다. 대표적으로 HashMap, HashTable, LinkedHas.. 2023. 4. 19.
[Java] 제어의 역전(IoC)과 의존관계 주입(DI) 김영한님의 Java 핵심원리를 다시 복습하며 제어의 역전과 의존관계 주입을 정리해본다. 결론부터 말하자면 제어의 역전은 프로그램의 제어흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것이다. 의존성 주입은 실행시점(런타임)에 외부에서 실제 구현객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결되는 것 IoC컨테이너 혹은 DI 컨테이너는 객체를 생성하고 관리하면서 의존관계를 연결해주는 것이다. (아래에서는 AppConfig) 확 와닿는 말은 아닌 것 같다. 코드를 보면서 하나씩 정리해보자 1. 제어의 역전 (Inversion of Control) 1) 변경 전 : DIP가 지켜지지 않음! 주문서비스 클라이언트 (OrderServiceImpl)은 추상인터페이스 뿐만 아니라 구체.. 2023. 3. 16.
[Java] 상속과 인터페이스 상속 상속에서는 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만듦으로써 중복되는 코드를 줄이고 개발시간을 단축시킨다. extends를 사용하여 자식이 부모를 선택하며 자식 객체가 생성되면 부모 객체는 먼저 생성된다 (super()가 숨겨져있음) 메소드 오버라이딩을 통하여 자식은 부모가 가지고 있는 메서드를 다르게 사용할 수 있고, final 키워드를 통해서 상속이 불가능한 클래스나 오버라이딩이 불가능한 메서드를 만들 수 있다. protected 접근 제한자는 default와 public의 중간이라고 할 수 있는데, 같은 패키지이거나 자식 객체만 사용이 가능하다. (상속에서 사용이 많이 될 것으로 생각되었다.) 타입 변환의 경우 부모타입 변수 = 자식타입객체; 로 이루어진다. 이 개념은 계속 보아도.. 2023. 3. 12.
[Java] SDK, JVM, JDK, JRE, JIT ... ? 자바를 공부하다보면 만나는 여러가지 용어들. 한번 정리해봤다. JDK, JRE, JVM은 자바 플랫폼을 구성하고 있는 3대 요소이다. 일단 세가지부터 알아보기로 한다. 일단 제일 큰 단위인 JDK부터, JDK Java Development Kit JDK를 얘기하기 전에 SDK부터 알아보자, SDK는 Software Development Kit의 약자로 우리가 흔히 쓰는 API, IDE, 각종 문서, 라이브러리, 코드샘플 및 기타 유틸리티가 포함되어 있다. JDK는 JAVA Development Kit의 약자이고 Java 환경에서 돌아가는 프로그램을 개발하는데 필요한 tool들을 모아놓은 package라고 보면 될 것 같다. 예를 들어, JRE, Java 바이트코드 컴파일러, JVM 등이 모두 포함된다. .. 2023. 2. 19.
[Python] 파이썬 int의 최대값은? 목적 : 파이썬에 대한 기본적인 지식 함양 기술인터뷰를 보다가 python의 int의 범위는 어느정도 될까요? 라는 질문을 받았다. 평소 생각하지 못했던 내용이라 C언어의 4bytes로 유추해 '2의 32승의 데이터를 표현할 수 있을 것이라고 생각합니다.'로 말씀을 드렸다. 면접을 보고 다시 한번 찾아보니 파이썬은 int의 limit값이 따로 없다. 공식문서에 명확하게 나와 있다. Integers have unlimited precision. (official) In Python, value of an integer is not restricted by the number of bits and can expand to the limit of the available memory (geeksforgeeks.. 2023. 2. 14.