JAVA/WhiteShip Java Live Study 2021. 6. 12.
[JAVA] 패키지란? (package, import, classpath...)
🎁 패키지 패키지(package)란, 클래스 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 같은 이름의 클래스일 지라도 서로 다른 패키지에 존재하는 것이 가능해서, 다른 개발자가 개발한 클래스 라이브러리의 클래스 이름과 충돌하는 것을 피할 수 있다. 클래스가 물리적으로 하나의 클래스파일(*.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리이다. 예를 들어, java.lang.String 클래스는 디렉토리 java의 서브 디렉토리인 lang에 속한 String.class 파일이다. 🧡 하나의 소스파일에는 첫 번째 문장으로 단 한번의 패키지 선언만을 허용한다. 🧡 모든 클래스는 반드시 ..
JAVA/WhiteShip Java Live Study 2021. 6. 7.
[JAVA] 상속이란? (추상클래스, super, final, 오버라이딩...)
👶 상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 장점 및 특징 적은 양의 코드로 새로운 클래스 작성 가능 코드를 공통적으로 관리해 코드의 추가/변경이 용이 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여 상속방법 [새로 작성하고자 하는 클래스] extends [상속 받고자하는 클래스] [자식 클래스] extends [조상 클래스] [하위 클래스] extends [상위 클래스] [파생된 클래스] extends [기반 클래스] Child extends Parent 📢 단일 상속 JAVA는 다중 상속이 불가능 하다. 단일 상속만 가능하다. ❌: (자손) extends (조상1), (조상2) 상속 계층도 다이어그램 🚨 조상클래스가 면경되면 자손클래스는 자..
JAVA/WhiteShip Java Live Study 2021. 5. 28.
[JAVA] 클래스란? (클래스, 객체, new, 메소드, 생성자, this...)
🍌 클래스 클래스 객체를 정의해 놓은 것 객체의 설계도 또는 틀 객체를 생성하는데 사용됨 클래스를 정의하는 방법 클래스란 객체를 정의한 것이므로, 클래스에는 객체의 모든 속성과 기능이 정의되어 있다. class Tv { // 속성(변수) String color; boolean power; int channel; // 기능(메서드) void power() { power = !power; } void channelUp() { channel++; } void channelDown() { channel--; } 🍌 객체 객체 실제로 존재하는 것. 사물 또는 개념 객체의 용도는 객체가 가지고 있는 기능과 속성에 따라 다름 클래스에 정의된 내용대로 메모리에 생성된 것 객체 만드는 방법 인스턴스화 클래스로부터 객체를..
JAVA/WhiteShip Java Live Study 2021. 5. 23.
[JAVA] 제어문
🍭 반복문(for each) for each 는 J2SE 5.0(Java Platform, Standard Edition) 부터 추가되었다. for each라는 키워드가 따로 있는 것은 아니고 동일한 for를 이용한다. 하지만 조건식 부분이 조금 다르다. 보통 다른 언어에서 for each 라고 많이 하므로 자바에서도 보통 for each 문이라고 말한다. 문법은 아래와 같다. for (type var: iterate) { body-of-loop } 위 iterate(: 반복하다) 는 루프를 돌릴 객체이고 iterate 객체에서 한개씩 순차적으로 var 에 대입되어 for 문을 수행하게 된다. iterate 부분에 들어가는 타입은 루프를 돌릴 수 있는 형태인 배열 및 ArrayList 등이 가능하다. 예..
JAVA/WhiteShip Java Live Study 2021. 5. 17.
[JAVA] 연산자 (화살표, 삼항, switch...)
산술 연산자 +, -, *, /, % 비트 연산자 &, |, ^ 관계 연산자 , ≤, ≥, ==, ≠ 논리 연산자 &&, || instanceof instanceof 란 참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위해 사용하는 연산자이다. [참조변수] instanceof [타입/클래스명] 연산 결과는 boolean이다. 결과가 true이면 참조 변수가 검사한 타입으로 형 변환이 가능하다는 것을 뜻한다. 참고로, 값이 null인 참조변수에 대해 instanceof 연산을 수행하면 false를 결과로 얻는다. 조상타입의 참조변수로 자손 타입의 인스턴스를 참조할 수 있기 때문에, 참조 변수의 타입과 인스턴스의 타입이 항상 일치하지는 않는다. 때문에 조상 타입의 참조변수로는 실제 인스턴스의 멤버들..
JAVA/WhiteShip Java Live Study 2021. 5. 17.
[JAVA] 자바 데이터 타입, 변수 그리고 배열
프리미티브 타입 종류와 값의 범위 그리고 기본 값 종류 데이터 형 표현 범위 기본 값 할당되는 메모리 크기 논리형 boolean true 또는 false false 1 byte 문자형 char '\u0000' ~ 'uFFFF' (16비트 유니코드 문자 데이터) '\u0000' 2 byte 정수형 byte -128~127 0 1 byte short -32768 ~ 32767 0 2 byte int -2147483648 ~ 2147483647 (-21억 ~ +21억) 0 4 byte long 9223372036854775808 ~ 9223372036854775807(-100경 ~ + 100경) 0L 8 byte 실수형 float 1.4E-45 ~ 3.4028235E38 0.0F 4 byte double 4...
JAVA/WhiteShip Java Live Study 2021. 5. 15.
[JAVA] JVM이란? 개념 및 구조 (JDK, JRE, JIT, 가비지 콜렉터...)
JVM이란 무엇인가 Java Virtual Machine의 줄임말. 직역하면 '자바를 실행하기 위한 가상 기계(컴퓨터)'라고 할 수 있다. Java 는 OS에 종속적이지 않다는 특징을 가지고 있다. OS에 종속받지 않고 실행되기 위해선 OS 위에서 Java 를 실행시킬 무언가가 필요하다. 그게 바로 JVM이다. 즉, OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터이다. Java 소스코드, 즉 원시코드(*.java)는 CPU가 인식을 하지 못하므로 기계어로 컴파일을 해줘야한다. 하지만 Java는 이 JVM 이라는 가상머신을 거쳐서 OS에 도달하기 때문에 OS가 인식할 수 있는 기계어로 바로 컴파일 되는게 아니라 JVM이 인식할 수 있는 Java bytecode(*.cla..