변수는 기본형과 참조형으로 나뉜다.그중 참조형 변수는 변수이름 앞에 타입을 클래스로 한다.즉, 변수의 타입이 기본형이 아닌 것들은 모두 참조변수이다.참조형 변수는 객체의 주소를 저장한다.다음은 Date클래스 타입의 참조변수 today를 선언한 것이다. 참조변수는 nul
산술 > 비교 > 논리 > 대입. 대입은 제일 마지막에 수행된다.단한(1) > 이항(2) > 삼항(3). 단항 연산자의 우선순위가 이항 연산자보다 높다.단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방법은 왼쪽에서 오른쪽이다. 두 피연산자의 타입을 같게 일치시킨다
switch문의 조건식 결과는 정수 또는 문자열이어야 한다.case문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.
배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것이다.타입\[] 변수이름;타입 변수이름\[];타입\[] 변수이름; 변수이름 = new 타입길이;int형 배열 참조변수 score을 선언한다. 데이터를 저장할 수 있는 공간은 아직 마련되지 않았다.연산자 new에
코드의 재사용성이 높다. (재사용성)새로운 코드를 작성할 때, 기존의 코드를 이용하여 쉽게 작성할 수 있다.코드의 관리가 용이하다. (유지보수)코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.신뢰성이 높은 프로그래밍을 가능하게 한다. (중복된 코드의
: 한 클래스내에 같은 이름의 메서드를 여러개 정의하는 것.메서드 오버로딩(method overloading) 또는 오버로딩(overloading)이라고 한다.보통 하나의 메서드 이름에는 하나의 기능만을 구현해야하는데, 하나의 메서드 이름으로 여러 기능을 구현한다. 메
생성자는 인스턴스가 생성될때 호출되는 "인스턴스 초기화 메서드" 이다. 변수의 초기화 작업에 주로 사용된다.인스턴스 생성시에 실행되어야 할 작업을 위해서도 사용된다.메서드처럼 클래스내에 선언된다.생성자는 오버로딩이 가능하여, 하나의 클래스에 여러개의 생성자가 존재할 수
상속: 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것코드의 재사용성을 높임코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 기여사용 방법 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써준다.이
: 조상 클래스로부터 상속받은 메서드의 내용을 변경하는것오버라이딩의 조건자손클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와이름이 같아야 한다.메서드가 같아야 한다.반환타입이 같아야 한다.조상클래스의 메서드를 자손클래스에서 오버라이딩할때 접근제어자를 조상 클래스
제어자란 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여하는 것이다.제어자의 종류접근 제어자public, protected, default, private그 외static, final, abstract, native,transient, sync
여러가지 형태를 가질 수 있는 능력한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 하는 것조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 함
클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다.클래스가 미완성이라는 것은 멤버의 개수와 상관없이 단지 미완성 메서드(추상메서드)를 포함하고 있다는 의미이다. 추상클래스로는 인스턴스를 생성할 수 없고 상속을 통해서 자손클래스에 의해서만 완성될
인터페이스는 일종의 추상클래스이다. 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸토을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다.오직 추상메서드와 상수만을 멤버로 가질 수 있다.추상 클래스를 부분적으로만 완성
내부클래스는 클래스내에 선언된 클래스이다. 클래스안에 다른 클래스를 선언하는 이유는 두 클래스가 서로 긴밀한 관계에 있기 때문이다. 내부 클래스의 장점내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.코드의 복잡성을 줄일 수 있다(캡슐화)내부 클래스의 종류는
프로세스 : 실행중인 프로그램. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다.프로세스는 프로그램을 수행하는데 필요한 데이터와 메모리등의 자원 그리고 쓰레드로 구성되어 있다. 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이
쓰레드 프로그래밍이 어려운 이유는 동기화(synchronization)와 스케줄링(scheduling)때문이다. 앞서 우선순위를 통해 쓰레드간의 스케줄링하는 방법을 배우기는 했지만, 이것만으로는 한참 부족하다. 효율적인 멀티쓰레드 프로그램을 만들기 위해서는 보다 정교한
싱글쓰레드 프로세스의 경우 프로세스 내에서 단 하나의 쓰레드만 작업하기 때문에 프로세스의 자원을 가지고 작업하는데 별 문제가 없지만, 멀티쓰레드 프로세스의 경우 여러 쓰레드가 같은 프로세스 내의 자원을 공유해서 작업하기 때문에 서로의 작업에 영향을 주게 된다.만일 쓰레
BufferedReader는 잘라서 배열과 같이 인덱스를 사용하여 접근하여 사용.StringTokenizer는 공백이 있다면 뒤에 문자열이 공백 자리를 땡겨 채우도록 한다.StringTokenizer가 BufferedReader보다 빠르게 사용될 수 있다.문자열을 자르
JavaPrintWriter method 성능 비교 (추가 BufferedWriter)https://velog.io/@sayi/JavaPrintWriter-method-%EC%84%B1%EB%8A%A5-%EB%B9%84%EA%B5%90-%EC%B6%94%EA%
환경변수 설정에서 이전: C:\\Program Files\\Java\\jdk-11.0.13변경 후: C:\\Program Files\\Java\\OpenJDK11U-jdk_x64_windows_hotspot_11.0.17_8\\jdk-11.0.17+8JAVA_HOME
빌더 패턴(Builder Pattern)을 사용해야 하는 이유https://mangkyu.tistory.com/163
JPA nullable=false와 @NotNull 비교, Hibernate Validationhttps://kafcamus.tistory.com/15