본문 바로가기

Programming Language 👅5

[Java] 자바는 Call by Value! 🗣 Call by Value 와 Call by Reference란? Call by Value는 함수의 인자를 전달할 때 값을 전달하는 방식 Call by Reference는 주소를 전달하는 방식 📌 자바는 Call by Value방식을 사용하며, Call by Reference는 존재하지 않는다. the Java authors choose to only include one simple idea - pass-by-value, with no default values or optional parameter (overloading often provides a satisfactory alternative), no variable length parameter lists (added finally in Jav.. 2023. 5. 19.
[Java] 제네릭(Generic) Generic 🧇 모든 종류의 타입을 다룰 수 있도록, 클래스나 메소드를 일반화된 타입 매개 변수(generic type)를 이용하여 선언하는 기법 C++의 템플릿과 유사하다 템플릿(template) : 템플릿은 '형판'이라는 뜻이다. C++의 템플릿이나 자바의 제네릭은 메소드나 클래스 코드를 찍어내듯이 생산할 수 있도록 일반화(generic)시키는 도구이다. 1. Generic 사용법 컬렉션 클래스에서 타입 매개 변수로 사용하는 문자는 다른 변수와 혼동을 피하기 위해 일반적으로 하나의 대문자를 사용한다. 아래는 관례적으로 타입매개변수에 많이 사용하는 문자이며, 반드시 일치할 필요는 없다. [ 제네릭 선언 ] 1) 클래스 및 인터페이스 선언 public class ClassName { ... } publ.. 2023. 4. 25.
[Java] Stream API Java Collection Framework, JCF Java 언어에서 사용되는 데이터 구조를 관리하고 처리하기 위한 라이브러리 집합 Collection(List, Set, Queue)과 Map으로 구성 되어 있다. List: 순서가 있는 데이터를 저장 데이터의 중복을 허용 ArrayList, LinkedList 등 Set: 순서가 없는 데이터를 저장 데이터의 중복을 허용하지 않음 HashSet, TreeSet 등 Queue: 데이터를 순서대로 저장하고, 데이터를 추가할 때는 뒤쪽에, 삭제할 때는 앞쪽에서부터 처리 LinkedList, PriorityQueue 등 Map: Key-Value 쌍으로 데이터를 저장 Key는 중복될 수 없다 HashMap, TreeMap 등 Q. 왜 자바에서 배열보다 Col.. 2023. 4. 10.
[Java] 자바의 컴파일 과정 👶 자바의 탄생 자바는 애초에 일반 컴퓨터에 사용될 목적으로 설계된 것이 아니다. 1991년 선마이크로시스템즈(SUN Microsystems)는 제임스 고슬링(James Gosling)이란 엔지니어를 중심으로 그린 프로젝트(Green project)라는 이름으로 가전 제품의 적합한 소프트웨어 언어를 개발하기 시작했다. 기존의 언어로 작성된 프로그램들은 컴퓨터 플랫폼(platform) 간에 호환성이 없어, 플랫폼에 따라 소스를 다시 컴파일하거나 아예 프로그램을 다시 작성해야하는 단점이 존재했다. 이에 선마이크로시스템즈는 플랫폼 독립적(platform independent)이며 메모리 사용량이 적은 새로운 언어와 실행 체계를 발표했고, 처음에는 이 언어의 이름을 오크(oak)라 지었다. 이 언어는 인터넷과 .. 2023. 3. 27.
[Java] 상속과 오버라이딩(inheritance & overriding) 👩‍👦 상속(inheritance) 기존 클래스를 재사용하여 새로운 클래스를 정의하는 것 자식(하위, 파생) 클래스가 부모(상위) 클래스의 멤버를 물려받는 것 Class Vehicle { public int speed; public int getSpeed() { return speed; } public void setSpeed(int speed) { this.speed = speed; } } class Car extends Vehicle { } public class Test { public static void main(String[] args) { Car A = new Car(); A.getSpeed(); } } 상속 대상 : 부모의 필드와 메소드 상속 효과 : 부모 클래스를 재사용하여 자식 클래스를.. 2023. 2. 28.