whiteship
-
[Java-15] 관계 연산자Java 2020. 11. 27. 14:17
Comparison Operator 1. 관계 연산자(Comparison Operators) 관계 연산자는 Equality operators, 즉 연관된 서로의 값들이 같은지 비교하거나, 넓게는 그 값보다 크거나 작음을 서로 비교하는 비교하는 연산이다. 보통 이제 만약 두가지의 타입을 비교하게 된다면 결과 값은 true, false 를 반환하게 된다. 그래서 전형적으로 If(boolean 조건) while(boolean 조건)에서 대부분 사용하게 된다. 예를들어서, 다음과 같은 방식으로 사용하기 쉽다. 이제 여러가지 관계 연산자를 알아보도록 하자. ' = = ' 연산자 (EqualsOperators) ‘==’ 연산자는 기본적으로 프리미티브 타입에 한해서 두 피연산자의 값이 같으면 true, 아니면 fal..
-
[Java-13] 자바 산술 연산자Java 2020. 11. 27. 14:06
Java Arithmetic Operator 1. 산술 연산자 (Arithmetic Operator) 산술 연산자는 부동 소수점, Characters, 정수형과 함께 사용할 수 있다. (Boolean 연산자를 제외하고, 기본형 타입은 전부 사용할 수 있다.) 만약 우리가 자바에서 실수(부동 소수점) + 정수를 한다면, 실수 산술 연산자가 진행 되고, 그렇지 않다면 정수 연산이 진행된다. 왜 그렇게 될까? 라고 생각을 한다면, 타입 캐스팅 블로그 포스팅을 보고오면 감이 올 것이다. 더하기 (+) Addition ‘+’ 연산자는 두개의 숫자를 더해줍니다. 또한 + 연산에서 String 타입이 있으면 이 두가지 타입을 연결해준다. 만약 피연산자 중 하나가 String 타입이면, 즉 “String” + 3 이면..
-
[Java-12] 자바 배열Java 2020. 11. 20. 17:56
Java Array 바로 본론으로 들어가자, 1. 배열 (Array) 배열은 원시타입이나, 참조타입으로 구성된 특별한 객체 이다. 배열에 담기는 값들은 배열의 타입에 의해서 결정이 되고, 배열의 넘버링, 즉 사이즈는 0부터 시작되고, 배열에 들어가는 데이터로 사이즈가 결정이 됩니다. (배열에 들어가는 원소의 수가, 배열의 수가 된다.) 또한 배열을 생성할 때, 명시적으로 배열의 사이즈를 결정해줄 수 있습니다. 배열의 원소로 들어가는 타입은 대부분 자바에서 유효한 (valid 한) 타입으로 들어가고, 배열의 타입도 포함 가능합니다. 이 말은, Java 가 배열안에 배열을 만드는 ‘다차원’의 배열의 종류도 지원을 해준다는 뜻 입니다. 2. 배열 타입(Array Type) 배열 유형은 자바 클래스와 마찬가지로..
-
[Java-11]타입추론 varJava 2020. 11. 20. 17:49
Java var type-inference 자바에서도 타입추론을 지원한다는걸 오늘 처음 알았다. 그도 그럴만도 한게, 평소 jdk8만 사용을 하던지라, 타입추론이 가능한지 몰랐다. 결론은 자바 10 부터 type - inference(타입 추론)이 된다는 것이다. 1. 타입추론 이란? 타입추론은 말그대로 개발자가 변수의 타입을 명시적으로 적어주지 않고도, 컴파일러가 알아서 이 변수의 타입을 대입된 리터럴로 추론하는 것이다. 대표적인 타입추론 언어는 자바스크립트, 코틀린, 스위프트 등이 있다. 지금 까지 자바9 에서는 우리가 지역변수를 선언할 때, 명시적인 타입을 적고, 선언하였으며, 그 변수에다가 초기화를 시켜도 되고, 나중에 변수에다가 값을 집어 넣어도 무방하였다. 이런식으로 지역변수를 선언할 수 있었..
-
[Java-10]변수의 스코프&라이프타임Java 2020. 11. 20. 17:39
Variable's scope & life cycle 저번에는 타입 캐스팅과 프로모션에 대해서 알아보았다. 이번에는 변수의 스코프와 라이프타임에 대해서 알아보도록 하자. 1. 스코프 (Scope) 먼저 우리가 변수를 선언한다고 가정을 하자, 이 변수의 사용 범위는 어디까지일 까? 이 변수의 사용범위는 선언된 클래스의 중괄호 내에서 사용가능하다. 이런 범위를 우리가 ‘스코프’라고 부르는 것이다. 좀더 쉽게 생각해보자, 이해할 때 집합과 섞어서 생각해보면 된다. Class 안에 var1이란 변수가 선언 됬으면 var1의 스코프는 클래스 전체에서 놀 수 있다. 즉, foo() 메소드 안에서도 들어갈 수 있다는 얘기다. 하지만 var2는 어떨까? 저 변수의 스코프는 foo() 안에서의 초록색 칸에서만 사용할 수..
-
[Java-9] 타입변환, 형변환Java 2020. 11. 18. 22:04
Primitive Type Conversions 자바는 integer와 부동소수점 값(실수) 으로 타입을 변경할 수 있는데, 이게 사실 char형도 숫자로 표현되어 모든 유니코드에 1:1 매핑이 되기 때문에, char 타입도 타입 변환이 가능해진다. 오직 안되는거는 boolean 타입만 다른 원시타입으로 바꿀 수 없다. 타입을 변경하는데에는 2가지 종류가 있는데, ‘프로모션’ 과 ‘캐스팅’ 방식이 있다. Java in Nutshell 에서는 ‘widening conversion’, ‘narrow conversion’ 넓은 변경, 좁은 변경 이렇게 나와있다. 뭔가 ‘widening conversion’, ‘narrow conversion’ 이 좀 더 이해하기 편할 것 같은데, 차근차근 설명해 도록 하겠다...
-
[Java-8] 자바 변수 선언과 초기화Java 2020. 11. 18. 11:49
저번에는 리터럴과 각 변수의 특징에 대해서 알아보도록 하였다. 이제는 변수를 어떻게 선언하는지 그리고 초기화는 어떻게 진행되는지에 대해서 알아보도록 하자. 먼저 이 주제는 타입에대해서 얘기하기전에 먼저 설명하는게 좋지 않았을까 라는 생각을 하지만.. 각설하고 바로 얘기를 해보자. 1. 변수 선언 변수를 사용하기 위해서는 변수를 선언해야 한다. 변수를 선언하는건 간단하다. 이렇게 처음에 타입을 선언을 하고 바로 뒤에 변수 이름을 집어 넣으면 된다. 뭐 사실 변수를 ‘선언'만 하는 건 크게 어렵지 않다. 물론 여러개의 변수를 선언하는 것도 가능하다. 변수를 선언하는건 크게 어렵지 않으니, 네이밍 컨벤션에 대해서 얘기해보자 물론 여러가지 방식이 있다. 지금 설명하는 얘기는 ‘통상’적으로 말하는 자바 언어의 네..
-
[Java-5] JDK& JRE, 자바 실행Java 2020. 11. 11. 14:12
전 글에서는 JVM에 구조에 대해서 알아 보았다. 이제 JRE와 JDK 에 대해서 알아보도록 하자. JDK와 JRE는 무엇인가? 꽤나 길게 , JVM에 대한 두가지 포스팅을 올렸다. 이렇게 길게 설명하는게 좋을지 안좋을지 확신이 서지는 않지만 계속 이어나가도록 하겠다. 글을 쭉 읽어왔으면 java가 어떻게 실행되는지 이해 갔을거라고 확신한다. 자 그럼 JVM 이외에 JRE와 JDK에 대해서 알아보도록 하자. 1. JDK 를 왜 사용해야 할까? JDK는 자바 프로그램을 작성하고, JRE를 실행하는데 필요한 툴들을 가지고 있다. 그리고 컴파일러 (javaC) 와 자바 어플리케이션 런처, Appletiviewer 등을 포함하고 있다. 컴파이러는 자바 코드르를 바이트 코드로 변경을 해주는데 이는 JVM이 읽을 ..