숑숑이의 개발일기
[Java] #6 클래스와 객체
카테고리 없음 2023. 5. 22. 23:24

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 클래스의 개념 객체는 사용할 수 있는 실체를 의미하며, 클래스는 객체를 만들기 위한 설계도와 같다. 따라서 1개의 정의된 클래스를 이용해 여러 개의 객체를 만들 수 있다. 클래스는 다양한 자료형의 데이터를 묶어 관리할 수 있을 뿐 아니라 데이터를 처리하는 다양한 기능까지 함께 관리하는 문법요소다. 자바에서 제공하는 객체지향 문법 요소는 크게 클래스와 인터페이스가 있고, 클래스는 다시 일반 클래스와 추상 클래스로 나뉜다 클래스 구조 클래스 정의 방법은 아래의 코드와 같다. 클래스는 class 키워드와 함께 클래스명을 표기한다. 클래스명은 대문자로 시작하는 것이 관례다.(개발자들 간의 확고한 약속이다.) package ...;// ..

article thumbnail
[Java] #5.2 참조자료형 - 문자열
Backend/JAVA 2023. 5. 21. 13:44

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 참조 자료형의 가장 대표적인 형태는 클래스다. 이번에는 문자열을 저장하는 String 클래스를 알아본다 문자열의 표현과 객체 생성 String 클래스의 객체를 생성하는 데에는 크게 2가지 방법이 존재한다. // 1 String 참조 변수명 = new String("문자열"); String str = new String("안녕"); // 2 String 참조 변수명 = "문자열"; String str = "안녕"; String 클래스의 특징 1) 객체 안의 값을 변경시 새로운 객체를 생성한다 String str1 = new String("안녕"); String str2 = str1; str1 = "안냥하세요"; System.out..

[Java] #5.1 참조 자료형 - 배열
Backend/JAVA 2023. 5. 16. 23:40

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 자바에서는 8개의 기본 자료형 이외의 모든 자료형은 잠조 자료형이다. 대표적인 참조 자료형에는 배열, 클래스, 인터페이스 등이 있다. 참조 자료형은 개발자의 필요에 의해 얼마든지 정의할 수 있으므로 무한개라 할 수 있다. 배열이란? 배열은 동일한 자료형을 묶어 저장하는 참조 자료형이다. 생성할때 크기를 지정해야 한다. 한 번 크기를 지정하면 크기를 변경할 수 없다. 배열 생성 배열 선언하기 배열을 선언할 때는 2가지 방법으로 선언할 수 있다. 그러나 다른 여러 자료형의 표현과 일관성을 유지하기 위해 자료형 뒤에 표기하는 것을 권장한다. // 1번 방법 (권장) 자료형[] 변수명 int[] a;// int 자료형만 저장가능 dou..

[Java] #4 제어문과 제어 키워드
Backend/JAVA 2023. 5. 15. 23:24

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 제어문이란? 프로그램의 실행 순서를 제어하는 것. 자바에는 2개의 선택 제어문(if, switch)와 3개의 반복 제어문(for, while, do-while)으로 구성된 5개의 제어문과 2개의 제어 키워드(break, continue)가 존재한다. 5개 제어문의 공통적인 특징은 모두 중괄호가 있다는것. 중괄호 내부 실행문이 1개일 경우에는 중괄호를 생략할 수 있다.(컴파일러가 자동으로 삽입해준다) if(3>5){ System.out.println("1"); } // 위의 코드를 아래와 같이 중괄호를 생략하여 사용할 수 있다 if(3>5)System.out.println("1"); if문 if문은 조건식에 따라 실행문의 실행 여..

[JAVA] #3 연산자
Backend/JAVA 2023. 5. 10. 23:06

본글은 'Do it 자바 완전 정복' 책을 통한 공부내용을 정리한 글입니다. 연산자의 종류 자바의 연산자는 연산 결과의 특징에 따라 3가지로 나눌 수 있다. 자료형 연산 기호 기능 결과 산술 연산자 +, -, *, /, % 사칙연산 및 나머지 연산 값 증감 연산자 ++, -- 값이 1씩 증가 및 감소 비트 연산자 &, |, ~, ^ 비트 AND, OR, NOT, XOR 시프트 연산자 >>, > 비트 단위의 이동 비교 연산자 , =, ==, != 값의 크기 비교 참 또는 거짓 논리 연산자 &&, ||, !, ^ 논리 AND, OR, NOT, XOR 대입 연산자 =, +=, -=, *=, /=, &=, |=, >>=, >= 산술 연산 결과의 대입 실행 삼항 연산자 (참 또는 거짓) ? X : Y 참일 때 X..

[JAVA] 변수와 자료형
Backend/JAVA 2023. 4. 29. 18:38

