어떠한 자료형/클래스의 변수/객체를 만든다는 것은, 좌변의 자료형이 요구하는 정보를 모두 우변이 갖추었을 때 가능한 것이다.캐스팅은 형변환을 의미하는데 이 형변환 또한, 위에 맞춰서 생각하면, 좌변의 자료형에 맞게 우변의 형을 변형하는 것이다.예를 들면 아래처럼,int
프로그램을 작성하다보면 에러가 나는 상황이 아주 많다. 프로그램의 비정상적인 작동들을 방지하기 위해 예외처리를 하게 되는데, 나는 보통 코드처럼 예외처리를 하고, 주석을 달아 예외처리인 것을 알 수있게 하는방식으로 했었다. 자바는 이런 예외처리를 보다 수월하게 할 수
클래스, 변수, 메소드 등등등 프로그래밍을 하다보면 무언가의 이름을 지을 일이 정말 많다! 물론 잘 알다시피 자바에서 변수명은 \_과 $와 숫자, 영어의 조합으로 만들면서 숫자로 시작하지 않으면 되고, 메소드나 다른것들의 이름을 지을 때도 문법적 오류가 나지 않는 선에
일반적인 멤버변수나 메소드들은 해당 클래스의 생성자가 호출될 때(즉, 인스턴스가 생성될 때,) 힙 영역에 그 메모리를 할당받는다. 하지만 static 변수는 인스턴스가 생성되지 않아도 그 전에 별도의 데이터영역에 메모리를 할당 받는다.한 클래스 당 한 static변수에
자바에서 어노테이션은 코드를 부연하는 메타데이터이다. 메타데이터란 다른 데이터를 설명하기 위한 데이터를 뜻하는 것으로, 어노테이션은 어떠한 코드에 대해 컴파일러에게 특정 부분을 설명해주는 역할을 한다.@Override 어노테이션을 예로 들면다음과 같이 메서드에 @Ove
BFS란 Breadth First Search(너비우선탐색)이고 DFS는 Depth First Search(깊이우선탐색)이다. 이 둘은 그래프 자료구조에서 루트 노드에서 시작하여 완전 탐색을 수행하는 탐색 기법이다.DFSDFS는 깊이 우선 탐색으로, 한 노드에서 다음
Java에서 Collection이란 목록성 데이터를 처리하는, 즉 여러 원소를 담을 수 있는 자료구조를 뜻한다.Map은 Collection을 상속받지 않지만, 여러 원소를 처리하는 자료구조에 해당하기 때문에 Collection 계열로 분류한다.주요 인터페이스에 대한
객체는 SW상에 구현할, 실제 세계의 대상이다.i.e. 학생 (이름, 학년 정보를 가짐)클래스는 객체를 정의하고 만들어내기 위한 설계도 혹은 틀이다. 이는 객체에 관련된 변수나 메서드의 집합이다.i.e. 아래 코드에서 Student는 '학생'이라는 객체를 이름과 학년
바인딩은 함수 호출 시 호출된 부분을 해당 함수의 정의와 연결짓는 것을 뜻한다. 메모리 관점에서 말하자면, 함수의 정의가 위치한 메모리 주소로 연결되는 것이다.정적 바인딩은 컴파일 시 호출되는 바인딩을 뜻하며, 점프 (연결)할 주소가 결정되어있어 미리 바인딩되는 형태를
Java 동기화 기법을 만나보기에 앞서, 동기화라는 개념의 등장 배경과 필요한 이유에 대해 먼저 간단히 알아보려 한다.동기화는 multi thread 혹은 multi process 환경에서 스레드 혹은 프로세스 간 공유 및 수정이 가능한 자원을 다룰 때, 자원의 안정성