전체 글
-
[Java-17] 자바 InstanceofJava 2020. 11. 27. 14:23
Java Instanceof Operator Instanceof 연산자(instanceof operator) ‘instanceof’ 연산자는 객체와 자바의 타입에 긴밀하게 밀점하여있습니다. 만약 자바를 처음 공부하시는 분이라면, 객체(Object)에 대해서 먼저 알아보고 이 글을 읽었으면 좋겠습니다 :D ‘instanceof’ 의 기본 형식은 이렇습니다. ***A instanceof B instanceof 는 연산을 하기위서 A 부분에는 객체 Object 또는 배열 값(value)가 필요하고, 오른쪽 피연산자에는 레퍼런스 타입이 들어가야 합니다. 이런식으 instanceof 로 int 와 같은 primitive를 연산할 수 없다는 특징을 가지고 있다. instanceof는 객체의 instance 나, 배..
-
[Java-16] 논리 연산자Java 2020. 11. 27. 14:21
Boolean or Logical Operators 1. 논리 연산자(Boolean or Logical Operators) 우리가 지금까지 봐 왔듯이 , 비교 연산자는 두 수를 비교를 해서, 그 결과 값을 boolean(TRUE, FALSE) 를 반환하고, 우리는 아마, if문이나 for문을 통한 루프, 연속된 조건이 체이닝 걸렸을 때(Branching and Looping statements) 많이 사용했을 것이다. 한가지의 상황에서만 대처하는게 아니라 보통 2가지 이상(여러개의) 상황을 비교해야 하기 때문에 우리는 Boolean 연산자 *논리연산자 를 사용해서 Multiple한 비교를 진행할 수 있다. 논리 연산자는 피연산자에게 Boolean *참/거짓 값을 받아야 한다. 그리고 값을 통해 연산을 하..
-
[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-14] 비트 연산자와 쉬프트 연산자Java 2020. 11. 27. 14:12
Bitwise and Shift Operator 1. 비트 연산자 (Bitwise) 비트연산과 쉬프트 연산은 low-level 의 연산자이다. 보통 개별의 비트를 integer 값으로 만들려 할 때, 많이 사용하게 된다. 비트 연산은 사실 low-lovel(네트워킹 작업)을 하는 경우를 제외하고는 모던 자바쪽에서는 잘 사용하지 않는 연산이긴 하다. 보통 flag 를 이용한 테스트를 위해 사용한다고 한다. flag에 대해서 알고 싶다면 이 블로그를 참고하면 좋다. 일단 우리가 bit를 사용하는 연산을 이해하기 위해서는 ‘바이너리(binary)’와 ‘보수(음의 정수 표현을 위해)’에 대해서도 알고 있어야 한다. 바이너리와 보수에 대해서는 따로 언급하지는 않고, 적절한 공부 링크를 적어서 학습할 수 있도록 하..
-
[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() 안에서의 초록색 칸에서만 사용할 수..