Java 개발환경 (플랫폼) -> JavaSE, JaveEE, JaveME, 자바 안드로이드 를 의미함.자바를 설치한다는 말은 자바 JDK를 설치한다는 의미JDK에는 개발하는데에 필요한 라이브러리와 플랫폼이 들어있음자바 프로그램을 실행하기 위해선 자바 실행환경 JRE만
클래스 파일은 byte code로 되어있는 실행가능한 파일이지만 그냥 더블클릭해서 실행할수 없다 왜? 실행하기 전단계의 파일이기 때문이다. 그래서 이걸 실행해주는 별도의 실행 엔진이 필요하다. 그것이 JVM. JVM에 의해서 클래스파일이 메모리에 로딩 되고, 메모리를
프로그래밍의 3대 요소를 변수, 자료형(DateType), 할당(=) 이라고 한다.1+1 = 2 라는 연산에서 필요한 것은 무엇일까? 메모리에 1 1 2 를 집어 넣는 기억공간이 필요하다.기억공간이 하나 만들어지면 이름이 있어야한다. 프로그래밍에서는 이 기억공간을 대표
예를들어 변수 3개를 만들어본다고 가정하자 그러면 int a, b, c; 라고 선언하고 각 변수에 값을 넣어줄것이다.만약에 합을 구해주는 sum이라는 메소드가 있다면 sum(int a, int b, int c){}라고 선언할 것이다. 근데 3개가 아니라 n개라면? 그래
인프런 자바 강의 (Java TPC) 를 보면서 정리한 포스트. 제목과는 다르게 정확하게는 RunTime Data Area 안의 Method Area, Heap Area, Stack Area에 관한 설명을 담음. 더 자세한 설명은 서치해보아야 함.
JVM 메모리 구조를 검색하던 중에 가장 이해하기 쉬웠던 페이지. slideplayer 에 올라온 ppt인데 이유는 모르겠지만 내용 편집이 이상하게 되어 있음. 마크다운으로 보기좋게 재편집함.
정수, 실수, 문자, 불같은 기본자료형은 처음에 배우기때문에 익숙하다. 그런데 업무에서 필요로하는 자료가 있다고 칠때,예를들어 서점관리를 할때 필요한 데이터는 책이다.영화예매 예약을 한다고 치면 필요한 데이터는 영화가 될것이다.회원관리를 만든다면? 회원이 될 것이다.성
생성자에 관해서 정리한 포스트
생성자 메소드에 프라이빗이 들어가면?생성자 메소드가 private인 경우도 있다.객체를 생성할 때 관여하는 것이 생성자 메소드이다.그런데 만약에 생성자 메소드가 private이라면?그럼 객체를 불러올수가 없다.그래서 클래스를 통해서만 메소드를 불러올수있다.예를들어서 S
객체생성과정 BookDTO b = new BookDTO(); new 연산자와 생성자메소드 호출 이걸통해서 관계 서로 어떤 관계인지 비교해보자
객체를 잘 만든다는 것은 무엇일까? Getter와 Setter는 무슨 역할을 할까? 정보은닉이란?
오버로딩에 대해서 알아보자.
파트 1 에서는 데이터의 구조에 대해서 집중적으로 설명. 파트 2 에서는 동작의 측면에서 어떻게 클래스를 만들어서 활용할지.
상속 공부
오버라이딩에 대해 이해하기
상속관계에서 객체생성 방법
다형성을 인자로 활용, 다형성을 배열로 활용
추상클래스처럼 다형성을 보장하기 위해 등장한 개념100% 다형성을 보장한다.인터페이스랑 추상클래스랑 다른점은 뭔가?추상클래스와 달리 인터페이스는 구체적인 로직을 가지고있는 메소드를 넣으면 안된다추상클래스는 자식클래스가 기능이비슷하지만 인터페이스는 서로 기능이 다른클래스
인터페이스 (규약)과 JDBC의 관계인터페이스는 JDBC에서 가장 많이 활용이 된다.JDBC(Java DataBase Connecitiviy)란?자바 프로그램 내에서 DB와 관련된 작업을 처리할 수 있도록 도와주는 API이다. JDBC 클래스는 자바 패키지 java.s
인터페이스와 인터페이스가 상속가능하다A도 인터페이스이고 B도 인터페이스이지만 서로 상속이 가능하다객체생성 방법은 아래처럼 두 부모로부터 생성할 수 있다.
자바가 만들어놓은 API중에서 최상위 클래스이다. root라고도 한다. 모든 사용자가 만든 클래스는 배열을 포함해서 Object로부터 상속받는다.그렇기 때문에 모든 클래스는 Object클래스의 메서드를 사용할 수 있다. 대표적으로 toString() 같은 것이 존재한다
정보은닉 (Information Hiding)객체를 잘 만든다는 것은?상속 (Inheritance)상속 (수평적구조 VS 수직적구조)상속관계에서 객체생성 방법다형성 (Polymorphism)다형성의 활용상속관계에 있는 클래스에서 상위클래스가 동일한 메시지로 하위클래스들
모든 클래스의 최상위 클래스(root)인 Object 클래스의 메서드에서 equals 를 재정의(오버라이딩)하는 것을 시도해보면 자연스럽게 다형성에 대해서 이해할 수 있다.등가비교연산자 ==와!=는 두 피연산자에 저장되어 있는 값이 같은지, 또는 다른지를 비교하는 연산
String 클래스1\. 자바에서 문자열은 쌍따옴표(리터럴)로 감싸면된다2\. 자바에서 문자열을 저장하는 기본자료형은 없다3\. 문자열은 여러가지 조작을 할 수 있기 때문에 별도의 클래스로 자료형을 만들어 두었다.4\. 자바에서는 문자열은 책,영화,회원 처럼 객체로 취
제너릭에 대해서 아직 배우지않아서 콜렉션 프레임워크 List, Set, Map 등을 사용할 때, 깨름칙한 부분이 없지않아 있었다.이 콜렉션 프레임워크는 항상 제너릭을 같이 쓴다.
기본자료형을 객체 자료형을 사용할 수 있도록 만들어 놓은 자료형 (포장 클래스)프로그램에 따라 기본 타입의 데이터를 객체로 취급해야 하는 경우가 있습니다.예를 들어, 메소드의 인수로 Object 타입만이 요구되면, 기본 타입의 데이터를 그대로 사용할 수는 없습니다.이때
StringBuilder, StringBuffer 사용법
클래스 내부에서 사용할 데이터 타입을 외부에서 지정해주는 기법을 의미한다.여기서 꺽새 <> 안에 있는 타입이 person 클래스의 <T> 에 있는 T로 들어가서 필드에있는 public T info 에서 T의 데이터타입이 설정해준 데이터타입으로 바뀐다.데이터타
설치 JavaFX 를 다운받는다. 새로운 프로젝트를 생성하고 Java FX 를 추가한다 jar 파일들을 라이브러리에 추가한다. Java 버전 11 이상이면 run configuration에서 VM options에 다음과 같이 추가해준다. --module-path 방금다
콜렉션 프레임워크(Queue, Set, List)는 그리고 Map은 배열의 한계성을 극복하기 위해 나왔다. 기본적인 사용법은 가장 최상위 인터페이스인 Collections에 구현되어 있는 것들을 모두 살펴보는 편이 좋다. 그 중에 Iterator를 살펴보자면...콜렉션
예를들어.APPLE이 겹친다.이름앞에 주석을 달아준다더 간결 해졌다.왜?앞에 public static final 이라는 것을 암시적으로 가지고 있다.아깐 접두사를 붙여서 각각의 이름의 충돌성을 낮추려고했는데 지금은 인터페이스를 통해서 그것이 과일인지 기업인지 상수를 격
기본적으로 둘을 코드로 사용할 때는 위와 같은 차이를 가진다. 두번쨰코드는 String의 valueOf() 라는 정적 메소드로 kyu 라는 문자열을 생성한 것이다.생성자를 통하지 않고 정적 팩토리 메서드를 사용하는 이유는 뭘까? 이펙티브 자바 1장에는 “Consider
한글로 직역하면 값 객체. 말에서 오는 어감은 객체로서 가지는 값을 의미하는 것 같아 보인다. 그리고 실제로 공부해보면 거의 비슷하다.예를 들어서, Age 는 어떤 데이터 타입에 넣어줘야할까? 아마 나같은 초보자들은 백이면 백 int라고 대답할 것 같다. 근데 대답은
객체가 가지고 있는 속성과 타입이 같다면 동일한 객체로 비교하고 싶다.예를 들어서, 지난 체스 만드는 미션에서 체스말에서 체스말들을 그런식으로 비교하고 싶을 수 있다동일성(==) 비교는 객체가 참조하고 있는 주소값을 비교한다.그래서 속성과 타입이 같아도 참조값이 다르면
자바에서 날짜와 시간을 구하는 방법은 여러가지이고 대표적으로 3가지가있다.이 세가지는 모두 동일한 기본 형식으로 현재날짜와 시간을 리턴한다.세가지 타입 모두 기본형식을 리턴하기 때문에 원하는 날짜 형식을 위해서는만든 날짜를 변환하는 과정이 필요하다.SimpleDateF
자바8 에서 인터페이스에 default method 를 사용가능하게 됐다코드를 보자더불어 List<?> 에서 바로 stream을 사용할 수 있는 것은extend 하고 있는 Collection이 default 메소드로 아래를 구현하고 있기 때문이다
파라미터 2개 3개 4개 받을 수있다둘다 기본적으로 (Function keyMapper, Function valueMapper) 를 받는다.의미는 스트림 원소들 순회해서 key 랑 value 로 만들어서 map 으로 리턴한다는 뜻이다.예를 들어 Person 이라는 객체
보면서 공부한 링크들:https://madplay.github.io/post/synchronize-access-to-shared-mutable-datahttps://parkcheolu.tistory.com/14https://github.com
모던 자바 인 액션 읽고 정리 한 문서입니다.요약: 스트림 -> 병렬 스트림 -> CompletableFuture 활용하여 병렬 작업을 개선할 수 있다.예제코드: https://github.com/kyupid/java-test/tree/main/modern-c