230424 day16 개념 정리

Jin·2023년 5월 25일
0

codenotion

목록 보기
13/90
post-thumbnail

자바 
기본타입
byte, short, char, int, long, float, double, boolean
참조타입
배열, 열거, 클래스, 인터페이스

String 타입  (클래스타입)

String str1 = "김그린"
String str2 = "김그린"
String str3 = new String("김그린")
String str4 = new String("김그린")

str1==str2 true -> 참조타입 비교시 번지를 비교 
str3==str4 false (둘의 번지가 다르기 때문에 false)

str3.equals(str4) -> 문자열의 값 비교는 equals 사용 


산술연산자, 논리연산자, 비교연산자, (복합)대입연산자

&& : true && true --> true, false && true --> false
|| : true || false --> true, false || false --> false
! : !true --> false, !false --> true

int x = 10;
x += 5 //15 
x -= 2 // 13

A==B 같으면 true
A!=B 다르면 true


제어문 조건문, 반복문

if문
else if문
else문

if(조건1) { 실행 }
else if(조건2) { 조건1이 false, 조건2가 true일 때 실행 } 
else { 조건1,2가 다 false일 때 실행 }

switch문
switch(변수) { 
	case 'A' : 
	case 'a' : (A 또는 a일 때)
		실행;
		break;
	case 'B' :
	case 'b' : (B 또는 b일 때)
		실행;
		break;
	default :
		실행;
		break;
 }

switch표현식 : break 따로 걸어줄 필요 없음 (람다식을 활용)
switch(변수) { 
	case 'A', 'a' -> { 실행; } 
	case 'B', 'b' -> { 실행; }
	default -> { 실행; }
}


반복문 
for(초기값; 조건식; 증감) { 실행문 }

ex> for(int i = 1; i<11; i++) { System.out.println(i) }
int i = 1;
while(i<11) { 
	System.out.println(i) 
	i++;
}
	
do {
	실행문
} while(true);


이중for문 break --> for문에 이름을 붙여주고, 이름 지정해서 break 걸기
Green: for() { 
	for() {
		break Green;
	}

 }

String str = "김"
String str = new String("김그린")

배열 (제일 많이 쓰는 데이터 타입)
각 데이터에 인덱스를 부여한 자료구조 
- 같은 타입 데이터만 저장
- 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없음 
- 0번부터 시작 

배열 선언 
- 타입 [] 변수
int[] scores = { 10,20,30,40,50 } // 리터럴 형식으로 지정
int[] scores = new int[5];    // {0,0,0,0,0}

int[] a = null;
a = {10,20,30} ----> 컴파일 에러 발생
a = new int[] {10,20,30}

- 타입 변수 []

연습문제
1) 10개의 정수를 입력받아 짝수 중 가장 큰 값과 
홀수 중 가작 작은 값을 출력하는 프로그램  


2) 5개의 정수를 {95, 75, 85, 100, 50}로 초기화하고 
오름차순으로 정렬하는 프로그램

3) 5개의 정수를 입력받아서 내림차순(큰 수 -> 작은 수) 정렬 후 출력


배열복사

int[] nums = {10,20,30,40,50} ---> 참조 타입의 값은 힙에, 힙의 주소(번지)는 스택에 생성
스택 영역 nums : 10011234 
힙 영역 10011234(번지수) : {10,20,30,40,50}
int[] nums2 = nums; ---> 값을 복사한게 아니라 번지가 같음 
nums2 : 10011234

int[] nums3 = new int[5]; ---> 참조 변수는 새로운 값 형성으로 복사
nums[3] : 
힙 영역 10027896 : {0,0,0,0,0}

System.array.copy(복사할 배열, 복사할 배열의 인덱스, 
붙여넣기할 배열, 붙여넣기할 배열의 인덱스, 붙여넣을 요소의 갯수)
int[] arr1 = {1,2,3}
int[] arr2 = new int[5]; {0,0,0,0,0};
System.arraycopy(arr1, 0, arr2, 0, 2 )

향상된 for문 : 배열항목 반복을 위한 for문
int nums = {1,2,3,4,5}
for(int i=0; i<nums.length; i++) {
	System.out.println(nums[i]);
}
for(int i : nums) {
	System.out.println(nums[i]);
} 

for(타입변수 : 배열변수) {
	실행문
} 

profile
신입 개발자의 배웠던 것을 복습하기 위한 블로그입니다.

0개의 댓글