일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개인 프로젝트 개발일지
- 미국유학생
- 비전공자 git
- 복수학위제도
- 케네스로그
- 2+2
- California State University Sacramento
- 파이데이아창의인재학과
- 만다라트프로젝트
- i-20
- 유학생 준비물
- 사이드프로젝트
- 케네스
- 해외유학
- 자바 스터디
- java
- 개발일지
- 부산외대
- jpa
- CSUS
- 미국대학
- 자바
- 미국유학생활
- Java 스터디
- F1학생비자
- 미국대학생활
- JVM아키텍처
- 미국유학
- Kenneth Park
- 유학생대학생활
- Today
- Total
목록Dev/Java (24)
케네스로그

에러(Error)는 프로그램의 비정상적인 종료를 뜻한다. 에러는 두가지로 나뉘어질 수 있는데, 컴파일에러와 런타임 에러가 존재한다. 컴파일에러는 보통의 IDE 차원에서 문법 검사 등으로 확인해주기때문에 프로그램 시작 전에 알 수 있다. 하지만, 런타임 에러는 프로그램이 동작하는 과정에서 발생한다. 런타임 에러는 JVM이 정상적으로 프로그램 동작수행을 할 수 없기에 종료되는 것이며, 이것을 개발자가 핸들링 할 수 있는 방법은 없다. 애초에 코드를 짤 때부터 발생하지 않도록 해야하며, 에러는 로그를 남기거나 종료되기전 적절한 메시지를 보여주는 방법 등을 쓸 수는 있다. 메모리 부족으로 인한 프로그램의 강제 종료를 예로 들 수 있다. 예외(Exception)는 에러와 달리 복구할 수 있으며 프로그램의 종료를 ..

인터페이스 정의 인터페이스는 구현체에 대한 기능을 보증(약속)하기 위한 장치라고 할 수 있다. 인터페이스를 구현하는 클래스는 여러개의 인터페이스를 함께 구현할 수 있으며, 구현하기 위해 implements 키워드를 사용한다. 이는 abstract class를 구현하기위해 상속(extends)받는 것과 유사하다. 인터페이스는 body부분이 생략된 추상화 클래스의 집합이다. 따라서, 오직 메소드의 시그니처와 필드만 지닌다. 메소드는 정의되지 않는다 정적 변수처럼 필드를 정의하고 접근할 수 있다. interface Computer { public void playGame(String gameName); public void searchGoogle(String keyword); } interface Phone ..

package 키워드 package는 관련된 클래스들을 그룹화하기 위해 사용되며, 디렉토리의 폴더와 유사하다. package는 두가지의 종류로 나누어진다. build-in package user-defined package 빌트인 패키지 build-in package 자바 개발환경에서 Java API는 미리 만들어진 클래스들로 이루어진 라이브러리이다. 이 라이브러리는 패키지와 클래스로 나뉘어지는데, 개발자는 import할때 클래스 하나만 import 할 수도 있지만, 해당 클래스가 속한 package전체를 import 할 수도 있다. import java.util.ArrayList; // ArrayList class 하나만 import import java.util.*; // ArrayList가 속해있는..

메소드 디스패치 참조 https://blog.naver.com/swoh1227/222181505425 메소드 디스패치는 런타임에 어떤 메소드를 사용할것인지 정해지는 방법을 말합니다. 정적 메소드 디스패치 static method dispatch public class Vehicle{ public void move() { System.out.println("이동중"); } } public class Bicycle extends Vehicle { public void move() { System.out.println("페달 밟으며 이동중"); } } public class Car extends Vehicle { public void move() { System.out.println("엑셀 밟으며 이동중");..

상속 Inheritance 상속(inheritance)는 한 클래스에서 다른 클래스의 속성(필드,메소드)들을 갖는것을 말합니다. 자식 클래스는 extends키워드를 통해 부모 클래스의 필드와 메소드를 상속받을 수 있으며, private인 속성과 메소드는 상속되지 않습니다. 상속을 받는 클래스 =: 하위클래스, 자식클래스, sub클래스 상속하는 클래스 =: 상위클래스, 부모클래스, super클래스 class Parent { } class Child extends Parent { } 상속의 특징 다중상속은 불가능하며, 오직 단일 상속만 가능합니다. 한 클래스가 여러 부모 클래스를 가지는 것은 불가능합니다. java.lang.Object클래스가 최상위 클래스이며, 모든 클래스는 Object클래스의 자손입니다...

객체의 생성 new 키워드의 이해 new 키워드는 클래스의 인스턴스를 생성하기위해 사용된다. String s = new String(); String name = "kenneth"; Person p = new Person(); 인스턴스화(instantiate)는 새로운 객체를 위해 힙 영역의 메모리를 할당하고, 변수에 할당된 메모리주소(reference)를 반환한다. 런타임에 새로운 객체를 위해 힙 영역의 메모리를 할당한다 객체의 생성자가 실행된다 새로운 객체를 위해 힙 영역에 할당된 메모리 주소는 스택 영역의 변수에 저장된다. new키워드를 사용하여 클래스의 객체를 생성한다. String s = new String(); 메모리가 할당되며, 할당된 메모리의 주소(reference)가 반환된다. 필드가 기..

메소드의 정의 access_modifier return_type method_name (parameter...) { // implementation } public void demoMethod (int a) { // this is example method } 메서드의 구성 접근 제어자(access modifier) 리턴타입(return type) 메소드 이름 파라미터 접근제어자 public o o o o protected o o o default o o private o private: 해당 클래스에서만 접근이 가능 default: 패키지 내부에서만 접근가능 protected: 동일 패키지의 클래스 또는 해당 클래스를 상속받은 다른 패키지의 클래스에서만 접근 가능 public: 어떤 클래스에서라도 접근..

클래스 클래스는 객체에 대한 프로토타입 또는 청사진이라고 할 수 있습니다. 객체는 속성(property)과 메소드(method)들을 지니며, 이것은 클래스를 통해 정의할 수 있습니다. 클래스를 정의하는 방법 접근제어자(modifier) public 또는 디폴트(default). public인 경우, 어떠한 class에서든 접근할 수 있다 class 키워드 class 이름 class의 첫글자는 대문자로 시작한다 body superclass: extends 키워드를 톨해 부모클래스를 명시 interface: 1개 이상의 인터페이스를 implements 키워드를 통해 명시 modifier class class_name extends super_class implements interfaces { // clas..

관계 연산자 Comparison Operator 관계연산자는 같은 타입의 값들을 비교하는 연산자를 말하며, 결과 값은 true 또는 false로 반환합니다. 균등연산자, 관계연산자 equality & relational operator == equal to != not equal to > greater than >= greater than or eqaul to

쉬프트 연산자 shift operator shift v. 옮기다 이동하다 쉬프트 연산자는 비트 표현의 자릿수를 옮기는 연산을 말합니다. 비트 연산자와 마찬가지로 저수준에서 사용할 수 있으며, 2진법 체계의 특성을 응용하여 연산을 할 수 있습니다. 왼쪽 쉬프트 연산 1)); // 101 System.out.println("y>>1 : "+Integer.toBinaryString(y>>1)); // 11 Unsigned 쉬프트 연산 >>> unsigned shift는 쉬프트 연산 후 밀어버린 부분을 전부 0으로 채워줍니다. 단, >>>연산은 음수를 보장하지 않습니다. long b = -2147483648 // 1000 0000 0000 0000 0000 0000 0000 0000 System.out.prin..