자바 Java
Collection 과 Map (왜 Map 은 Collection 을 extends 하지 않을까?)
Collection Interface 다양한 자료구조들의 부모(?) 이며 iterable 하다 (순회할 수 있다, Iterable 인터페이스를 extends 했다). 그리고 하나의 값만 추가할 수 있다. 여기 Collection interface 를 extends 한 자료구조들 그림에서 알 수 있듯이, Collection (Interface) 는 Iterable (Interface) 를 extends 하고 있다. 그리고 List, Queue, Set (Interface) 들은 Collection (Interface) 를 extends 하고 있다. 그리고 각각의 구현 클래스 들은 Set, List, Deque 등을 implements 하고 있다. List - ArrayList, LinkedList, Vec..
추상 클래스(abstract class) 와 인터페이스(interface) / 확장 / 예시 / 용도의 차이
추상 클래스와 인터페이스 abstract class 와 interface class 는 둘 다 유사 개념에 대해 공통 코드를 만들 수 있고, 인스턴스를 바로 만들 수 없는 설계도 라는 공통점을 갖고 있다. 그렇다면 어떤 차이점을 갖고 있을까? 추상 클래스 abstract class (추상 클래스) 는 상속 (extends) 을 통해 구현될 수 있는 클래스 이다. 상속은 단일 상속 만 가능하다. 추상클래스는 IS-A 관계로 '무엇' 을 의미한다. 즉 무엇인가 가 어떤 특성(멤버 변수) 과 행동(메서드) 을 가지는 것을 정의할 수 있다. 따라서 멤버변수와 메서드를 구현할 수 있다. 추상 클래스의 확장 따라서 추상 클래스의 확장은, 특성이나 행동이 확장되는 것을 의미한다. abstract class Anima..
Java 의 접근 제어자 - public, protected, default, private 에 대해서
Java 의 접근 제어자에 대해서 Java 에는 public, protected, default, private 라는 4개의 접근 제어자가 있다. 말 그대로 접근의 범위를 제어하는 키워드 이다. 따라서 접근 제어자가 클래스에 붙어 있으면 해당 클래스의 접근 범위를 제어하는 것이고, 멤버변수에 붙어있다면 멤버변수의 접근 범위를 정하는 것이다. public protected default private 접근 범위 - 어디서나 - 자손 Class 내에서 - 같은 Package 내에서 - 같은 Class 내에서 - - 자손 Class 내에서 - 같은 Package 내에서 - 같은 Class 내에서 - - - 같은 Package 내에서 - 같은 Class 내에서 - - - - 같은 Class 내에서 protect..
왜 자바 애플릿은 지원이 종료되었을까
왜 자바 애플릿은 지원이 종료되었을까? 자바에 대해서 공부하다가 https://leexx.tistory.com/112 자바 애플릿은 무슨 사연으로 종료가 되었을까 궁금해서 찾아보았다. 책에서는 보안 문제라고 하였지만, 찾아보니 의외로... 보안 관련 특정 사건이라기보다는 복합적인 이유로 사라졌다고 한다. 누가 악의적인 프로그램을 만들어서 크게 문제가 되어서 중단이 된 줄 알았는데... 그렇진 않았다. 정리해보니 두 가지 이유로 볼 수 있었다. Flash 의 등장과 HTML5 로의 진화(?) 가 이유이다. 물론 보안 문제도 있지만, 그건 Flash 를 사용하지 않게 된 이유에 더 가깝다. 왜 자바 애플릿은 Flash 에게 밀렸을까? 무려 12년 전에 올라온 질문이다 (여기) 정리해보면, 자바 애플릿은 실행..
Java 의 역사와 특징
Java 의 등장 배경 91년, 썬 마이크로시스템즈의 엔지니어들에 의해 제안 되었다. 초기 이름은 Oak(오크) 로, 목적은 가전제품 및 소형기기 에 사용될 언어 였다. 그러나 다양한 종류의 운영체제가 등장하면서, 운영체제에 구애받지 않으며 인터넷에 적합한 언어로 목적을 변경 하였고, 96년 1월에 Java 라는 이름으로 출시 되었다. 자바 애플릿과 서버 프로그래밍 초기에 자바는 자바 애플릿(Java Applet) 으로 정적인 웹페이지에 멀티미디어 요소(사운드, 애니메이션 등) 를 추가할 수 있는 유일한 언어였기 때문에, 많은 인기를 누렸다. 하지만 보안 문제로 현대의 웹 브라우저들은 자바 애플릿을 더 이상 지원하지 않고 있다. 반면, 서버 측 프로그래밍에서는 서블릿(Servlet) 과 JSP(Java ..
[자바의정석] 배열
배열 배열이란 같은 타입 의 여러 변수를 하나로 묶은 것 배열의 선언 int[] arr = new int[3]; // (1) 선언 int[] arr = new int[]{10, 11, 12}; // (2) 선언 및 초기화 int[] arr = {10, 11, 12}; // (3) 선언 및 초기화 참조변수 이므로 new 키워드로 선언해준다. 배열의 복사 for 문으로 복사 int origin[] = new int[]{10, 11, 12}; int temp[] = new int[3]; // (1) for 문으로 복사 for(int i=0; i
[자바의정석] 자료형
자료형 (data type) 자료형 이란 값 (data) 의 종류 (type) 에 따라 저장될 공간의 크기와 저장 형식 을 정의한 것임 자료형에는 문자형 (char), 정수형 (byte, short, int, long), 실수형 (float, double) 등이 있음 자료형의 종류 기본형 (Primitive type) 실제 값 (data) 를 저장함, 따라서 기본형의 변수의 type 을 data type 이라고도 함 (물론 type 이 data type 을 포함하는 개념이라 type 이라고 해도 됨) 기본형에는 논리 (boolean), 문자 (char), 정수 (byte, short, int, long), 실수 (float, double) 총 8개의 data type 이 있음 논리형 boolean 은 다..
[자바의정석] 자바개발환경 구축하기
JDK 란 (Java Development Kit) JDK 란 Java Development Kit 의 줄임말로, 아래에 있는 자바를 개발하는데 필요한 프로그램들이 들어있는 Kit 이다. JVM (자바 가상머신, Java Virtual Machine) Java API 그 외 자바를 개발 하는데 필요한 프로그램들 즉 자바를 개발하려면 JDK 를 설치해야 한다. Mac 에서 JDK 경로 찾기 $ cd /Library/Java/JavaVirtualMachines/ # 여기에 설치한 jdk 가 있음 $ bin pwd /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home/bin $ bin ls appletviewer javac jfr jstack rmic ..