JAVA 기본 19

코딩테스트에 필요한 자바 10가지

1. int VS longint의 표현 범위 -2147483648 ~ 2147483647long의 표현 범위 -9223372036854775808 ~ 9223372036854775807표현범위가 넓은 long을 사용하는게 좋음 2. Scanner VS BufferedReader데이터를 받는시간 (제한시간)사용방법 : input data : 1,2,3Scanner sc = new Scanner(System.in);int a = sc.nextInt();int b = sc.nextInt();int c = sc.nextInt();BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String[] result = br.readLine(..

JAVA 기본 2025.03.05

문자열의 특징

메모리는 크게 4가지로 나뉜다. 스택 힙 데이터 ROM코드 char c = 49; // '1' bool b = 1; // 'true' 왜 49를 넣었는데 1이 나오는가? 메모리 상으로 49를 char로 해석하면 아스키코드에 의하여 문자'1'이 나오기 때문이다. 이렇게 문자는 바이트코드의 해석에 따라 정해진다. 그런 문자들이 나열되어 있는게 문자열이다. 예를 들어 문자열 "459"는 '4' = 52 '5' = 53 '9' = 57 이다. 그래서 바이트 코드를 아스키코드로 해석하면 52,53,57이다. char은 1바이트를 찾아히고 문자로는 127개가 정해져있다. 그리고 문자열 마지막에는 항상 null로 끝났음을 알려준다. null과 공백(space)는 다르다. 참고 https://skmagic.tistor..

JAVA 기본 2021.10.29

Servlet의 기본구성

구동 특징 최초 요청 : Servlet 컴파일 > 메모리 로드 > 쓰레드 가동 >응답 최초 요청 : JSP > Servlet 번역 > Servlet 컴파일 > 메모리 로드 > 쓰레드 가동 >응답 이후 요청 : 쓰레드 가동 > 응답 특징 : 최초 요청은 느리지만 이후 응답은 빠르다, 기존 언어 : CGI : 요청 > 작업프로세스 할당(요청몰리면 과부화) PHP, ASP : 요청 > 쓰레드 할당 > 응답 데이터 주고 받기 요청 메소드 GET : 자료를 전송을 요청함(보임) HEAD : GET과 같은 요청이지만, 자료정보만 받음 POST : 서버가 처리할 수 있는 자료를 보냄(숨김) DELETE TRACE OPTION CONNECT PATCH +http에 헤더와 바디가 있다. 헤더는 빠르지만(보통 헤더를 먼저..

JAVA 기본 2021.05.02

15주차 과제: 람다식 #15

목표 자바의 람다식에 대해 학습하세요. 학습할 것 (필수) 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스 람다식 함수적 프로그래밍 기법 이점 1. 대용량 데이터 처리시에 유리 데이터 포장 객체를 생성후 처리하는것보다 데이터를 바로 처리하는게 속도에 유리 멀티 코어 cpu에서 데이터를 병렬 처리하고 취합할 때 객체보다는 함수가 유리 2. 이벤트 지향 프로그래밍(이벤트가 발생하면 핸들러 함수 실행)에 적함 반복적인 이벤트 처리는 핸들러 객체보다는 핸들러 함수가 적합 함수 람다식 int max(int a. int b){ return a>b?a:b; } (a, b) -> a > b ? a : b 람다식 사용법 반환타입과 이름을 지우고 "->"울 불록{}앞에 추가한다. +..

JAVA 기본 2021.03.05

14주차 과제: 제네릭 #14

목표 자바의 제네릭에 대해 학습하세요. 학습할 것 (필수) 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 포괄적인, 일반적인 클래스 내부에서 사용할 데이터타입을 나중에 생성하는것 class Person{ public T info; } Person p1 = new Person(); class선언할때 데이터 타입을 임의로T로 만들고 실제로 인스턴스화 할때 String을 넣어서 사용 왜 사용하는가? 타입이 안전하지 않을때 오류가 남 == 클래스에 데이터 타입이 일치하지 않아도 컴파일 되는 경우가 있다 그럴 경우 오류가 발생하지만 컴파일 타입에서 확인이 불가함 그래서 제네릭을 사용하여 나중에 데이터 타입을 정의 하는것 복수의 제네릭 여러개의 데이터 타입을 정..

JAVA 기본 2021.03.01

13주차 과제: I/O #13

목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 입출력이란? 컴퓨터 내부 또는 외부 장치와 데이터를 주고 받는것을 말한다. 스트림(stream) 어느 한쪽에서 다른 쪽으로 데이터를 전달할때, 두 대상을 연결하고 데이터를 전송할 수 있는 것 데이터를 운방하는데 사용하는 연결 통로 +스트림은 연속적인 데이터의 흐름을 물에 비유해서 붙여짐 스트림은 단방향 통신만 가능 즉, 하나의 스트림으로 입력과 출력을 동시에 불가능 보..

JAVA 기본 2021.02.28

12주차 과제: 애노테이션 #12

목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 어노테이션 (annotation) 사전적 의미로는 주석을 의미하며 프로그램에 대한 데이터를 제공하는 메타 데이터의 한 형태이다. @ 기호를 사용하는 문법 요소 메타 데이터 데이터에 대한 데이터 즉,다른 데이터를 설명해주는 데이터이다. 예)사진의 촬영시간,장소 등등 어노테이션이 등장하면서 데이터 유효성 검사 등 직접 클래스에 명시해 줄 수 있게되어 수정이 필요할때 쉽게 파악할 수 있게 되었고 어토테이션의 재사용도 가능해졌다. 사용방법 사용할 클래스, 메서드, 매개변수등 앞에 붙여주기만 하면 된다. @Retention 어노테이션이 유지되는 기간을 ..

JAVA 기본 2021.02.28

11주차 과제: Enum #11

목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 상수 변하지 않는 값 enum(열거형) 정의하는 방법 1.사과 2.바나나 3.포토 를 상수로 정의 하는 방법이다. enum Fruit{ APPLE,PEACH,BANANA } // == 열거형이 없다면 class Fruit{ public static final Fruit APPLE = new Fruit(); public static final Fruit PEACH= new Fruit(); public static final Fruit BANANA= new Fruit(); } //이렇게 해야한다. 사용 switch(typ..

JAVA 기본 2021.02.28

10주차 과제: 멀티쓰레드 프로그래밍 #10

목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 기본 개념 1.프로세스 단순히 실행중인 프로그램을 의미 프로그램을 실행할려면 원도우로 부터 메모리를 할당받아 프로세스가 실행함 2.쓰레드 프로세스라는 공간에서 실제로 실행하는 일꾼 하나면 싱글쓰레드 2개이상이면 멀티 쓰레드 멀티쓰레딩에서 주의 할점 여러 쓰레드가 같은 환경에서 자원을 공유함으로써 교착상태와 동기화 같은 문제가 발생가능 추후에 알아봄 자바에서 쓰레드를 생성하는 방법 1. 쓰레드 클래스를 상속 받는다. 클래스를 쓰레드의 자식클래스로 선언하여 인스턴스 하는방법 2.Runnable 인터페이스를 구현하는 방법 클래..

JAVA 기본 2021.02.28