본문 바로가기
Archive/프로그래밍 언어

[Java] 자바 기초 정리 1 - 기초 문법, 자료형 등.

by 다람이도토리 2024. 10. 16.

모종의 일로. 자바를 좀 공부해보려고 한다. 오늘은 간단하게 문법들을 모두 정리하는 정도로.
이미 정처기 따면서 class 이론은 공부했지만 실전은 차근차근.

아, 물론 코테는 파이썬 할거다. 코테는 닥 파이썬.

파이썬 > 자바 전환에 빠르게 적응해보려고 한다.(사실 둘 다 할줄 알아야 하지만.)

package java_grammer_basic_practice;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;

public class example {
	public static void main(String[] args) {
		String a = "korea";
		String b = "korea";
		String c = new String("korea");
		// 이렇게 하는 것을 리터럴. 표기 방식
		// 항상 새로운 String 객체를 만듬.
		if(a==b) {
			System.out.println("same");
		}
		else {
			System.out.println("different");
		}
		
		if(a==c) {
			System.out.println("same");
		}
		else {
			System.out.println("different");
		}
		
		// 문자열의 연산을 위해 stringbuffer을 쓴다.
		
		StringBuffer sb = new StringBuffer();
		sb.append("hello");
		sb.insert(0, "good ");
		System.out.println(sb.toString());
		System.out.println(sb.substring(0,3));
		// toString 형태로 출력하여.
		
		//배열 선언하기
		int[] odds = {1, 3, 5, 7, 9};
		String[] named = new String[3];
		named[0] = "Da";
		named[1] = "Ra";
		named[2] = "M";
		// Remark. 초기값이 있이 배열을 만들어야 한다.
		// 파이썬처럼 그런 형태의 리스트가 아님.
		System.out.println(named[1]);
		
		// 배열 모든 원소 출력하기 + for문 문법, ;로 구분함.
		for (int i = 0; i < odds.length; i++) {
			System.out.println(odds[i]);
		}	
		// 그러나 실제 배열의 크기를 모름 -> Arraylist.
		// 주의사항 : import java.util.ArrayList;
			
		ArrayList<Integer> ran_num = new ArrayList<>();
		ran_num.add(47);
		ran_num.add(92);
		ran_num.add(2554);
		// 해당 위치 뽑기
		System.out.println(ran_num.get(1));
		// 리스트 길이
		System.out.println(ran_num.size());
		// remove : 인덱스나 원소 삭제, 제외되는 원소를 말함.
		// 그리고 그 즉시 ArrayList에 반영됨에 주의한다.!!!!!!
		System.out.println(ran_num.remove(0));		
		System.out.println(ran_num.size());
		// 한편, 배열을 arraylist로 전환 가능하다.
		ArrayList<String> name_arr = new ArrayList<>(Arrays.asList(named));
		System.out.println(name_arr);
		// 리스트 정렬 import java.util.Comparator; 추가
		name_arr.sort(Comparator.naturalOrder()); //오름차
		System.out.println(name_arr);	
		name_arr.sort(Comparator.reverseOrder()); //내림차
		System.out.println(name_arr);	
		
		// 파이썬 dict와 동일한 개념을 가진 map 알아보기
		// import java.util.HashMap;
		HashMap<String, String> ke_word = new HashMap<>();
		ke_word.put("people", "사람");
		ke_word.put("squirrel", "다람쥐");
		ke_word.put("acorn", "도토리");
		// get : key에 해당하는 val을 내 놓아라.
		System.out.println(ke_word.get("squirrel"));
		// 없을 경우 null,  getOrDefalut로 기본값 설정 추가되긴함.
		// 키가 있나 없나는 containsKey
		System.out.println(ke_word.containsKey("chipmunk"));
		// Array List와 동일하게 size, remove 사용
		// 모든 키를 뽑아내고 싶다면 keySet
		System.out.println(ke_word.keySet());

		// 집합 개념도 있음 HashSet;    
        HashSet<String> set1 = new HashSet<>(Arrays.asList("h", "e", "l", "l", "o"));
        System.out.println(set1);
        
        
        //for each 구문.
        //파이썬 처럼 배열에 반복문 직접 때리는거. 여기도 있음.
        //다만, 명시적으로 범위를 주는 것이 불가. 전체를 다 돌려야함.
        String[] examples = {"AH", "java", "not", "bad"};
        for(String cur_word: examples){
        	System.out.println(cur_word);
        }        
	}
}