Java공부(코딩)

코딩초보 Java 공부 1일차

동곤일상 2024. 12. 6. 16:33
반응형

자바 복습 1일차 저만의 우당탕탕 블로그 시작하겠습니다

( 너무기본적인 내용들은 생략 하였음)

원래 InteliJ 사용하다가 한달뒤쯤에 학원을 들어가는데 거기서는 Eclipse 사용한다고하여

적응할 겸 조금씩 해보겠어요 ~  쌩 초보분들은  읽어보면 도움은 될거에요.

자바(Java) 란?

프로그래밍언어 , Pc프로그램을 만드는데 사용

실제환경(JRE) + 개발도구(JDK) + 라이브러리(API)

 

자바는 어디에쓰이냐?

가장 유용하게는 웹사이트를 만들 수 있다 .(Spring Boot)

또한 빅데이터를 사용가능(hadoop)

 

왜 자바(Java)를 쓰는가?

모던프로그래밍언어(객체지향 + 함수형) 

실무에서 가장 많이 사용

 

자바의 특징

객체지향언어 ,  자동메모리관리(GC(가비지컬렉션))

멀티쓰레드지원. ,   수많은 라이브러리(개발을 위한 도구)

운영체제에 독립적(Mac OS , Window , Linux 모두에서 사용 가능) ==> JVM(자바가상머신 , 어디서든 실행)때문에 가능한 일


1.변수

1. 변수의 타입(Data type)

기본형(Primitive type)

- 8개 (boolean, char, byte, short, int, long,

float, double)

- 실제 값을 저장

 참조형(Reference type)

- 기본형을 제외한 나머지(String, System 등)

- 객체의 주소를 저장(4 byte, 0x00000000~0xffffffff)

 

 

2.변수의 명명 규칙

1. 대소문자가 구분되며 길이에 제한이 없다.

- True와 true는 서로 다른 것으로 간주된다.

2. 예약어(Reserved word)를 사용해서는 안 된다.

- true는 예약어라 사용할 수 없지만, True는 가능하다.

3. 숫자로 시작해서는 안 된다.

- top10은 허용하지만, 7up은 허용되지 않는다.

4. 특수문자는 ‘ 와 ‘$만을 허용한다.

- $harp은 허용되지만 S#arp는 허용되지 않는다

 

3. 변수, 상수, 리터럴

변수(variable) 하나의 값을 저장하기 위한 공간

상수(constant) 한 번만 값을 저장할 수 있는 공간

리터럴(literal) 그 자체로 값을 의미하는 것

int score = 100;

score = 200;

 

char ch = A;

String str = abc;

 

final int MAX = 100;

MAX = 200; // 에러


2.연산자

연산자 우선순위

(1등은 () : 괄호 )

연산자 종류**

산술 연산자: , *, `/` , `%(나머지 연산자)

증감(증가  감소) 연산자: ++ , --

비교 연산자: `== , != , > , < , >= , <=

논리 연산자: `&&` (AND), `||` (OR), `!` (NOT)

대입 연산자: =, +=, -=, *=, /=` , `%=`

삼항 연산자: `? :`


연산 ex)

여기서 왜 나눗셈만 double 형으로 바꿨는지 생각을 해

 

int div = a/b  

 ==>  div =2;

 

double div = (double)a / (double)b

==> div = 2.5; 

 

int형끼리의 계산은 소수점 무시

 

모두double형으로 형변환 후 계산


전위 후위 증감연산자

 

증감 연산자가 변수 앞에 오는 경우를 **전위 증감 연산자**라고 하며, 경우에는 증감 연산이 먼저 수행된 나머지 연산

수행된다.

 

증감 연산자가 변수 뒤에 오는 경우를 **후위 증감 연산자**라고 하며, 경우에는 다른 연산이 먼저 수행된 증감 연산이 수행된다

(d에 c값을 대입 후 c값만 증가시킴)


비교연산자 

주의점 ( = 과 ==은 다르다)

= : 변수에값을 넣는 대입 연산자.

== : 동등한지 비교하는 비교연산자


문자열 비교

문자열이 같은지 비교할 때는 `==이 아니라 `.equals()` 메서드를 사용해야 한다.

`

문자열은 기본형이 아니라 참조형이다

인스턴스를 각각 만든다고 생각하면 된다. 다른 인스턴스이므로 == 로 비교시 false

 

eqauls 비교 = true

지금은 부분을 이해하기 어려우므로 지금은 단순히 문자열의비교는 `.equals()` 메서드를 사용해야 한다 정도로 알고 있자.

이 예제에서 1번째 sout문의 dong == gon 을 보면 false가 나온 것을 확인할 수 있다.

String(문자열)은 ==비교를 지양하고 eqalus 비교를 사용하자 

주석에보면  문자열풀 이라는 단어가있는데

새로만드는 것이 아닌 그냥 단순하게 만들어진 인스턴스를 참조한다고 생각을 하자


논리 연산자

논리 연산자는 `boolean` 형인 `true` , `false` 비교하는데 사용한다.

논리 연산자**

`&&` (AND) : 둘다 참이면 참 , 아니면 거짓

`||` (OR) : 둘 중 하나라도 참이면 참 , 아니면 거짓

`!` (NOT) :  부정  ( 참이면 거짓 반환)

 

다음 예를 보면서 이해해보자 (최대한 간단하게 썼어요)


대입 연산자

**축약(복합) 대입 연산자**

산술 연산자와 대입 연산자를 한번에 축약해서 사용할 있는데, 이것을 축약(복합) 대입 연산자라 한다.

연산자 종류: `

+= , -= , *=  , `/=` , `%=`

연산자는 연산과 대입을 한번에 축약해서 처리한다. 다음 왼쪽과 오른쪽의 결과는 같다.

( i = i + 3)` ==  ( `i += 3 )

 

예제로 손쉽게 이해해보자 !


깨알 예제 문제(간단한 합과 평균)

가장 기본적인것이다  설명에는 안적어놓은 scan 과 printf("%.3f)등은 대충 설명하자면...

Scanner : 숫자를 입력받는 함수

%.3f == 소수점3자리까지만 남긴다는 뜻