이것저것

[Java] 알아두면 좋은 정보들 본문

Java/Java 공부

[Java] 알아두면 좋은 정보들

곰태태 2020. 4. 15. 21:46
반응형
SMALL

자바란?
SUN에서 만들었다.
자바의 부모는 C다.
C가 객체지향으로 변하면서 C++ 이 탄생 C++의 문법으로 만든 게 JAVA
C는 어셈블리 언어

파이썬은 접근성은 쉽고 Java를 해봤으면 더 쉽게 접근할 수 있다.
옵션으로 해보는게 좋음
파이썬은 특화된 언어 (한쪽으로)

JavaScript가 Java가 죽어도 쓸 수 있음(광범위한 언어임)
대세를 이루는 언어
공식적으로는 java와 연관은 없음

c는 만약에 시간이 난다면 해보는게 좋음(AI 파트가 있기때문)
로봇 쪽으로도 연관
C++ 까지는 안 해도 좋지만 하면 좋음
언어는 할 수있는게 많을수록 좋음

c까지 할 수 있으면 인공지능 파트를 갈 수 있음
Java랑 C를 좀이라도 할 수 있다면 바로 인공지능에 진입할 수 있다.

c는 알고리즘이 있음
- 문제해결
마카를 만드릭 위해서는 뚜껑을 만들고 뚜껑이 맞을 때까지 깎는 것이 알고리즘
- 별도로 알고리즘을 만드는 것이 c언어


java는 알고리즘이 없음
- 문제 해결하지않음
- 문제를 해결해주는 패키지가 제공됨
마카 뚜껑이 이미 만들어져있고 조립만 하는 것이 자바이다


OOP
- 처음부터 객체 하나를 만들어주느 프로그램

하나하나 만들어져있는 객체를 가지고 조립을 해서 만드는 것을 객체지향 언어라고 한다.


함수적 스타일 = 람다식
람다의 중요성 = 이제는 람다가 없으면 프로그램 안됨
람다를 어디에 써먹냐
함수의 인수전달로 코드를 전달하고 싶은데 람다가 되기 전까지는 안됬음
람다는 제대로 마스터하자
람다를 모르면 진짜 힘듬, 람다만 알아도 어느정도는 수월하다고 하심

자바를 가지고 코드를 하지는않고 자바를 가지고 익힌 것을 가지고 코드짬

속도는 좀 떨어지더라도 안정적이게 사용하겠다. -> 자바의 관점
절대 속도 높일려는 것은 아님

동적, 정적
정적은 응용프로그램이 끝날대까지 고정
동적은 필요에따라 빼고 넣고 제거가 용의 함
막강한 오픈소스 라이브러리(OOP)


현업에서는 VScode를 씀 (eclipse는 거의 안 씀)


char는 양수만
short는 정수
single station 문자 (char) double station 문자열


메모리 절약을 위해서 float를 사용한다.

진법은 기본
2진법 8진법 10진법 16진법
손코딩은 진법 문제 많이 나옴

String은 기본타입이 아니다. (클래스 타입)
String 객체라고 한다.
 
타입캐스팅 = 강제형 변환을 의미
받는 타입에 맞게끔 주는 놈이 억지로 맞춰서 주는 것
잘 발생하지 않는 일이라고 한다.
short는 쓰지 않는 편이 좋다.
int나 long으로 쓴다.



x++보다 ++x가 좀 더 선호된다.
x = x + 1도 1씩 증가하지만 속도가 느려서 x++이 더 많이 쓰인다.
x = x + 5과 x += 5은 속도는 똑같지만 x += 5이 컴파일이 더 빠르다.

if~else는 삼항 연산자가 될 수 있다.
삼항 연산은 if~else의 간략 행위이다.

a = b++; 이 많이 쓰일 것 같지만
실제로는 가독성 때문에
a = b;
b++;
로 많이 쓰인다.


(), 산술, 관계, 논리 순으로 우선순위다.
ex if(a > 2 && b++)
 b++ -> a > 2 -> &&으로 일어난다.

int x = +100;
int y = -100;
여기서 +를 적는 것은 가독성 때문에 맞추려고 적는다.

 

exception을 사용하는 이유는 프로그램을 최대한 종료하지 않기 위해서 사용한다.
exception에 대해서 아는 거 4가지만 말하라는 것이 면접에 나올 수 있다.

ex) NullPointException(존재하지않는 레퍼런스를 참조), IOException(입출력 동작실패 또는 인터럽트 시 발생), ClassCastException(변환할수 없는 타입으로 객체를 반환시), ArithmeticException(정수를 0으로 나눌때),

ArrayIndexOutOfBoundsExcetion(배열의 범위를 벗어난 index를 접근할 시 발생) 등...



double, float는 절대로 동일 비교 연산하지 마라.(미세한 값 차이 발생하는 경우가 아주 빈번)

A==A && B==B && C==C 조건문 연산이 가능 ||(OR)도 가능
논리 ||(OR) 의 경우에 앞의 값이 참일 경우, 뒤의 조건을 확인도 하지 않기 때문에

뒤에 만약 증감 연산자 ++/-- 가 존재하더라도 더하지 않기 때문에 상당히 위험하다.

반응형
LIST

'Java > Java 공부' 카테고리의 다른 글

[Java] 람다식, interface  (0) 2020.04.22
[Java] 객체 지향 프로그래밍  (0) 2020.04.16
[Java] break문과 continue문  (0) 2020.03.29
[Java] keyCode 사용법  (0) 2020.03.29
[Java] 연산자의 종류  (0) 2020.03.29
Comments