프로젝트 개발 기록/[개발] java | spring24 [IntelliJ] project마다 JDK 버전 관리하기 나는 기존에 JDK 8을 사용하고 있었고 스프링 강의에서는 JDK 11을 사용한다. 엇.. 그러면 IntelliJ 버전은 어떻게 해야할까. Project A Project: Gradle Project Language: Java Java: 11 Project B Project: Gradle Project Language: Java Java: 8 Project Setting (CTRL+ALT+S, CMD+,) ✔️ Gradle JVM 변경 Build, Execution, Deployment > Build Tools > Gradle 여기서 Gradle JVM을 변경한다. 내가 원하는 JDK 버전을 추가해줬다. ✔️ Project bytecode version 변경 Build, Execution, Deploym.. 2022. 10. 25. [Java] 예외처리 예외처리 (exception handling) 프로그램 오류 컴파일 에러(compile-time error): 컴파일할 때 발생하는 에러 런타임 에러(runtime error): 실행할 때 발생 하는 에러 에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외(exception): 프로그램 코드에 의해서 수습될 수 있는 미약한 오류 -> 예외는 처리하자!! 논리적 에러(logical error): 작성 의도와 다르게 동작 예외 처리 정의: 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 목적: 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것 방법: try-catch문, 예외 선언하기 ✔️ Exception Exception 클래스들: 사용자.. 2022. 10. 23. [Java] 알아두면 좋을 것! (JDK, JRE, JVM, build, run) 자바 기본 자바와 스프링 공부를 함께 하고 있는데 기본 원리를 놓치고 공부하고 있다는 생각을 했다. 그래서 오늘은 기본적인 Java 원리를 정리하고 이해해보자. 1. JAVA 언어를 컴퓨터가 이해하는 과정 1) 코드 작성 .java public class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World"); } } 기계는 Java Source code를 이해할 수 없다. 2) 컴파일러(Compiler)가 컴파일(Compile) 함. 0과 1의 코드로 바꿔줌. 3) 바이트 코드 (바이너리 코드) 컴퓨터가 이해함. [ 정리 ] 컴파일: 인간이 이해하기 쉬운 언어를 기계어로 번역하는 과정 컴파일러: .. 2022. 10. 16. [Java] 다형성(polymorphism), 추상 클래스, 인터페이스, 내부 클래스 다형성 (polymorphism) 여러 가지 형태를 가질 수 있는 능력 (하나의 객체가 여러개의 자료형 타입을 가질 수 있는 것) 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다. 조상: TV, 자손: SmartTV Tv t = new SmartTV(); // OK SmartTv s = new TV(); // 에러 멤버의 개수가 7가진데 5가지만 참조변수로 사용할 수도 있다. ✔️ 참조변수의 형변환 사용할 수 있는 멤버의 개수를 조절하는 것 조상 자손 관계의 참조변수는 서로 형변환 가능하다. 자손타입 -> 조상타입(up-casting) : 형변환 생략가능 조상타입 -> 자손타입(down-casting) : 형변환 생략불가 FireEngine .. 2022. 10. 12. [Java] package와 import, 제어자 패키지 (package) 서로 관련된 클래스의 묶음 클래스의 실제 이름(full name)은 패키지를 포함. (java.lang.String) ✔️ 패키지의 선언 패키지는 소스파일의 첫 번째 문장으로 단 한번 선언 같은 소스 파일의 클래스들은 모두 같은 패키지에 속하게 된다. 패키지 선언이 없으면 이름없는 (unnamed) 패키지에 속하게 된다. package com.codechobo.book; src 아래에서 New -> Package 로 패키지를 생성할 수 있다. 패키지를 생성하면 class를 생성할 수 있다. 다음과 같이 패키지 선언이 자동으로 삽입된다. 패키지 사용 이유 클래스의 분류가 용이하다. (비슷한 것 끼리 묶는다) 패키지가 다르다면 동일한 클래스명을 사용할 수 있다. import문 클래스.. 2022. 10. 11. [Java] 상속 (Inheritance), 오버라이딩, super, super() 상속 (Inheritance) 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. (코드의 재사용) 자손은 조상의 모든 멤버를 상속받는다. (생성자, 초기화 블록 제외) 자손의 멤버 개수는 조상보다 적을 수 없다. class Parent { int age; } class Child extends Parent {} : 이때 부모 멤버 1개를 모두 상속받았기 때문에 자식 또한 멤버 1개이다. 자손의 변경은 조상에 영향을 미치지 않는다. 예시 class Point { int x; int y; } class Point3D extends Point { int z; } ✔️ 포함 관계 클래스의 멤버로 참조변수를 선언하는 것 작은 단위의 클래스를 만들고, 이들을 조합해서 클래스를 만든다. 예시 class Poi.. 2022. 10. 9. [Java] 클래스와 객체, 변수와 메서드, 오버로딩, 생성자 1. 객체지향언어 ✔️ 객체 지향 프로그래밍 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. (협력) 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. ✔️ 특징 코드의 재사용성이 높다. 코드의 관리가 용이하다. 신뢰성이 높은 프로그래밍을 가능하게 한다.(캡슐화) ✔️ 핵심개념 캡슐화 상속 추상화 다형성 자바 언어 자바 언어의 다형성을 활용 역할 = 인터페이스 구현 = 인터페이스를 구현한 클래스, 구현 객체 객체를 설계할 때 역할과 구현을 명확히 분리 객체 설계시 역할(인터페.. 2022. 9. 17. [Java] 비트연산자(bitwise operator) "& | ^ ~ << >>" 비트 연산자는 피연산자를 비트단위로 논리 연산한다. 비트 연산의 우선순위: 논리 연산 (쉬프트 연산자) ex) 7 > .. 2022. 7. 19. [프로그래밍 언어] Java 이 게시글은 Java 알고리즘 풀이에 필요한 내용을 공부하며 계속 추가할 예정이다. 1. 입출력 ✔️ Scanner import java.util.Scanner; public class Ex1000 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); sc.close(); System.out.println(a+b); } } Scanner 클래스는 생성자의 입력으로 System.in, 즉 콘솔입력인 InputStream을 필요로 한다. in.next() : 문자열 입력시 공백 전 까지 in.nextLine() : 문자열 입력시 Enter 입.. 2022. 7. 9. 이전 1 2 다음 반응형