Dev/Java
-
[Java 응용] 2. 컬렉션, Wrapper class, IteratorDev/Java 2023. 3. 20. 12:57
📘 응용 2장 : 컬렉션데이터 구조에 따른 대표적인 컬렉션 (자료구조)List : 순서 대로 쌓여있는 구조 (아이템의 중복 허용)Map : 키(Key), 값(Value)의 쌍으로 저장 (Key의 중복 불가)Set : 순서가 없는 집합 (중복 불가) 배열과 ArrayList 비교 💡크기를 정해두지 않고 요소를 추가할 때 마다 크기가 커진다. Generic💡제네릭을 사용하면 컴파일 시에 타입 체크가 이루어져 타입 안전성을 보장할 수 있습니다.제네릭이란?제네릭은 클래스나 메소드에서 사용할 데이터 타입을 미리 정하지 않고, 실제 사용되는 시점에 데이터 타입을 결정하는 방식이다.💡제네릭을 사용하면 코드의 재사용성을 높일 수 있으며, 타입 안정성을 보장할 수 있습니다.사용 방법제네릭을 사용하려면 클래스나 메소드의 ..
-
[Java] 7. 객체지향 프로그래밍, 8. 인스턴스와 클래스Dev/Java 2023. 3. 13. 17:28
📘 7장객체 지향 프로그래밍(OOP)이란?OOP는 객체를 중심으로 프로그램을 구현하는 방법론OOP를 사용하면 코드의 재사용성과 유지보수성이 높아진다. 객체는 데이터와 처리 기능을 하나의 단위로 묶어서 관리하기 때문에, 코드의 중복이 줄어들고 수정이 용이하다.객체 간 상호작용을 통해 복잡한 기능을 구현할 수 있으며, 코드의 가독성도 높아집니다. 객체지향 프로그래밍의 주요 특징캡슐화 (Encapsulation)객체의 내부 상태와 행동을 외부에서 보호하는 개념으로, 객체의 내부를 변경하지 않고도 외부에서 객체에 접근할 수 있도록 한다.상속 (Inheritance)부모 클래스의 특성을 자식 클래스가 물려받아 재사용할 수 있도록 해주는 개념다형성 (Polymorphism)하나의 메서드를 다양한 방식으로 호출할 수..
-
[Java 응용] 1. 문자열 조작Dev/Java 2023. 3. 12. 03:25
📘 1장 문자열 조작💡String 인스턴스는 불변 객체 (immutable)이다! 문자열 결합(1) ‘+’ 연산자 사용(2) StringBuilder 사용 💡append() 메서드로 결합한 결과를 내부 메모리(버퍼)에 담아 두고 toString()으로 결과를 얻는다. 메서드 체인 - append()💡append()처럼 자기 자신의 참조를 리턴하여 연속해서 메서드를 호출하는 기법 문자열 일부 떼어내기💡“HE” 문자열 분리💡“1”, “2”, “3” 문자열 치환 (대체)String s1 = "HELLO"; System.out.println(s1.replace("LL", "XX"));💡“HEXXO”💡String은 절대 변하지 않는다!! replace가 된 것이 리턴이 되는 것이다. 대소문자 변경String s1..
-
[Java 기초] 6. 복수 클래스를 사용한 개발Dev/Java 2023. 3. 12. 03:25
👀유용한 정보해당 변수 Rename (eclipse)변수 우클릭 - Refacto - RenameAlt + Shift + Rimport 정리ctrl+ shift+ o💡ctrl + shift + f와 함께 자주 눌러주자.double의 소수점 오차 보정 (부동 소수점 보정)부동 소수점의 가수부 15자리를 넘어서면 오버 플로우가 발생하게 되어 값의 오차가 발생하게 된다 (부동소수점 수의 표현 범위)10진수로는 유한 소수이지만, 2진수로 무한 소수인 경우 오차 발생💡double의 오차 epsilon 값을 이용하여 오차 보정 가능왜 Number.EPSILON은 2.220446049250313e-16일까?double 형 부동 소수점 가수부에서 0을 제외하고 가장 작은 숫자는 무엇일까?바로 2-52, 0.000000..
-
[Java 기초] 5. 메소드, 오버로딩Dev/Java 2023. 3. 12. 03:25
유용한 정보ChatGPT API 최근 풀리게 돼서 파생 활용 서비스 생기고 있다.chatGPT 이용 GitHub 요약 사이트GitHub Developer SummarizerSummarize a GitHub user using GPT 😎https://devmarizer.firebaseapp.com/AskUp : 카카오톡 chatGPT 연계 챗봇chatGPT는 사진 입력이 불가능하지만, 카카오톡을 통해 사진 업로드 시 OCR을 통해 사진 내부 글을 읽어 분석할 수 있다. 💡4장 피드백 Tip💡String도 참조형 변수 (reference type)이다.그렇기에 주소를 비교하는 ‘==’가 아닌 값을 비교하는 equals()를 사용한다.String 배열 선언 시 초기 값은 null이다. (primitive ty..
-
[Java 기초] 4. 배열Dev/Java 2023. 3. 12. 03:24
💡3장 피드백 Tip👀 String 덧셈 연산은 지양하는 것이 좋다.String result = “”; for (int i = 0; i < 3; i++) { result = result + (i + ","); // "0," // "0, 1," // "0, 1, 2," } System.out.println(result);💡String에 더하기 연산을 할 경우, 각각 더해진 만큼의 불필요한 오버헤드가 발생한다.String은 final로 구현되어있음.최종 결과만 result에 대입 된다. 위 코드의 결과는 정상적으로 출력 되지만, 더해진 모든 경우에 대해 서로 다른 Stirng 객체가 메모리 상에 각각 생성되어 overhead가 발생한다. 따라서, 일반 String 객체에 값을 더하는 방법이 아닌, Strin..
-
[Java 기초] 3. 조건문, 반복문Dev/Java 2023. 3. 12. 03:09
📘 3장 조건문과 반복문 분기 조건문 조건문은 프로그램에서 특정한 조건을 만족하는 경우에만 실행되도록 하는 제어문입니다. 대표적인 예시로는 if문과 switch문이 있습니다. if 명령어를 사용하여 “분기” if - else 문 내에 맑은 지에 대한 분기 조건 기술 반복 반복문 반복문은 특정한 작업을 반복적으로 수행하는 제어문입니다. 대표적인 예시로는 for문, while문, do-while문이 있습니다. 블록 블록이란, 복수의 문장을 하나로 묶는 역할을 하기 위한 것이다. 블록 작성 방법 내용 1행만 있을 경우 중괄호 생략 가능 블록 내에 선언한 변수의 라이프 사이클은 그 블록이 종료와 동시에 소멸된다. 💡 중괄호 생략은 가시성을 위해 되도록 지양한다. 관계연산자 문자열 비교 == 비교 : 각 주소 값..
-
[Java 기초] 1. Java 입문 기초 (환경 설정), 2. 식과 연산자Dev/Java 2023. 3. 11. 21:12
0. Java 개요 및 환경설정 이클립스 (Eclipse) 설정 초기 설정 AdoptOpenJdk 설치 (https://adoptium.net/) 환경변수 자동 설정 Formatter 변경 https://github.com/google/styleguide/blob/gh-pages/eclipse-java-google-style.xml Tab 키 누르면 스페이스 4가 되도록 변경 Google fomater가 탭 2칸이므로 4칸 되도록 변경해야 됨 Text Size 변경 tree 폰트 변경 encoding UTF-8로 변경 1초마다 자동 저장 설정 유용한 단축키 ctrl + shift + f : formater 적용 → 과제 제출 전에 한 번씩 눌러주기 ctrl + space : 연관 명령어 마법사 ctrl ..