일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오블완
- effectivejava
- Sort
- java
- k8s
- 이펙티브 자바
- 자바
- 클린아키텍처
- 카카오 면접
- 알고리즘정렬
- Effective Java
- 스프링 핵심원리
- 이펙티브자바
- kubernetes
- 스프링핵심원리
- 알고리즘
- 티스토리챌린지
- Effective Java 3
- 이차전지관련주
- 카카오
- 자바스크립트
- 김영한
- 엘라스틱서치
- 스프링부트
- 예제로 배우는 스프링 입문
- 스프링
- ElasticSearch
- JavaScript
- Spring
- 코딩테스트
- Today
- Total
목록자바 (15)
Kim-Baek 개발자 이야기
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ abstract - 메소드와 class 에 붙는 제한자 (modifier) - 추상의 , 구현되지 않은 이라는 의미 ex) public abstract class A { } 이렇게 추상적인 클래스의 경우 하위클래스에서 재정의 (오버라이딩) 해야하는데 이는 강제가 아니다. -> 다른메소드를 만들 수도 있고, 안만들 수도 있고 자기 마음대로 하게된다. => 이것을 강제하는 것이 abstract 메소드이다 ※ Animal 의 경우 타입으로는 많이 쓰인다. 하지만 실제 new Animal 로 객체를 생성해서 쓸일은 많이 없다 ex) 동물원에서 개 , 고양이 객체를 생성하지 동물객체를 생성하지는 않는다. => 부모클..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ※원래 프로그램은 내부에서 연관을 갖고 동작했다.(절차지향적에서) 모듈화를 했다고 해서 그 연관이 사라지는 것이 아니다. 그것을 모듈과의 관계로 표현한다. ◎ 의존관계 (Dependency) ※Association(의존관계) ⊃ has a ⊃ Aggregation ⊃ composition ⊃ use a - 의존관계의 의미 : 하나의 객체가 일하기 위해 다른 객체에 의존(필요로 하는) 관계 ->메소드 메소드, 함수 : 제공하는 기능(println()) 메소드 내에서 사용하는 관계 -> local 변수로 사용 - has a(포함) 관계 : 하나의 객체가 다른 객체를 자신의 속성으로 가지고 있는 관계 -> Insta..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ Static 키워드(제한자) - instance 변수, 메소드, static block, inner class 에서 사용된다. - 의미 : Class 의 멤버 -> 객체와는 관계없다 (단 한개만 존재하게 된다) - Card 클래스에서 kind 나 number의 경우 각 카드마다 달라지는 값이다 그러나 weight, height 의 경우 모든 카드에 동일한 값이다! -> Class 에 종속시키자 (Static) ex) Class A{ static int var; -> new A( ) 를 했을 때, var과 go()는 객체안에 존재하지 않는다. static void go( ){ } } ※ 메모리 영역 - hea..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ※ class loading : 하드에 있는 자바파일을 cpu 가 빠르게 처리하기 위해 Main Memory 에 올리는 것(JVM이 처리) ※Heap 내부의 내용을 없애는 시점 : 더 이상 사용할 수 없을 때 ex) new A( ) -> 값을 사용할 수 없다. 지정되지 않음! : JVM 이 처리한다. ※ reference 타입은 메모리에 동일한 크기로 주소가 잡힌다 (4byte) primitive 타입은 각각 크기에 맞게 공간을 할당한다. ※ 메소드가 찾는 것은 기본적으로 Local 변수이다. 없으면 instance 변수도 확장해서 찾게 된다. this 를 컴파일러가 추가해서 인스턴스 변수를 찾게 된다. ※ M..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ 자바의 메모리 영역 ※ class loading : 하드에 있는 자바파일을 cpu 가 빠르게 처리하기 위해 Main Memory 에 올리는 것(JVM이 처리) 1. Heap (힙) 영역 - instance 가 저장되는 영역 - instance 변수 2. execution stack (실행스택) 영역 - 실행 중인 메소드의 지역변수들이 저장되는 영역 3. 메소드 (class) 영역 - class 변수(class 코드)들이 저장되는 영역 public class Worker { 25? true : false; Person per = new Person(); Person per2 = new Person(); per..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ this( [ 값, ... ] ) 의 사용 - 생성자에서 오버로딩된 다른 생성자 호출시에 사용한다 - 반드시 생성자 구문의 첫 명령으로만 올 수 있다. ex) this( ); , this( 10 ); , this( 10, "abc" ); -> 생성자에서 다른 생성자를 호출하고 싶을 때 사용! * A( ) { 다른 내용 -> 조건문이나 반복문의 사용도 허용이 안된다. 무조건 첫번째에 와야한다. this( 10 ) } * A ( int i , int j , String s ){ this.i = i; this.j = j; -> 이 두줄을 this( i, j ) : 코드의 편리를 위해. i, j 는 다른 생성자에서..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ 배열의 리턴 int go() { return new int{10, 20, 30}; -> 배열 넘길때 사용 } ◎ 리턴(return) - 호출한 곳 (caller 메소드) 로 돌아가라 구문 : return [ 값 ]; - 1개의 값 -> 메소드의 retun type이 void 인 경우 생략가능 하지만 다른 type 인경우 반드시 return 구문 실행이 보장되어야 한다. ◎ 메소드 and 생성자 오버로딩 (overloading) - 매개변수가 다르면 같은 메소드 이름을 여러거 메소드에 사용할 수 있다. -> 쓰는 사람이 편해진다. -> 개수나 타입 class A{ void a( ) { } int b ( int..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ 객체와 클래스 - 객체 (instance) -> 존재하는 것 (유, 무형) - 품사로는 명사 - 클래스 (class) - 너무 범위가 작거나 큰 것은 클래스로 유효하지 않다. ex) 고객은 이름, 나이, 주소를 갖는다. -> 값 1개 : 클래스로 하기에는 작다 * 하지만 이름이 성, 본관, 이름 등 분류되서 사용되는 경우에는 class 가 될 수도 있다. ※ 공통점을 뽑아내는 과정 -> 추상화 ◎ 클래스 다이어그램 - 세 칸의 표를 통해서 클래스의 선언을 다이어그램으로 나타낼 수 있다. 맨 위칸에는 클래스의 이름, 두 번째칸에는 클래스의 속성, 세 번째 칸에는 클래스의 동작을 넣는다 [ modifier ] ..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ IDE (Intergrated (통합), Development (개발), Environment(환경)) - javac.exe, java.exe 와 같은 개발에 필요한 여러 프로그램을 묶어준 것.프로그램의 개발 Tools 이다.( Eclips, Intelli J, NetBeans 가 대표적) -> Plug in 기능이 있어 tool을 개발해 기능추가가 가능 (확장성) ◎이클립스의 사용 - Perspecitive ( 개발 Tool 별 전체화면 ) -> 이클립스 안에는 자바, 디버깅, 형상관리 등 어러 프로그램이 내장되어 있다. 이때 각 각 개발하고자 하는 Tool 마다 화면이 다른데, 이 화면이 Perspect..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 ◎ 자바의 입출력(I/O) Data ------ 입력 ------> program ------- 출력 -------> 모니터 - 입력은 외부로부터 값을 받아오는 것 - 출력은 값을 모니터와 같은 곳에 출력하는 것 ex)System,out.print("안녕"); ◎ Scanner - Java 1.5 부터 추가된 기능으로 유저에게 입력기능을 제공한다. 사용하기 위해서는 class 의 밖에 맨처음 줄에 import java.util.*; 이 필요하다 - 사용법 Scanner 변수명(일반적으로 sc 를 많이 사용) = new Scanner(System.in) - 문자를 읽는 스캐너를 생성하는 코드 String str ..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다 시험 1. JRE의 의미(역할)와 구성 요소를 적으세요. Jave Runtime Environment 의 줄임말로 자바 실행 환경을 의미한다. 자바로 만든 프로그램을 실행하기 위한 환경을 의미한다. Java program 같은 경우는 o.s, h/w(platform)에서 실행되는 것이 아니라 JRE 위에서 실행된다. 왜? 자바가 interpreted 방식이기 때문이다. JRE 의 구성요소로는 첫 번째로 interpreter 역할을 하는 JVM (Java Virtual Machine) 있다. JVM 의 경우 자바 프로그램의 입장에서는 o.s 이자 h/w 역할을 모두 다 한다고 볼 수 있다. 두 번째로 API(A..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다. ◎화면에 값을 출력하는 방식 - System.out.println(출력할 값); -> 값 + enter 를 나타낸다 ( ln이 line next 를 의미) 값을 1개만 출력하기 때문에 원하는 형태를 위해서는 + 연산자를 통해 문자열을 계속 붙여야 한다. - System,out,print(출력할 값); 1개의 값을 출력하나 enter 가 들어가지 않는다. - System.out.printf("출력문자열 format"[, 값]); -> jdk 1.5 이상부터 지원하는 기능 f 가 format을 의미한다. ※ %문자 (지시자, 전환문자) -> %d : 정수 , %f : 실수, %s - 문자열(모든 type), %%..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다. ◎소스코드를 짤 때 편하게 해주는 툴 가장 기본적으로 사용이 가능한 것(메모자) -> Editplus -> Eclipse(IDE-통합개발환경) - Editplus 의 경우 한국 사람이 만든 툴이다 ◎Editplus 의 사용 설정' -Editplus 를 사용하기 위해서는 자바의 컴파일러(javac.exe)와 인터프리터(java.exe)를 등록을 하자 도구 -> 사용자 도구 -> 추가 -> 프로그램의 경로에서 메뉴 제목 : 프로그램의 이름을 지정하자 명령 : 실행을 시킬 파일 등록 인수 : 추가한 프로그램에게 전달시킬 파일의 경로를 지정 ※javac.exe의 경우 파일의 이름을 그대로 넘기기 때문에 파일 이름을 ..
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다. ◎컴파일 시 오류 cannot find symbol -> 오타가 있을때 나오는 오류이다 (대소문자 구별을 잘 확인하자) ※에러 노트를 만들자 어떤 상황에서 에러가 났는지, 어떻게 고쳤는지 확인을 통해 추후에 에러를 잘 고칠 수 있게 된다. ◎공백과 주석 공백과 주석은 코드의 가독성을 높인다, 컴파일 시에는 사라지는 부분이다. ◎중괄호의 사용 중괄호는 코드(명령문)를 묶는다. 열었으면 닫아야한다. 중괄호를 기준으로 Tab 을사용한다 -> 어떻게 연결되는지 확인이 편리할 수 있도록 하는 것이다. ◎세미콜론의 사용 ; (세미콜론)은 하나의 명령문(실행문)이 종료됨을 알려준다.(마침표 개념) 실제로 실행할 때는 공..
빈번하게 사용되는 함수적 인터페이스(Functional Interface)는 java.util.function 표준 API 패키지로 제공한다. java.util.function 패키지의 함수적 인터페이스는 크게 Consumer, Supplier, Function, Operator, Predicate로 구분된다. > 필요한 용도에 맞는 게 있다면, 직접 구현하지 말고 표준 함수형 인터페이스를 활용하라 java.util.function 패키지에는 총 43개의 인터페이스가 있지만, 6개만 알면 나머지는 유추 가능 1. UnaryOperator -> 인수가 1개 String::toLowerCase 2. BinaryOperator -> 인수가 2개 BigInteger::add 3. Predicate -> 인수 1..