Language

    [JavaScript] 제어문과 배열

    - 조건문 문법 if (표현식1) { 표현식1의 결과가 참일 때 실행하고자 하는 실행문; } else if (표현식2) { 표현식2의 결과가 참일 때 실행하고자 하는 실행문; } else { 표현식 1에도 포함하지 않고 표현식 2에도 포함되지 않을 때 실행되는 실행문; } 예제 var x = 10, y = 20; if (x == y) { document.write("x와 y는 같다."); } else if (x y인 경우 document.write("x가 y보다 크다."); } - 삼항 연산자 문법 표현식 ? 반환값1 : 반환값2; - switch문 문법 switch (조건 값) { case 값1: 조건 값이 값1일 때 실행하고자 하는 실행문; break; case 값2: 조건 값이 값2일 때 실행하고자..

    [Java] 추상 클래스 VS 인터페이스

    추상 클래스 (Abstract Class) 추상 클래스는 일반 클래스와 비교해서 크게 다른 점은 없다. 단지 추상 클래스에 추상 메서드를 작성하여 상속받는 자식 클래스에서 메서드를 완성하도록 유도하는 클래스이다. 그래서 추상 클래스를 '미완성 클래스'라고 한다. 추상 클래스를 선언하는 방법은 class 앞에 abstract라는 키워드를 붙여주면 된다. Ex) public abstract class abstractClassEx 인터페이스 (Interface) 인터페이스는 일반 클래스와 비슷한 구조를 보여준다. 추상 클래스는 '미완성 설계도'라고 한다면 인터페이스는 '기본 설계도'라고 할 수 있다. 인터페이스를 선언하는 방법은 class 대신 interface를 작성해주면 된다. Ex) public inte..

    [Java] static 키워드에 대해 알아보자 !

    Java는 어떻게 동작하지?( + 메모리 영역) Java란? Java는 프로그램을 만드는 프로그래밍 언어 중 하나이자 대표적인 객체지향 언어이다. 운영체제와 상관없이 JVM(Java Virtual Machine)만 있으면 코드를 실행할 수 있다. 가비지 컬렉션이 존재하 gwamssoju.tistory.com 우리가 코드를 짜면서 사용하는 static에 대해 알아보려고 한다. 먼저 메모리 구조에 대해 아는 것이 static을 이해하는 데 도움이 될 것이다. 그러니 메모리 구조를 간략하게 설명하고서 static에 대해 알아보도록 하자! static의 의미 자바의 메모리 구조에는 Method Area와 Heap Area(그밖에 더 있음)가 존재한다. 각각의 역할을 아래와 같다. 우리가 만든 클래스는 Metho..

    [Java] 오버로딩 VS 오버라이딩

    자바를 처음 접했을 때, 오버로딩과 오버라이딩을 구분하기가 매우 힘들었다. 그래서 혹시 필자와 같은 어려움을 가진 분들에게 조금이나마 도움이 됐으면 하는 마음으로 포스팅을 진행했다. 오버로딩(Overloading) 오버 로딩은 같은 메서드지만 매개 변수만 다르게 한다면 얼마든지 다른 기능을 하도록 할 수 있다. 조건 메소드의 이름은 같아야 한다. 매개 변수의 개수가 달라야한다. 만약 매개 변수의 개수가 같다면 데이터 타입이 달라야한다. 리턴형은 같아도 되고 달라도 된다. 오버로딩의 예를 예제를 보면 '아 ~ 이거구나'할 것이다. 예제 public class OverloadingEx { public static void main(String[] args) { Practice practice = new Pr..

    [Java]스트림(stream)(3/3)

    최종 연산 - forEach() Stream stream = Stream.of("하나","둘","셋","넷"); stream.forEach(System.out::println); - 조건 검사 findFirst(), findAny() IntStream intStream1 = IntStream.of(9,7,8,6,5,3,4); IntStream intStream2 = IntStream.of(9,7,8,6,5,3,4); OptionalInt result1 = intStream1.sorted().findFirst(); // 정렬 후 첫 번째 요소 반환 System.out.println(result1.getAsInt()); // 3 OptionalInt result2 = intStream2.sorted().fi..

    [Java]스트림(stream)(2/3)

    ▷ 스트림의 연산 중간 연산 : 연산 결과가 스트림인 연산. 스트림에 연속해서 중간 연산할 수 있다. 최종 연산 : 연산 결과가 스트림이 아닌 연산. 스트림의 요소를 소모하므로 단 한 번만 가능하다. 중간 연산 1. 스트림 자르기 - skip(), limit() 2. 스트림의 요소 걸러내기 - filter(), distinct() 3. 정렬 - sorted() 4. 변환 - map(), flatMap() 5. 조회 - peek() - 스트림 자르기 - skip(), limit() * skip()은 요소를 건너뛰고, limit()는 요소를 제한한다. IntStream intStream = IntStream.rangeClosed(1,10); intStream.skip(3).limit(5).forEach(Sy..

    [Java]스트림(stream)(1/3)

    많은 수의 데이터를 다룰 때, 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기 위해 for문과 Iterator를 이용해서 코드를 작성해왔다. 이런 방법은 코드도 길고 알아보기도 어렵다. 또한 재사용성도 떨어진다. 이러한 문제점들을 해결하기 위해 만들어진 '스트림'에 대해 알아보자! ▷ 스트림의 특징 ○ 스트림은 데이터 소스를 변경하지 않는다. → 스트림은 데이터 소스로부터 데이터를 읽기만 할 뿐, 데이터 소스를 변경하지 않는다는 차이가 있다. 필요하다면 정렬된 결과를 컬렉션이나 배열에 담아서 반환할 수 있다. ○ 스트림은 일회용이다. → 스트림은 Iterator처럼 일회용이다. 그렇기 때문에 한 번 사용하면 다시 사용할 수 없다. 필요하다면 스트림을 재생성해야 한다. ○ 스트림은 작업을 내부 반복으로..

    [Java] 람다식

    람다식이란? 메서드를 하나의 식으로 표현한 것이다. 람다식은 함수를 간략하고 명확하게 표현하게 해준다. 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, '익명 함수'라고도 한다. 람다식 작성하기 // 두 값 중에서 큰 값을 반환하는 메서드 int max(int a, int b){ return a > b ? a : b; } // 아래와 같이 표현할 수 있다. (int a, int b){ return a > b ? a : b; } 반환값이 있는 메서드의 경우, return문 대신 식으로 대신 할 수 있다. 식의 연산 결과가 자동적으로 반환값이 된다. 이때는 문장이 아닌 식이므로 끝에 ';'을 붙이지 않는다. (int a, int b) -> {return a > b ? a : b;} -----> (i..

    [JavaScript] 타입

    타입 자바스크립트의 기본 타입은 크게 원시 타입과 객체 타입으로 구분할 수 있다. 원시 타입(primitive type)은 1. 숫자(number) 2. 문자열(string) 3. 불리언(boolean) 4. 심볼(symbol) : ECMAScript 6부터 제공됨 5. undefined 객체 타입(object type)은 6. 객체(object) - 숫자 자바 스크립트는 다른 언어와 달리 정수와 실수를 구분하지 않고, 모든 수를 실수 하나로 표현한다. 또한, 매우 큰 수나 매우 작은 수를 표현할 때는 e 표기법을 사용할 수 있다. var firstNum = 10; // 소수점을 사용하지 않은 표현 var secondNum = 10.00; // 소수점을 사용한 표현 var thirdNum = 10e6; ..

    [JavaScript] 자바 스크립트 시작

    자바 스크립트 문법 var x = 10; var result = x + 5; 자바 스크립트는 대소문자를 구분한다. 변수나 함수 이름, 예약어 등을 작성할 때는 대소문자 구별에 유의해야 한다. var javascript = 10; // 변수 javascript와 JavaScript는 서로 다른 두 개의 변수로 인식됨. var JavaScript = 20; Var Script = 30; // 변수의 선언은 var 키워드로만 할 수 있으면 Var는 동작하지 않음. - 리터럴 리터럴은 직접 표현되는 값 그 자체를 의미한다. 12 // 숫자 리터럴 "JavaScript" // 문자열 리터럴 '안녕하세요' // 문자열 리터럴 true // 불리언 리터럴 - 식별자 식별자는 변수나 함수의 이름을 작성할 때 사용하는 ..