Java/java study
-
Java - 클래스(Class) 와 객체 생성Java/java study 2022. 1. 9. 14:46
클래스(Class) 클래스(Class) 란? 프로그래밍적 언어로 표현하자면 변수(valiable)와 메서드(method)의 집합이며 객체를 만들기 위한 확장 가능한 템플릿이다. 클래스의 구성 변수 : 클래스 Scope 안에서 존재하는 변수를 말한다. 1. 객체 변수 : 접근 제어자, 변수 타입, 변수 명을 가지는 일반적인 상태 변수 객체가 생성될 때 생성 2. 클래스 변수 : static으로 작성된 상태 변수 클래스가 로드 시점에 생성되며 Class정보로 메모리에 저장 메서드 : 클래스 Scope 안에서 존재하는 메서드 1. 객체 메서드 : 접근 제어자, 반환 타입, 메서드 명, 매개변수를 갖는 메서드 객체가 생성될 때 생성 2. 클래스 메서드 : static으로 작성된 메서드 : 클래스 로드 시점에 생..
-
Java - LinkedList, Stack, Queue 구현하기Java/java study 2022. 1. 2. 02:26
LinkedList 구현 Stack 구현 구현한 LinkedList로 Stack 구현 Queue 구현 LinkedList 구현 LinkedList 란? Collection 프레임 워크의 일부이며 Java.util 패키지에 소속되어 있다. LinkedList는 데이터가 연속된 위치에 저장되어 있지 않다. 데이터를 담고 있는 노드들이 연결되어있으며 노드의 포인터가 이전, 다음 노드와의 연결을 담당한다. 배열에서 자주 삽입, 삭제가 이루어지는 경우 용이하여 ArrayList보다 선호된다. ArrayList보다 검색에 있어서는 느리다. 리스트의 종류로 단일 연결 리스트, 이중 연결 리스트, 원형 연결 리스트가 있다. public class ListNode { int data; ListNode next; publ..
-
JUnit 5Java/java study 2022. 1. 2. 00:28
JUnit 5 란? 자바 개발자가 많이 사용하는 테스팅 기반 프레임워크를 말한다. Java 8 이상부터 사용가능하며 JUnit Platform과 JUnit Jupiter, Junit Vintage 결합한 형태라고 보면 된다. JUnit Platform : 테스트를 발견하고 테스트 계획을 생성하는 TestEngine 인터페이스를 가지고 있다. Platform은 TestEngine을 통해서 테스트를 발견, 실행, 결과를 보고한다. JUnit Jupiter : TestEngine의 실제 구현체는 별도 모듈이다. 모듈 중 하나가 jupiter-engine이다. 이 모듈은 jupiter-api를 사용해서 작성한 테스트 코드를 발견하고 실행한다. Jupiter API는 JUnit 5에 새롭게 추가된 테스트 코드용 ..
-
Java - 제어문Java/java study 2022. 1. 1. 21:47
선택문 반복문 제어문 '제어문' 이란? 모든 일을 순차적으로 실행할 수 있다면 아무런 상관이 없겠지만, 조건에 따라 코드를 반복해야 될 수도, 건너뛰어야 될 수도, 순서를 변경해야 될 수도 있는 일이 발생한다. 이때, Java에서는 제어문을 사용하여 코드 실행 흐름을 제어할 수 있다. 즉, 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 하는 것이 제어문이다. 제어문의 종류 선택문 - if-then, if-then-else, if-then-else if-then-else, switch 반복문 - for, while, do-while, for-each 분기문 - break, continue 선택문 '선택문' 이란? 특정 데이터의 값에 따라 수행할 구문을 선택 if-then if-then 문은 가장 기..
-
Java - 연산자Java/java study 2021. 12. 19. 19:33
산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 hashCode의 의미는 무엇인가요? 자바 equals와 ==의 차이는 무엇인가요? 산술 연산자 종류 연산자 연산 결과 + 덧셈 A + B - 뺄셈 A - B * 곱셈 A * B / 나눗셈 A / B % 나머지 A % B 특징 피연산자들의 타입이 동일하지 않는 경우, 자동 타입 변환을 하여 피연산자들의 타입을 일치 시킨 후 연산을 수행한다. 연산시 데이터가 손실되지 않는 타입으로 자동 타입 변환을 시행한다. 연산 예제 1 public class Main { public static void..
-
Java - 프리미티브 타입과 레퍼런스 타입Java/java study 2021. 12. 10. 01:43
프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var Wrapper Class에 대해 말해주세요. java final과 불변객체에 대해 정리해주세요. (https://www.youtube.com/watch?v=ej-bnXlHk-E) 프리미티브 타입(Primitive tyoe) 실제 데이터 값을 저장하는 타입 실제로 데이터 값을 넣는 메모리 공간을 차지한다. null 값을 가질 수 없다. 레퍼런스 타입(Reference Type) heap 영역에 저장되어 있는 실제 객체들의 주소 값를 저장 stack영역에 저장 객체를 참조하지..
-
Java - JVM에 대하여Java/java study 2021. 12. 3. 02:33
JVM이란? C와 C++ 등과 같은 언어는 프로그램이 컴파일이 되면 해당 OS에 종속된 기계어 코드로 변환되어 다른 OS에서 실행이 안되지만, 자바 프로그램은 JVM이 각기 다른 OS에서 자바 프로그램이 실행할 수 있도록 해주는 프로그램이다. 즉, 어느 OS에서 자바 프로그램이 컴파일이 되어도 다른 OS에서 실행될 수 있도록하는 중계자 역활을 한다. 자바 프로그램 실행 과정 자바 컴파일러를 통해 Java Source를 컴파일 한다. 컴파일된 Class 파일를 Class Loader에게 전달 한다. Class Loader는 동적로딩을 통해 ByteCode들을 JVM에 있는 Runtime Date Area에 로딩 시킨다. Execution이 Runtime Data Area에 있는 ByteCode들을 명령어 ..