본문 바로가기

java22

[자바의 정석] 6. 예외처리 1. 프로그램 오류 1. 에러 : 코드에 의해서 수습될 수 없는 심각한 오류 - 컴파일 에러(컴파일 시) - 런타임 에러(실행 시) - 논리적 에러(의도와 다르게 동작) 2. 예외 : 코드에 의해서 수습될 수 있는 다소 미약한 오류 2. 예외 클래스의 계층구조 Object > Throwable > Exception > RuntimeException, IOException, ... Object > Throwable > Error > OutOfMemoryError, ... Exception > IOException, ClassNotFoundException, ... Exception > RuntimeException > ArithmeticException, ClassCastException, NullPoin.. 2023. 11. 21.
[자바의 정석] 5. Java 객체지향 프로그래밍 1. 호출 스택(call stack) : 메서드의 작업에 필요한 메모리 공간을 제공 2. 메서드 오버로딩(method overloading) : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 * 조건 - 메서드 이름 동일 - 매개변수의 개수와 타입은 달라야 함 - 반환 타입은 부관 3. 생성자(constructor) : 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드' 1. 조건 - 생성자 이름 = 클래스 이름 - 리턴 값 없음 2. 다른 생성자 호출할 때 this()나 this(매개변수) 사용 4. this : 인스턴스 자신을 가리키는 참조변수 (주소가 저장) 5. 멤버변수의 초기화 * 클래스 변수(cv) -> 인스턴스 변수(iv) 1. 자동 초기화 2. 명시적 초기화(explici.. 2023. 11. 21.
[자바의 정석] 4. 배열 1. 배열의 출력 (char 배열일 때) char[] chArr = {'a', 'b', 'c', 'd'}; System.out.println( chArr ); //abcd 2. 배열의 최댓값과 최솟값 for(int i=1; i max) { max = score[i]; } else if(score[i] < min) { min = score[i]; } } 3. 배열 섞기 (shuffle) 1. 설명 0~9까지 숫자가 차례대로 있는 배열 numArr. 차례대로 초기화하여 출력하고, 섞고 출력. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [5, 8, 2, 7, 1, 6, 4, 9, 3, 0] 2. 방법 1) n : Math.random()으로 0~9 중 한 값을 임의로 획득 2) 배열 0번째와 n .. 2023. 11. 21.
[자바의 정석] 3. 타입 변환, 이름 붙은 반복문 1. 타입 간 변환방법 1. 숫자를 문자로 : 숫자에 0 더하기 (char)(3+'0') -> '3' 2. 문자를 숫자로 : 문자에서 '0' 빼기 '3' - '0' -> 3 3. 숫자를 문자열로 : 숫자에 빈 문자열 더하기 3 + "" -> "3" 4. 문자열을 숫자로 : Integer.parseInt(), Double.parseDouble() Integer.parseInt("3") -> 3 Integer.valueOf("3") -> 3 Double.parseDouble("3.14") -> 3.14 5. 문자열을 문자로 : charAt(0) "3".charAt(0) -> '3' 6. 문자를 문자열로 : 빈 문자열 더하기 '3' + "" -> "3" 2. 메서드 1. equalsIgnoreCase() : .. 2023. 11. 21.
[자바의 정석] 2. 이클립스 단축키, 워크스페이스 초기화 1. Java API 문서 https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com 2. 이클립스의 뷰, 퍼스펙티브, 워크스페이스 초기 설정 : 메뉴 window > Perspective > Reset Perspective 새로운 워크스페이스 지정 : 메뉴 file > switch workspace > other... 3. 이클립스 단축키 저장 : ctrl + S 실행 : ctrl + f11 단축키 목록 보기 : ctrl + shift + L 한 줄 삭제 : ctrl + D 단어 간 커서 이동 : ctrl + 좌우 화살표 검색 : ctrl + H 멀티 컬럼 편집 : ctrl + A, shift + 상하 화살표 행 이동(여러.. 2023. 11. 20.
[자바의 정석] 1. java.lang 패키지와 유용한 클래스 : 자바 프로그래밍에서 가장 기본이 되는 클래스를 포함 1. Object 클래스 - 11개의 메서드로 구성 1. public boolean equals(Object obj) : 같은 객체인지 - 오버라이딩 : 주소값이 아닌 멤버변수의 id를 비교하도록. 2. public int hashCode() : 찾고자 하는 값을 입력하면, 값이 저장된 위치를 알려줌 - 해시함수를 구현한 것. 데이터 저장 및 검색에 유리 3. public String toString() : 문자열로 제공 2. String 클래스 : 문자열을 위한 클래스 1. 변경 불가능한(immutable) 클래스 : 덧셈 연산자를 사용해서 문자열을 결합할 때마다 새로운 문자열을 가진 String 인스턴스가 생성됨 -> StringBuffer 클래.. 2023. 11. 18.
[23-2] Java 입문 13. 연산자 * Java 입문 목차 1. 연산자 : 연산에 사용되는 표시나 기호 ex) 사칙연산 + - * / * 우선순위에 괄호 사용 - 가독성 높아짐 vs. 피연산자 : 사용되는 변수 - 단항연산자 : 피연산자가 1개 - 이항연산자 : 피연산자가 2개 - 삼항연산자 : 피연산자가 3개 2. 단항 연산자 (+, -) - 더하기, 빼기 연산 - 상태 유지, 상태를 의미 : 음수나 양수 1. 증감 연산자 (++, --) : 값이 1씩 더하거나 빼지는 연산자 i++는 i = i + 1 i--는 i = i - 1 * 위치 - 변수 뒤에 붙으면 i++ (연산 마치고 증가) - 변수 앞에 붙으면 ++i (증가하고 연산) * 연산자 위치에 관계없이 속도 퍼포먼스는 동일 2. 논리 부정 연산자 (!) : 참, 거짓을 반대로 바꿔.. 2023. 11. 10.
[23-2] Java 입문 12. 형 변환 (캐스팅) * Java 입문 목차 1. 형 변환 byte(1) < short(2) < int (4) < long(8) < float(4) < double(8) - float(실수)는 long(정수)보다 바이트 수는 작지만, 더 큰 수를 표현 * 실수하면 이클립스에서 자동으로 캐스팅해줌 1. 자동 타입 변환 - 작은 크기에서 큰 크기로 변환 2. 강제 타입 변환 (캐스팅) - 큰 크기에서 작은 크기로 변환 2023. 11. 10.
[23-2] Java 입문 11. 데이터 타입 (자료형) * Java 입문 목차 1. 데이터 타입 1. 논리형 - boolean: 논리연산자 (참, 거짓) 2. 문자 - char : 유니코드, 한글 완성형 (문자), 2바이트, 16비트 3. 정수형 - byte : 기본 최소 저장 단위, 1바이트, 8비트 - int : 가장 많이 사용 (정수), 4바이트, 32비트 - long : 정수값을 벗어나면 어미에 대소문자 L (큰 정수), 8바이트, 64비트 4. 실수형 - float : 더블형과 구분을 위하여 어미에 대소문자 F, 4바이트, 32비트 - double : 아주 큰 실수, 8바이트, 64비트 * 문자형 1. char : 문자 1개, 2byte - Java에서 문자는 유니코드 사용 ex) A, 가 1. 디지털화 : 아날로그를 디지털로 바꾸는 것 - 0과 1.. 2023. 11. 10.
[23-2] Java 입문 10. 이스케이프 문자 * Java 입문 목차 1. 이스케이프 문자 (탈출 문자, escape char) : 역슬래시가 붙는 문자 리터럴 - 특수 용도로 사용 예약문자 내용 \t 탭 \b 백스페이스 \n 줄 바꿈 (개행), UNIX, 윈도우 \r 줄 바꿈 (개행), Mac, 윈도우 \f 폼 피드 \' 따옴표 \" 쌍따옴표 \\ 백슬래시 - 캐리지 리턴(carriage return) : 줄 바꿈 - 폼 피드 : 표시 위치를 다음 페이지 첫 행으로 이동 2023. 11. 10.
[23-2] Java 입문 9. 변수 * Java 입문 목차 1. 변수 (Variable) : 하나의 값을 저장하는 메모리 공간 - 변화하는 수 - 메모리 공간 (밥그릇) - 덮어쓰기 가능 (오버라이드) * 상수 (Constant) : 수식에서 변하지 않는 값 ex) 원주율 * 리터럴 (literal) : 소스 코드 내에서 고정된 값 - 데이터 값 - 직접 입력된 값 ex) 20, 10 2. 변수 작성 규칙 1. 변수 첫 글자는 숫자 X 2. 영어 대소문자 구별 3. 첫 문자는 소문자. 그다음은 첫 문자를 대문자 (maxNum) 4. 자바 예약어 사용금지 (ex: void, new, private, boolean 등) 2023. 11. 10.
[23-2] Java 입문 8. 코드 작성 규칙 * Java 입문 목차 1. 코드 작성 규칙 (Coding Convention) 1. 이름 규칙 (Naming Rules) 1. 파스칼 케이스 : 첫 글자는 대문자, 이어지는 단어의 첫 글자도 대문자 ex) PascalCase - 클래스, Exception 2. 카멜 케이스 : 첫 글자는 소문자, 이어지는 단어의 첫 글자는 대문자 ex) camelCase - Java, JavaScript : 변수, 함수, 메소드 3. 스네이크 케이스 : 모든 단어를 소문자, 언더바로 연결 ex) snake_case - Python : 변수, 함수, 메소드 4. 케밥 케이스 : 모든 단어를 소문자, 단어를 대시로 연결 ex) kebab-case - 파일명, 폴더명 5. 어퍼 케이스 : 모든 단어를 대문자로 표시, 언더바로.. 2023. 11. 10.
[23-2] Java 입문 7. 패키지와 인자 분석 * Java 입문 목차 * 중괄호 더블클릭 : 영역 지정 - 패키지 . : 하위 폴더 tip) 더블 클릭 1. 영역 지정 (단어) 2. 중괄호 더블클릭 : 영역 지정 (괄호 안) 1. 패키지 (Package) : 프로그램 혹은 기능의 경로 (꾸러미, 묶음) - 뜻 : 꾸러미, 묶음 - 직업이나 성격 단위로 묶어두기 1. 이유 - 질서를 유지하여 빠르게 찾아서 수정 가능하게 하는 것 2. 이름 정하는 법 1) com.회사명.프로그램명 2) com.이니셜.프로그램명 * 기타 개념 1) 클래스 (Class) : Java의 기본 계층 단위 - 필드, 메소드, 생성자 - 카멜 표기법 : FirstMainAnalysis (Java, Java Script) cf) 스네이크 표기법 : first_main_analysi.. 2023. 11. 10.
[23-2] Java 입문 6. 주석 * Java 입문 목차 1. 주석 (comment) - 한 줄 주석 : // - 여러 줄 주석 : /* 내용 */ - 단축키 : 드래그하고 ctrl + / 1) 해당 코드에 대한 설명 - 다른 사람이 읽고 이어서 작업할 수 있음 2) 임시로 컴파일러가 읽지 못하게 하는 기능 * 사용 tip - 불필요한 주석은 과감히 없애기 - 현업에서는 형상관리 시스템인 git, svn 사용 - 꼭 필요한 부분은 한글이나 영어로 적어두기 - 없는 것보단 있는 게 훨씬 나음 * Annotation (어노테이션) - 주석이라는 뜻 (실제 주석과는 다름) - 인터페이스를 기반으로 한 문법 2023. 11. 10.
[23-2] Java 입문 5. 개발환경 설정 (이클립스) * Java 입문 목차 * 이클립스 저장 및 컴파일 : Ctrl + S * 이클립스 실행 : Ctrl + F11 * TO-BE 분석 : 미래에 개선될 업무 프로세스에 대한 분석 * 단축키 사용 이유 - 손목 건강, 속도 1. 이클립스 (Eclipse) - 개발툴, 무료 cf) 인텔리 J - 개발툴, 부분 유료 - 구굴에서 기술 지원 1. 설치 Eclipse IDE for Enterprise Java Developers 다운. 최신 버전은 피하는 게 좋음 (안정성). * 링크 The Community for Open Innovation and Collaboration | The Eclipse Foundation The Eclipse Foundation provides our global community .. 2023. 11. 10.
[23-2] Java 입문 4. 개발환경 설정 (JDK 설치) * Java 입문 목차 * AS-IS 분석 : 현재의 업무 프로세스에 대한 분석 * tip. 개발환경 구성 - [보기] - [파일확장명], [숨김 파일] 체크 - 파일 이름 : 영어! 1. JDK (Java Development Kit) : 개발하려면 설치 필요 cf) JRE (Java Runtime Environment) : only 실행 1. JDK 설치 링크 오라클 홈페이지에서 다운 가능 (로그인 필요). 최신 버전보다 하나 전 버전 추천 (안정성). * 링크 https://developer.oracle.com/ https://developer.oracle.com/ Whether you an expert or new to the community, visit our community page to .. 2023. 11. 10.
[23-2] Java 입문 3. Java의 특징 * Java 입문 목차 1. 이식성 좋음 - 조건 : JRE 설치 - OS에 상관없이 동작 * JRE : Java Runtime Environment 2. 객체지향 언어 (OOP) - 여러 개의 객체로 나눠 세분화한 class로 작업 가능 - 대표 기능 : 캡슐화, 상속, 다형성 * OOP : Object Oriented Programming * 객체 : 나를 제외한 모든 것 3. 함수적 코딩 지원 - 이벤트 지향 프로그래밍(Android) - 가독성 향상을 위해 람다식 지원 (Java 8) * 이벤트 : 사용자의 동작이나 행위 4. 메모리의 자동 관리 - GC but 자원과 변수 관리 필요 (변수 초기화, 자원 반납) - 실행 시기를 알 수 없음 - App 퍼포먼스에 영향 : 화면 멈춤, 끊김 현상 -.. 2023. 11. 10.
[23-2] Java 입문 2. Java와 Kotlin * Java 입문 목차 1. Java (자바) 1. 시작 - 창시자 : 제임스 고슬링 - 1995년, Sun Microsystems 발표 - 현재는 오라클(Oracle; 신탁)에 인수합병 2. 이름 유래 - 동남아시아의 자바섬 (특산품이 모카 커피) 2. Kotlin (코틀린) 1. 시작 - 구글 vs. 오라클 : 안드로이드 관련 Java 저작권 소송 - 구글이 안드로이드 개발 관련으로 코틀린 지원 2. 이름 유래 - 회사 근처에 있는 섬 * UX (User eXperience) : 사용자 경험 2023. 11. 10.
[23-2] Java 입문 1. 프로그래밍과 컴파일 * Java 입문 목차 1. 프로그래밍 (Programming) : 진행 계획이나 순서 - 계획적으로 진행되게 만들기 1. 프로그래밍 언어 : 사람과 컴퓨터가 대화하기 위해서 사람이 만든 언어 ex) Java, C++, Python, C 등 2. 컴파일 (Complie) : java 코드를 PC가 읽을 수 있도록 기계어인 0과 1로 번역하는 것 1. 컴파일 언어 : 기계어로 번역되어서 실행 속도가 빠름 ex) C, java, C++ 등 2. 서버 사이드 스크립트 (Server side script) : 컴파일하지 않는 언어. 서버 측에서 해줌 ex) Java Script, PHP, node.js 등 * 속도 비교 - 요즘은 비슷 - 예전에는 컴파일 언어가 빨랐음 2023. 11. 10.
[23-2] Java 입문 목차 * Java 입문 목차 1. 프로그래밍과 컴파일 2. Java와 Kotlin 3. Java의 특징 4. 개발환경 설정 (JDK 설치) 5. 개발환경 설정 (이클립스) 6. 주석 7. 패키지와 인자 분석 8. 코드 작성 규칙 9. 변수 10. 이스케이프 문자 11. 데이터 타입 (자료형) 12. 형 변환 (캐스팅) 13. 연산자 Java 강의를 듣기 전에 들은 입문 강의를 정리했습니다. OOP 전까지 개념을 간단하게 배웠습니다. 2023. 11. 10.
[w3schools] Java Quiz w3schools에서 무료로 Java 문제를 풀 수 있습니다. 객관식 25문제입니다. 문제는 개념 위주이고 언어는 영어입니다. 링크 : https://www.w3schools.com/java/java_quiz.asp Java Quiz W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com Question 18: In Java, it is possible to inherit att.. 2023. 11. 1.
[w3school] Java Exercise w3school에서 무료로 Java 문제를 풀 수 있습니다. 14개의 챕터, 59문제입니다. 문제는 개념 위주이고 언어는 영어입니다. 링크 : https://www.w3schools.com/java/java_exercises.asp Java Exercises W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com 1. Java Syntax - clear 2. Java Variab.. 2023. 11. 1.