데이터를 저장하기 위해 생성하는 메모리 공간은 목적에 따라 크기와 특징이 다르다. 이를 자료형이라 한다. C, 자바와 같은 컴파일 언어는 변수를 사용하기 전 반드시 자료형을 선언해야 한다. 변수에 자료형이 선언되면 메모리에는 변숫값을 저장할 수 있는 공간이 만들어진다. 주의사항 자료형은 반드시 사용하기 전에 선언 반드시 한 번만 선언 => 자료형이 한 번 선언된 변수의 자료형은 바꿀 수 없음. 그렇다면 변수에 한 번 지정된 자료형을 바꿀 수 없는 이유는 뭘까? 바로 메모리에서 한 번 만들어진 공간이 사라질 수는 있어도 데이터를 저장하는 기능은 변경할 수 없기 때문. 변수의 선언과 값의 대입을 분리하는 경우 처음 변수값을 초기화해주지 않으면 컴파일 오류가 발생한다. 이름 짓기 규칙 변수와 상수의 이름을 지..

article thumbnail
[JAVA] 프로그래밍 언어와 자바
Backend/JAVA 2023. 4. 18. 21:58

컴파일러(compiler) 자바를 비롯한 고급 언어는 사람이 이해할 수 있는 문장으로 구성되어 있고 컴퓨터는 이 언어를 바로 이해하지 못한다. 고로 컴퓨터가 이해할 수 있는 언어로 변환하는 과정이 필요하며 이 과정을 수행하는 것이 컴파일러다. 모든 컴퓨터는 똑같은 기계어를 사용하지 않는다. 자신의 플랫폼에 따라 서로 다른 언어를 사용한다. - ex) 윈도우 컴퓨터와 맥 컴퓨터는 서로 다른 기계어를 사용한다. - 동일한 고급 언어로 작성된 프로그램이라 하더라도 다른 플랫폼상에서 동작하도록 하기 위해서는 다른 컴파일러를 사용해야한다. 자바의 특징 플랫폼 독립성 객체지향 언어 함수형 코딩 지원 분산 처리 지원 멀티 쓰레드 지원 등... 플랫폼 종속성 vs 플랫폼 독립성 플랫폼 종속성 : 하나의 실행 파일은 하..

[JS] 얕은 복사, 깊은 복사
Frontend/JavaScript 2023. 4. 16. 22:30

얕은 복사(Shallow copy) 원본 개체의 속성과 동일한 참조를 공유하는 복사 방법 '메모리 주소 값'을 복사한 것 얕은 복사를 사용할 경우 원본 데이터에 영향을 끼치므로 주의해야 한다. let arr = ["noodles", { list: ["eggs", "flour", "water"] }]; let copy = arr; console.log(copy) copy[1].list = ["rice flour", "water"]; console.log(arr[1].list); // Array [ "rice flour", "water" ] 스프레드 연산자 사용 const obj = { name: "otter", gender: "male" } const newObj = { ...obj } - 스프레드 연산자..

[JS] 구조분해할당 (destructuring assignment)
Frontend/JavaScript 2023. 4. 13. 23:02

구조분해할당은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게하는 Javascript 표현식이다. 복사한 이후에 분해해준다는 의미로, 해당 과정에서 분해 대상이 수정, 파괴 되는것은 아니다. 배열 구조분해할당 let arr = [75, 50, 60, 100]; let [one, two, three] = arr; console.log(one); // 75 console.log(two); // 50 console.log(three); // 60 - 배열을 한번 분해해 새로운 변수에 담아준다 - 할당 연산자의 좌측엔 객체 프로퍼티와 같이 할당할 수 있는(assignables) 것이라면 어떤 것이든 올 수 있다 객체 구조분해할당 const obj = { name : "syong", gende..

[JS] 동기와 비동기, 비동기처리, 콜백함수, Promise
Frontend/JavaScript 2023. 4. 12. 23:02

JavaScript는 한 번에 하나의 기능만 수행하는 싱글 스레드 기반의 언어다. 때문에 동기적으로 동작한다. (코드가 작성된 순서대로 작업을 처리한다) 동기(Synchronous) : 하나의 작업이 종료될 때까지 다음 동작을 기다리는 실행 방식 console.log(1) console.log(2) console.log(3) // 1,2,3 비동기(Asynchronous) : 하나의 작업이 진행됨과 동시에 또 다른 작업도 함께 진행되는 방식 비동기는 프로그램의 응답성을 높이는데 도움을 준다. 자바스크립트는 예외적으로 비동기처리방식도 존재한다 console.log(1) setTimeout(() => { console.log(2) }, 2000) console.log(3) // 1,3,2 실생활과 연관지어 ..