자바 8

[섹션2] 컬렉션 프레임워크 - ArrayList

배열과 인덱스배열의 특징배열에서 자료를 찾을 때 인덱스(index)를 사용하면 매우 빠르게 자료를 찾을 수 있다.인덱스를 통한 입력, 변경, 조회의 경우 한 번의 계산으로 자료 위치를 찾을 수 있다. 간단 정리 int는 4byte를 차지한다.배열의 시작 참조 + (자료의 크기 * 인덱스 위치)arr[1]: x100 + (4byte * 0)arr[2]: x100 + (4byte * 1) 배열의 검색배열에 들어 있는 데이터를 검색할 때는 하나씩 비교를 해야한다.배열 안에 있는 데이터를 하나씩 확인해야 하기 때문에 배열의 크기가 클 수록 시간이 오래걸린다.배열의 순차 검색은 배열에 들어있는 데이터의 크기 만큼 연산이 필요하다. 빅오(O) 표기법알고리즘의 정확한 실행 시간이 아니라, 데이터 양의 증가에 따른 성..

[섹션1] 제네릭 2편

1. 타입 매개변수 제한 클래스에 명확한 타입을 정해 놓고 작성한다.코드 재사용 X코드 안정성 O다형성 시도코드 재사용성 O: 다형성 처리를 통해 클래스를 하나로 처리할 수 있다.코드 안전성 X: 원하는 타입을 반환하기 위해서는 다운 캐스팅을 해야한다.제네릭 도입과 실패제네릭 타입을 선언하면 자바 컴파일러 입장에서는 T에 어떤 타입이 들어오는지 알 수 없다.=> T는 어떤 타입이든 받을 수 있는 모든 객체의 최종 부모인 Object 타입으로 가정한다.제네릭에서 타입 매개변수를 사용하면 어떤 타입이든 들어올 수 있다.=> 매개변수 타입을 제한 해야한다.타입 매개변수 제한public class AnimalHospitalT extends Animal>코드 재사용성 O코드 안전성 O: 타입 매개변수 상한(ext..

[스프링 MVC 1편] 구조 이해

DispatcherServlet 구조 살펴보기스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다.프론트 컨트롤러가 바로 디스패처 서블릿(DispatcherServlet)이다.디스패처 서블릿이 스프링 MVC의 핵심 DispacherServlet 서블릿 등록DispacherServlet도 부모 클래스에서 HttpServlet 을 상속 받아서 사용하고, 서블릿으로 동작한다.DispacherServlet → FramewokrServlet → HttpServletBean → HttpServlet스프링 부트는 DispacherServlet 을 서블릿으로 동작하면서 모든 경로(urlPatterns="/")에 대해서 매핑한다.참고: 더 자세한 경로가 우선순위가 높다. 요청 흐름서블릿이 호출되면 HttpServlet..

[KOSTA] 자바 코드의 성능 향상 - 2일차

💪 본 내용은 한국 소프트협회에서 직장인 대상 교육 및 다른 블로그를 읽고 정리한 내용입니다. 준비 사항 ※ 실습 코드는 제외하고 작성했습니다. Eclipse 2022-09 + 설치 MySQL 8.0 설치 JDK 11 Visual Studio Code - Editor Jmeter 수업 내용 목차 JVM Stack & Heap 자바 기본 Class Loader JVM JIT Compiler --- 이하 2일차 --- GC 성능 향상 성능 최적화 GC & Heap 성능 튜닝 성능 테스트 작성 중 입니다...!! GC 성능 향상 성능 최적화 GC & Heap 가비지 콜렉터의 대상이 되는 부분은 힙 영역이다. JVM이 운영하며 일반적으로 힙 메모리에 free한 메모리가 없으면 작동한다. 수행 JVM의 목표는 가..

[KOSTA] 자바 코드의 성능 향상 - 1일차

💪 본 내용은 한국 소프트협회에서 직장인 대상 교육 및 다른 블로그를 읽고 정리한 내용입니다. 준비 사항 ※ 실습 코드는 제외하고 작성했습니다. Eclipse 2022-09 + 설치 MySQL 8.0 설치 JDK 11 Visual Studio Code - Editor Jmeter 수업 내용 목차 JVM Stack & Heap 자바 기본 Class Loader JVM JIT Compiler --- 이하 2일차 --- GC 성능 향상 성능 최적화 GC & Heap 성능 튜닝 성능 테스트 들어가기 전 Editor vs IDE(Integrated Development Environment) 두 경계가 무너지고 있는 느낌이다 선생님 왈, VS code는 IDE라고 보는게 맞는 것 같다. 컴파일러, 디버그 등등 모..

[객체지향] 생성자 with Java

본 내용은 인프런의 즐거운 자바 를 보고 정리했습니다. 생성자 생성자가 있으면 기본 생성자(매개변수가 없는 생성자)는 생성 되지 않는다!! 인스턴스를 사용할 때 생성자를 사용한다. ex) Car taxi = new Car(); 즉, 우리가 특정 클래스를 new 생성자를 사용한다. 어떤 값을 가지고 인스턴스가 만들어지게 하고 싶다면 생성자를 사용한다. 클래스 작성시 생서자를 만들지 않았다면 자동으로 기본 생성자를 생성한다. 예시 코드 코드로 쉽게 이해 해보자! 생성자를 private 접근 제한자로 설정하면 해당 클래스는 인스턴스를 생성할 수 없다.! 예제 01. package org.example; public class Car { private String name; // 생성자 // return typ..

[자바 문법] 어노테이션(Annotation)

똑똑한 chat GPT와 다른 사람의 블로그 등을 읽고 이해한대로 정리한 내용입니다. 어노테이션(Annotation)? 자바 코드에 메타데이터(metadata)를 추가하기 위한 것으로, 컴파일러, 런타임 시스템, 개발 도구 등에 의해 사용됩니다. 어노테이션은 주석(comment)과 유사하지만, 주석은 컴파일되지 않으며 단순히 코드의 설명을 제공하는 역할을 하지만, 어노테이션은 컴파일되어 클래스 파일에 저장되며 실행 시에 사용된다. 메타 데이터(Meta Data)? 메타 데이터는 해당 데이터의 특성, 속성, 구조, 관계 등을 기술하는 데이터입니다. 즉, 메타 데이터는 데이터를 설명하는 데이터라고 할 수 있습니다. 예) 사진 파일의 메타 데이터에는 파일 크기, 파일 형식, 촬영 일자, 위치 정보 등이 포함됩..

[Java] 배열(Array)

★ 본 내용은 "코드잇의 자바 객체지향 프로그래밍" 및 " 김영한의 자바 입문" 을 듣고 정리한 내용입니다. ★ 배열이란?같은 타입의 여러 변수를 하나의 묶음으로 다루는 것참조변수(score)를 통해서 배열을 관리연속적으로 붙어있다.크기를 변경할 수 없는 정적 배열이다.int[] score = {10, 20, 30, 40, 50}배열 선언 및 생성배열을 선언하고 생성을 해야만 메모리 공간(저장)이 할당된다.int[] score; // 1. 배열 score를 선언(참조변수)score = new int[5]; // 2. 배열의 생성(int 저장공간)int[] score = new int[5]; // 3. 배열 선언과 생성을 동시 배열 초기화배열의 각 요소에 처음으로 값을 저장하는 것⭐ 배열을 선언과 생성만 ..