상세 컨텐츠

본문 제목

JAVA 배우기

프로그래밍/코틀린배우기

by 아싸호랑나비 2023. 1. 7. 15:26

본문

업무상 앱개발할일도 있을거같고 배우라고 하기도하고 나도 파이썬말고 새로운 언어를 배우고싶어서 등등의 이유로

앱개발을 위해 코틀린을 배우려했으나 자료가 너무 부족한것같아서 힘들어서

유치원수준으로 떠먹여주는 자료가 많은 그냥 자바배우기로했다

코틀린배우기 카테고리안에  JAVA배우기 글이 올라온건 이런이유다

 

공부방법은 책이다 파이썬도 책으로 배웠다 괜찮았다

 

modul 사이에 requires java.se; 를 입력하기

왜? java SE가 제공하는 모든 모듈이 필요함을 의미한다고 한다 아하

언제나 이걸 써야된다고 하면 그냥 자동화 시키면 안될까 하하

저장후 x로 닫기

 

헬로우 월드를 입력해보자

모듈에서 패키지?를 실행했다 와진짜 왤케 복잡한데다가 이해도 안가는걸까 허허

 

코드를 실행시키는방법

이클립스 기준 run 버튼을 눌러준다 음 쉽군

 

하지만 다른방법도 있다고?

책에서는 친절하게 명령프롬프트 또는 터미널과 같은 환경에서 코드를 실행시키는 방법도 알려준다

와근데 개복잡하다 그래도 알게된게 있다면 

컴파일이란? 소스코드를 기계어로 바꾸는것이고

자바는 소스코드파일과 기계어파일 총 두가지가 있다는것

그리고 hello, world같은 기본적인 출력을 사용할때도 모듈을 import 해야된다는것 등을 배운것같다

 

소스코드 분석 그리고 잡다한것들

public class: 공개 클래스라는 뜻

클레스 이름 => 파일명과 일치해야함

 

제일 먼저 main() 메소드를 찾아 실행함 메소드가 뭐지

프로그램 실행 진입점이라고 한다고 함

주석부분은 스킵 c랑 비슷한듯 c이야기가 나와서 하는말인데

c보다 자바가 어려운것같다는 느낌을 지울수가 없다 c도 파일을 두개 주진않았는데 개같다 번잡하다 그리고

세미콜론을 이용해 실행문을 만든다 끝에 ;를 붙여야하는게 어떻게 보면 귀찮지만 짧은 내용을 여러줄에 걸쳐 안써도 된다는점은 좋은것같기도하다

 

자바에선 파일과 페키지가 반대에요?

새로운 소스코드 파일을 만들었다 

먼저 패키지를 만든후에 그안에 클래스를 만든다 클래스는 내가 아는 파일 개념인것같다

그러니까 파일안에서 import를 할필요는 없는것같다

 

드디어 나왔다 가장 기초적인 산수 섹션!

파이썬과 똑같은데 그냥 가장앞에 변수타입만 지정해주면 된다 그리고 맨마지막에는 세미콜론

이과정을통해 변수를 만드는법(타입을 정하고 숫자입력)을 배웠다

 

마무리

챕터 1 마무리 부근에 용어정리가 되어있는데 괜찮은것같아서 공부하려고 한다

바이트 코드 파일: 자바 소스 파일을 javac 명령어로 컴파일한 파일

JVM: 바이트 코드 파일을 운영체제를 위한 완전한 기계어로 번역하는 역할

 

그러니까 총 3단계를 거치는것이다

소스코드 => 바이트코드 => 운영체제를 위한 기계어

 

파이썬에서 이런걸 자동으로 했다면 자바는 뭔가 이런것까지 컨트롤할수있으니까 알려주는거겠지

참고로 소스 파일의 확장자는 *.java이고 바이트 코드 파일의 확장자는 *.class이다

 

메인 메소드: 프로그램 실행 진입점

 

자바에서는 문자열과 변수를 더할수있다

파이썬의 f스트링처럼 쓰인다

문자열과 변수를더할수있다(변수는 정수여도 된다)  다만 println 구문에서만 활용되는 느낌일것같다

 

변수 사용 범위

자바는 함수형 언어다(아..아닌가?)

변수는 중괄호 블록 내에서 선언되고 사용된다고 한다

C도 그렇고 자바도 그렇고 중괄호를 참좋아한다  다시 돌아와서 

로컬변수는 메소드 블록 내부에서만 사용되고 메소드 실행이 끝나면 메모리에서 자동으로 없어진다고 한다

파이썬에서 함수내부의 변수가 함수밖에서 호출이 불가능한것과 같다

 

쉽게 설명하자면 중괄호 안에서 생성된변수는 해당 중괄호 안에서만 사용할수있다

중괄호는 중복될수있다 n차원 리스트처럼

그리고 예제를 보니까 자바에서는 if문하고 for문도 중괄오 안에서 실행하는것같다 

 

아래 코드를 실행하면 에러가 뜨게된다 v2변수를 사용할수없기때문이다

package sec03.exam02;

public class VariableScopeExample {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int v1=15;
		if(v1>10) {
			int v2;
			v2 = v1 -10;
		}
		int v3 = v1 + v2 +5;
	}

}

변수, 변수 선언, 변수 사용, 변수 사용 범위에 대해서 배웠다

 

다양한 정수 리터럴을 int타입에 저장후 10진수로 출력

정수 리터럴이란 8진수 2 진수 16진수 이런거 말하는거같다 이런것들을

어떻게 표시하는지 배웠다

2진수 앞에 0b붙이기

8진수 그냥 0붙이기

16진수0x붙이기 

이정도면 알고 넘어가면 될것같다