오늘의 요약 = java 시작인데 두통이..
오전 : JAVA & Data Type
INDEX
- TypeScript
- Java
- 기본 Data Type
- 특징
- 비트연산
- 실수는 == 비교 하지 않는다.
- 비트 연산
- 문자와 문자열을 구분하자
- SE : 단일 computer 동작 Application 작성. ( hwp , exe )
- EE : Network 추가. 기업용 목적
- TypeScript
- 아스키 코드
TypeScript
떠오르는 강자.
공부해보자.
JAVA
자바는 M.E (MicroEdition)에서 시작되었다.
자바는 펌웨어를 만들기 위해 탄생.
java란
여러 도구들을 불러와 실행하는 CommandCenter다.
때로는 도구가 없다면 도구를 만들기도 한다.
기본 Data Type
- 숫자
- 실수
- 큰실수
- 12.5 ( 8칸 실수 )
- 작은실수
- 12.5f ( 4칸 실수 )
- 큰실수
- 정수
- 겁나 큰 정수 : 10L
- 기본 정수 : 12, 65
- 반정수
- 반반정수
- 문자 : (2칸 짜리) : A + 1 == B / 65 + 1 == 66 ()
- 실수
- 논리
- True
- False
String / 문자
문자와 문자열을 구분하자
'' 작은 따옴표는 문자가 아니다.
"" 큰 따옴표는 문자다. 정확히는 문자열을 묶는 참조 타입이다.
태생은 참조타입이나, 워낙 많이 사용하기에 기본타입처럼 사용한다.
"" 참조. 즉 주소를 반환한다.
공간 , 객체를 만드는 연산자
new.
객체 : 데이터들의 묶음.
80% 클래스 15% 인터페이스 2% Custom
타입별 차지하는 Byte 크기
메모리
- 물리적 메모리
- 논리적 메모리
Memory를 관리하는 놈이 O.S(운영체제)다.
물리적 메모리
컴퓨터에 장착된 RAM.
각각의 Byte 마다 구별된다, 주소로 , 각각의 바이트마다 주소로 지정 되어있다.
예
4gb => 1번째 바이트는 0번째 ( 42억 9천4~~ 번지가 있다)
마지막 바이트는 4,294,947,295 번지이다
32bit 컴퓨터라면 RAM의 최대 용량은 4gb이다.
32bit
32bit라는 것은 AderessLine or DataBus 가 32개 라는 의미.
논리적 메모리
응용프로그램이 실행될 때 물리적 메모리에서 특정부분의 영역을 할당받은 메모리.
메모리 추가 할당이 될때는, 새로운 공간에서 만들어지며, 주소는 기존 마지막 주소+1 이다.
할당받은 메모리는 응용프로그램(java)에서 논리적인 주소를 부여한다.
java의 해시코드라는 메소드가 논리적인 주소를 10진수로 나타낸다.
기본타입 보충
기본 타입
- 숫자
- 실수
- 정수
- 1,2,4,8 Byte 정수 , 2Byte 문자 (Unicode)
- 논리
- 1Byte
- True
- False
참조타입
객체타입 = 사용자 정의 타입
- 기본타입처렁 사용할 수 있는 문자열.
- 기본타입과 비슷하게 사용하는 배열.
- 클래스 : 자바에서 제공하는 클래스, 사용자가 필요에 의해서 만든 클래스.
- 인터페이스 : 자바에서 제공하는 인터페이스 , 사용자가 필요에 의해서 만든 인터페이스
- enum : 사용자가 필요에 의해서 만든 enum
특징 :
기본타입의 배열을 제외하고는 모두 대문자이다.
숫자
- 정수
- int
- short
- byte
- long
- char
- 실수
- float
- double
- 논리
- boolean
char 은 문자로 해석 해서 Data를 65 숫자로 입력해도, 아스키코드 65인 문자 A를 출력한다.
정리:
먼저 변수를 선언하고, new 연산자 이용해서 만들고, 데이터를 할당한다(사용한다).
컴퓨터 처리 순서.
// 정석
String iname; // 변수 선언하고
iname = new String("이름"); // 데이터를 만들면서 할당한다.
// 현재
//문자열은 빈도수가 높기에, 위 과정을 선언 과정을 데이터 할당과 동시에 한다.
크기:
참조타입의 변수 크기는 4byte다. (원래는 System bit를 따라가야 원칙) 64bit = 8 byte.
실제 데이터가 있는 곳을 가야한다.
배열 또한 4byte ( 참조형이다 .)
기본타입은 상자 안에 데이터가 있다. 참조타입은 주소를 알려줄 뿐이다. 메모리에 할당된.
왜?
참조타입은 주소를 저장하고있으니까, 논리적 AddressLine을 따라가야한다.
java에서 사용하는 max용량은 4gb이다. 환산하면 32bit 4byte 이다.
특징
객체지향언어.
함수가 존재하지 않다.
메소드만 있다. -> 소속이 있다 ( 클래스 )
C++은 절차지향 + 객체 지향.
타입에 엄격하다.
고정적이다. ( 자료의 종류가 바뀌지 않는다. )
문자와 문자열은 종류가 다르다.
진수별 데이터
16진수의 데이터 , 2진수의 데이터 등등.
구별할 줄 알아야 한다.
큰실수를 써라
데이터 아끼겠다고 작은 실수 보다 큰 실수 써라.
실수는 == 비교 하지 않는다.
실수는 정확한 연산 결과를 얻을 수 없다.
컴퓨터 처리 방식은 2진법, 실수가 5로 끝나면, 그나마 가까운 값을 얻을 수 있다.
동등 논리연산의 값은 True or False 이다, 단 실수는 값이 변할 수가 있어, 위험한 결과를 유발한다.
비트 연산
연산에서 속도가 제일 빠르다.
그것을 잘 하기 위해서는 2진수와 아스키 코드가 기반이 되어야 한다.
??? : 비트 연산을 모르거나 , 왜 쓰는지 모르는 사수에게는 배울것이 없다.
점심 : 야무지게 먹어야징
오후 :
keywords
- Class 구조와 멤버들
- Field
- Method
- Type별 기본값.
- LowLevel적 이해.
- 컴퓨터 관점으로 자료 구조
- 그림을 그려 시각화하자.
- Question
Class 구조와 멤버들
Class의 구조는 Field 와 Method로 2가지로 나뉜다.
필드
Field(변수) 안에 Method(함수) 포함 유무로,
LocalField , instanceField 로 나뉜다.
사용
LocalField(지역변수)
LocalField는 바로 사용 가능하다.
원래 있던 놈이니까.
InstanceField()
InstanceField는 만들어져야 사용가능.
: new라는 만드는 지역변수를 사용해야 가능.
Type별 기본값 (Default)
필드는 만들어진 시점에서 초기화 된다.
지역변수는 대입문(=)을 넣어야 된다.
stack영역은 만들어졌다가 필요 없어지면 사라진다.
동작은 stack 영역 안에서 실행된다.
Default
정수 : 0
실수 : 0.0
논리 : false
객체 : null
LowLevel적 이해.
java프로그램 실행시, 컴퓨터관점 처리 방식.
크게 3분할 , 4분할로 볼 수 있다.
- Static
- ThreadStack
- Heap
Static 영역
최상단의 위치.
지역변수,static 필드가 위치해 있다.
ThreadStack 영역
실행 공간이다. 부엌이며,작업대라고 볼 수 있다.
다른 영역에서 필요한 Data들을 불러와서 처리하는 느낌.
Heap 영역
데이터를 저장하는 공간.
Method 영역
Method들을 모아놓는 공간
Q. Static을 Class 멤버에서 빼는 이유
: 메모리 상에 Static이 가장 먼저 만들어진다. ( 할당 영역이 다르다. )
엄밀히는 멤버이긴 하지만 영역이 다른 출가한 구성원이라고 이해.
그림을 그려 시각화 할줄 알아야한다.
구조를 그림으로 만드는 연습을 하자.
low레벨 작동 방식으로 그림을 그려 시각화 하면, 이해할기 수월하며,
그렇게 해야한다.
Q.
- 자바에서 약속된 단어(키워드)가 무엇이 있는지 알 수 있는가?
- 지역변수와 필드(인스턴트)
- 클래스의 구성요소가 무엇인지 알 수 있는가?
- 생성될 메모리의 구조도
<!--
약속된 단어
공통점
: 소문자로 시작하며,연결되는 단어가 대문자 (camel).
지역변수와 필드와 메서드 구별
: 개발자가 필요에 의해서 만듬.
이름뒤 소괄호() 있으면 메소드(함수)이다.
지역변수와 필드의 차이
: 개발자가 필요에 의해 만든 이름
변수는 선언하는 시점에서 반드시 타입이 정의되어야하고,
선언하는 시점에서 반드시 크기가 결정이 된다.
어떤 자료를 담을 것인지 결정이 된다.
메소드명 앞의 이름
: 메소드를 실행하고 반환할 타입.
void : 반환하지 않겠다.
string : 문자열을 반환.
int : 정수 반환
-->
'공부 > 오늘 배운것' 카테고리의 다른 글
22.11.03.Thu - 벽을 만나다. (0) | 2022.11.03 |
---|---|
22.11.02.Wed - 배움에 끝이 없다. 그러니 그 과정을 즐길 수 밖에. (0) | 2022.11.02 |
22.10.31.Mon - View 와 Sequenece (0) | 2022.10.31 |
22.10.27.Thu - 조졌다 (0) | 2022.10.27 |
22.10.26.Wed - 부딪혀라 익숙해질때까지 (0) | 2022.10.26 |